From 4b262d020835b1de1c1d9c73be19f80a026fa81d Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 20 Jul 2022 14:40:37 +0200 Subject: [PATCH 001/150] Update CustomLoggerImpl.cpp (#723) Co-authored-by: Fabio Vitello <fvitello@users.noreply.github.com> --- Common/Servers/CustomLogger/src/CustomLoggerImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Servers/CustomLogger/src/CustomLoggerImpl.cpp b/Common/Servers/CustomLogger/src/CustomLoggerImpl.cpp index d983f289c..b1dd51605 100644 --- a/Common/Servers/CustomLogger/src/CustomLoggerImpl.cpp +++ b/Common/Servers/CustomLogger/src/CustomLoggerImpl.cpp @@ -661,7 +661,7 @@ void CustomStructuredPushConsumer::push_structured_event (const CosNotification: const char *type_name = notification.header.fixed_header.event_type.type_name;*/ const char *xmlLog; notification.remainder_of_body >>= xmlLog; - Logging::XmlLogRecordSeq *reclist; + const Logging::XmlLogRecordSeq *reclist; notification.remainder_of_body >>= reclist; LogRecord_sp lr; try { -- GitLab From ef1b01e35785da644709ffdc6d31909d3316b324 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sun, 24 Jul 2022 15:34:06 +0200 Subject: [PATCH 002/150] Fix #724, fixed CDBs (#726) As all Centos 7 related fixes, this should be tested thoroughly --- .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../ExternalClientsContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../KBandContainer/KBandContainer.xml | 2 +- .../LocalOscillatorContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../SardaraContainer/SardaraContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- .../MACI/Containers/XContainer/XContainer.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 30 ++++++------ .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../ExternalClientsContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../KBandContainer/KBandContainer.xml | 2 +- .../LocalOscillatorContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../SardaraContainer/SardaraContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- .../MACI/Containers/XContainer/XContainer.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 30 ++++++------ .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../ExternalClientContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../FrontEndsContainer/FrontEndsContainer.xml | 2 +- .../LocalOscillatorContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 2 +- .../NotoActiveSurfaceContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- Noto/CDB/MACI/Managers/Manager/Manager.xml | 32 ++++++------- .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../ExternalClientsContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../FrontEndsContainer/FrontEndsContainer.xml | 2 +- .../LocalOscillatorContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 2 +- .../NotoActiveSurfaceContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 34 +++++++------- .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../DewarPositionerData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../Components/AS/SECTOR01/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR01/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR01/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR01/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR01/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR01/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR01/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR01/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR01/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR02/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR02/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR02/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR02/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR02/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR02/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR02/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR02/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR02/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR02/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR02/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR02/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR03/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR03/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR03/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR03/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR03/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR03/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR03/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR03/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR03/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR04/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR04/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR04/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR04/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR04/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR04/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR04/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR04/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR04/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR04/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR04/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR04/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR05/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR05/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR05/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR05/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR05/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR05/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR05/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR05/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR05/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR06/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR06/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR06/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR06/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR06/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR06/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR06/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR06/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR06/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR06/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR06/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR06/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR07/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR07/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR07/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR07/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR07/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR07/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR07/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR07/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR07/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR08/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR08/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR08/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR08/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR08/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR08/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR08/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR08/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR08/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR08/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR08/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR08/LAN12/LAN12.xml | 18 +++---- .../SRTLPBandReceiver/SRTLPBandReceiver.xml | 0 .../TestNamespace/Positioner/Positioner.xml | 0 .../Positioner00/Positioner00.xml | 0 .../Positioner01/Positioner01.xml | 0 .../Positioner02/Positioner02.xml | 0 .../Positioner03/Positioner03.xml | 0 .../AntennaBossContainer.xml | 2 +- .../AntennaBossSimContainer.xml | 2 +- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../DerotatorContainer/DerotatorContainer.xml | 2 +- .../DerotatorPositionerContainer.xml | 2 +- .../ExternalClientsContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../HolographyContainer.xml | 2 +- .../HolographyDXCContainer.xml | 2 +- .../LocalOscillatorCContainer.xml | 2 +- .../LocalOscillatorKContainer.xml | 2 +- .../LocalOscillatorLPContainer.xml | 2 +- .../LocalOscillatorsContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MinorServoContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 47 ++++++++----------- .../NoiseGeneratorContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PositionerContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../PyIFDistributorContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../SRT7GHzContainer/SRT7GHzContainer.xml | 2 +- .../SRTActiveSurfaceContainer.xml | 2 +- .../SRTActiveSurfaceContainer01.xml | 2 +- .../SRTActiveSurfaceContainer02.xml | 2 +- .../SRTActiveSurfaceContainer03.xml | 2 +- .../SRTActiveSurfaceContainer04.xml | 2 +- .../SRTActiveSurfaceContainer05.xml | 2 +- .../SRTActiveSurfaceContainer06.xml | 2 +- .../SRTActiveSurfaceContainer07.xml | 2 +- .../SRTActiveSurfaceContainer08.xml | 2 +- .../SRTKBandContainer/SRTKBandContainer.xml | 2 +- .../SRTLPBandContainer/SRTLPBandContainer.xml | 2 +- .../SRTSBandContainer/SRTSBandContainer.xml | 2 +- .../SardaraContainer/SardaraContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- .../MACI/Containers/XContainer/XContainer.xml | 2 +- SRT/CDB/MACI/Managers/Manager/Manager.xml | 32 ++++++------- SRT/CDB/alma/AS/Boss/Boss.xml | 18 +++---- .../MACI/Channels/AntennaData/AntennaData.xml | 2 +- .../DewarPositionerData.xml | 2 +- .../Components/ANTENNA/IncludeDynamic.xml | 6 +-- .../Components/AS/SECTOR01/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR01/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR01/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR01/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR01/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR01/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR01/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR01/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR01/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR01/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR02/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR02/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR02/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR02/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR02/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR02/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR02/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR02/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR02/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR02/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR02/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR02/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR03/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR03/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR03/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR03/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR03/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR03/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR03/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR03/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR03/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR03/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR04/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR04/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR04/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR04/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR04/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR04/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR04/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR04/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR04/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR04/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR04/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR04/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR05/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR05/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR05/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR05/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR05/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR05/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR05/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR05/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR05/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR05/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR06/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR06/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR06/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR06/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR06/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR06/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR06/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR06/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR06/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR06/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR06/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR06/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR07/LAN01/LAN01.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR07/LAN03/LAN03.xml | 30 ++++++------ .../Components/AS/SECTOR07/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR07/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR07/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR07/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR07/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR07/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR07/LAN11/LAN11.xml | 32 ++++++------- .../Components/AS/SECTOR07/LAN12/LAN12.xml | 18 +++---- .../Components/AS/SECTOR08/LAN01/LAN01.xml | 28 +++++------ .../Components/AS/SECTOR08/LAN02/LAN02.xml | 18 +++---- .../Components/AS/SECTOR08/LAN03/LAN03.xml | 32 ++++++------- .../Components/AS/SECTOR08/LAN04/LAN04.xml | 18 +++---- .../Components/AS/SECTOR08/LAN05/LAN05.xml | 26 +++++----- .../Components/AS/SECTOR08/LAN06/LAN06.xml | 18 +++---- .../Components/AS/SECTOR08/LAN07/LAN07.xml | 30 ++++++------ .../Components/AS/SECTOR08/LAN08/LAN08.xml | 18 +++---- .../Components/AS/SECTOR08/LAN09/LAN09.xml | 26 +++++----- .../Components/AS/SECTOR08/LAN10/LAN10.xml | 18 +++---- .../Components/AS/SECTOR08/LAN11/LAN11.xml | 30 ++++++------ .../Components/AS/SECTOR08/LAN12/LAN12.xml | 18 +++---- .../SRTLPBandReceiver/SRTLPBandReceiver.xml | 0 .../AntennaBossContainer.xml | 2 +- .../AntennaContainer/AntennaContainer.xml | 2 +- .../CalibrationToolContainer.xml | 2 +- .../DerotatorContainer/DerotatorContainer.xml | 2 +- .../DerotatorPositionerContainer.xml | 2 +- .../ExternalClientsContainer.xml | 2 +- .../FitsZillaContainer/FitsZillaContainer.xml | 2 +- .../HolographyContainer.xml | 2 +- .../HolographyDXCContainer.xml | 2 +- .../LocalOscillatorCContainer.xml | 2 +- .../LocalOscillatorKContainer.xml | 2 +- .../LocalOscillatorLPContainer.xml | 2 +- .../LocalOscillatorsContainer.xml | 2 +- .../LoggerContainer/LoggerContainer.xml | 2 +- .../ManagementContainer.xml | 2 +- .../MinorServoBossContainer.xml | 2 +- .../MinorServoContainer.xml | 2 +- .../MountContainer/MountContainer.xml | 2 +- .../NoiseGeneratorContainer.xml | 2 +- .../PointContainer/PointContainer.xml | 2 +- .../PyCalmuxContainer/PyCalmuxContainer.xml | 2 +- .../PyIFDistributorContainer.xml | 2 +- .../RFIMonitoringContainer.xml | 2 +- .../ReceiversContainer/ReceiversContainer.xml | 2 +- .../SRT7GHzContainer/SRT7GHzContainer.xml | 2 +- .../SRTActiveSurfaceContainer.xml | 2 +- .../SRTActiveSurfaceContainer01.xml | 2 +- .../SRTActiveSurfaceContainer02.xml | 2 +- .../SRTActiveSurfaceContainer03.xml | 2 +- .../SRTActiveSurfaceContainer04.xml | 2 +- .../SRTActiveSurfaceContainer05.xml | 2 +- .../SRTActiveSurfaceContainer06.xml | 2 +- .../SRTActiveSurfaceContainer07.xml | 2 +- .../SRTActiveSurfaceContainer08.xml | 2 +- .../SRTKBandContainer/SRTKBandContainer.xml | 2 +- .../SRTLPBandContainer/SRTLPBandContainer.xml | 2 +- .../SardaraContainer/SardaraContainer.xml | 2 +- .../TotalPowerContainer.xml | 2 +- .../WeatherStationContainer.xml | 2 +- .../MACI/Containers/XContainer/XContainer.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 30 ++++++------ 368 files changed, 2526 insertions(+), 2537 deletions(-) mode change 100755 => 100644 Medicina/CDB/MACI/Managers/Manager/Manager.xml mode change 100755 => 100644 Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml mode change 100755 => 100644 Noto/CDB/MACI/Managers/Manager/Manager.xml mode change 100755 => 100644 Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml mode change 100755 => 100644 SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml mode change 100755 => 100644 SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml mode change 100755 => 100644 SRT/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml mode change 100755 => 100644 SRT/CDB/MACI/Managers/Manager/Manager.xml mode change 100755 => 100644 SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml mode change 100755 => 100644 SRT/Configuration/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml mode change 100755 => 100644 SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml diff --git a/Medicina/CDB/MACI/Channels/AntennaData/AntennaData.xml b/Medicina/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/Medicina/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/Medicina/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/Medicina/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/Medicina/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/Medicina/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/Medicina/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/Medicina/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/Medicina/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/Medicina/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/Medicina/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/Medicina/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml b/Medicina/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml +++ b/Medicina/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/Medicina/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/Medicina/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/KBandContainer/KBandContainer.xml b/Medicina/CDB/MACI/Containers/KBandContainer/KBandContainer.xml index f905cfaae..85b388426 100644 --- a/Medicina/CDB/MACI/Containers/KBandContainer/KBandContainer.xml +++ b/Medicina/CDB/MACI/Containers/KBandContainer/KBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml b/Medicina/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml index 28fb8ddbe..cc76c68ab 100644 --- a/Medicina/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml +++ b/Medicina/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/Medicina/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/Medicina/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/Medicina/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/Medicina/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/Medicina/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 1249a513b..558d7f451 100644 --- a/Medicina/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/Medicina/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/MountContainer/MountContainer.xml b/Medicina/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..6b70dbb7f 100644 --- a/Medicina/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/Medicina/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -15,7 +15,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/PointContainer/PointContainer.xml b/Medicina/CDB/MACI/Containers/PointContainer/PointContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/Medicina/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/Medicina/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/Medicina/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/Medicina/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml b/Medicina/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml +++ b/Medicina/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/Medicina/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/Medicina/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/Medicina/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index 5621f3143..672bd7889 100644 --- a/Medicina/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/Medicina/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Containers/XContainer/XContainer.xml b/Medicina/CDB/MACI/Containers/XContainer/XContainer.xml index fdebffedc..d807ff223 100644 --- a/Medicina/CDB/MACI/Containers/XContainer/XContainer.xml +++ b/Medicina/CDB/MACI/Containers/XContainer/XContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/CDB/MACI/Managers/Manager/Manager.xml b/Medicina/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index cdb694a10..640629bf9 --- a/Medicina/CDB/MACI/Managers/Manager/Manager.xml +++ b/Medicina/CDB/MACI/Managers/Manager/Manager.xml @@ -10,24 +10,24 @@ ServerThreads="15"> <Startup> - <cdb:_ string="ANTENNA/Mount" /> - <cdb:_ string="WEATHERSTATION/WeatherStation"/> - <cdb:_ string="ANTENNA/Boss"/> - <cdb:_ string="RECEIVERS/Boss"/> - <cdb:_ string="MANAGEMENT/Palmiro"/> - <cdb:_ string="MANAGEMENT/CustomLogger"/> + <cdb:e string="ANTENNA/Mount" /> + <cdb:e string="WEATHERSTATION/WeatherStation"/> + <cdb:e string="ANTENNA/Boss"/> + <cdb:e string="RECEIVERS/Boss"/> + <cdb:e string="MANAGEMENT/Palmiro"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> </ServiceComponents> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml b/Medicina/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/Medicina/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/Medicina/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/Medicina/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/Medicina/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/Medicina/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/Medicina/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/Medicina/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/KBandContainer/KBandContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/KBandContainer/KBandContainer.xml index f905cfaae..85b388426 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/KBandContainer/KBandContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/KBandContainer/KBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml index 28fb8ddbe..cc76c68ab 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index a960e4654..a861d4726 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 1249a513b..558d7f451 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..6b70dbb7f 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -15,7 +15,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index 5621f3143..672bd7889 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml b/Medicina/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml index fdebffedc..d807ff223 100644 --- a/Medicina/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml +++ b/Medicina/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index cdb694a10..640629bf9 --- a/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -10,24 +10,24 @@ ServerThreads="15"> <Startup> - <cdb:_ string="ANTENNA/Mount" /> - <cdb:_ string="WEATHERSTATION/WeatherStation"/> - <cdb:_ string="ANTENNA/Boss"/> - <cdb:_ string="RECEIVERS/Boss"/> - <cdb:_ string="MANAGEMENT/Palmiro"/> - <cdb:_ string="MANAGEMENT/CustomLogger"/> + <cdb:e string="ANTENNA/Mount" /> + <cdb:e string="WEATHERSTATION/WeatherStation"/> + <cdb:e string="ANTENNA/Boss"/> + <cdb:e string="RECEIVERS/Boss"/> + <cdb:e string="MANAGEMENT/Palmiro"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> </ServiceComponents> <LoggingConfig diff --git a/Noto/CDB/MACI/Channels/AntennaData/AntennaData.xml b/Noto/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/Noto/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/Noto/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/Noto/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/Noto/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/Noto/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/Noto/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/Noto/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/Noto/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/Noto/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/Noto/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/Noto/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/ExternalClientContainer/ExternalClientContainer.xml b/Noto/CDB/MACI/Containers/ExternalClientContainer/ExternalClientContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/ExternalClientContainer/ExternalClientContainer.xml +++ b/Noto/CDB/MACI/Containers/ExternalClientContainer/ExternalClientContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/Noto/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/Noto/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml b/Noto/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml +++ b/Noto/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml b/Noto/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml index c272aca08..46868e13a 100644 --- a/Noto/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml +++ b/Noto/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/Noto/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/Noto/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/Noto/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/Noto/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/Noto/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 1249a513b..558d7f451 100644 --- a/Noto/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/Noto/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/MountContainer/MountContainer.xml b/Noto/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..6b70dbb7f 100644 --- a/Noto/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/Noto/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -15,7 +15,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml index ab3091da5..0ffa95a22 100644 --- a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml +++ b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml @@ -11,7 +11,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/PointContainer/PointContainer.xml b/Noto/CDB/MACI/Containers/PointContainer/PointContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/Noto/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Noto/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/Noto/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/Noto/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/Noto/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/Noto/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/Noto/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/Noto/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/Noto/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index 5621f3143..672bd7889 100644 --- a/Noto/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/Noto/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Managers/Manager/Manager.xml b/Noto/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index 649d76c05..4a58ab59f --- a/Noto/CDB/MACI/Managers/Manager/Manager.xml +++ b/Noto/CDB/MACI/Managers/Manager/Manager.xml @@ -10,25 +10,25 @@ ServerThreads="15"> <Startup> - <cdb:_ string="ANTENNA/Mount" /> - <cdb:_ string="WEATHERSTATION/WeatherStation"/> - <cdb:_ string="ANTENNA/Boss"/> - <cdb:_ string="RECEIVERS/Boss"/> - <cdb:_ string="MANAGEMENT/Ducezio"/> - <cdb:_ string="MANAGEMENT/CustomLogger"/> - <cdb:_ string="MANAGEMENT/ExternalClients"/> + <cdb:e string="ANTENNA/Mount" /> + <cdb:e string="WEATHERSTATION/WeatherStation"/> + <cdb:e string="ANTENNA/Boss"/> + <cdb:e string="RECEIVERS/Boss"/> + <cdb:e string="MANAGEMENT/Ducezio"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> + <cdb:e string="MANAGEMENT/ExternalClients"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> </ServiceComponents> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml b/Noto/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/Noto/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/Noto/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/Noto/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/Noto/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/Noto/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/Noto/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/Noto/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/Noto/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/Noto/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml b/Noto/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/Noto/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml b/Noto/Configuration/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/FrontEndsContainer/FrontEndsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml b/Noto/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml index c272aca08..46868e13a 100644 --- a/Noto/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/LocalOscillatorContainer/LocalOscillatorContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/Noto/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/Noto/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index a960e4654..a861d4726 100644 --- a/Noto/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/Noto/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 1249a513b..558d7f451 100644 --- a/Noto/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml b/Noto/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..6b70dbb7f 100644 --- a/Noto/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -15,7 +15,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml b/Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml index ab3091da5..0ffa95a22 100644 --- a/Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer/NotoActiveSurfaceContainer.xml @@ -11,7 +11,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml b/Noto/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/Noto/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/Noto/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/Noto/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/Noto/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/Noto/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/Noto/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index 5621f3143..672bd7889 100644 --- a/Noto/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/Noto/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index 74816db39..ceccb0b63 --- a/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -10,26 +10,26 @@ ServerThreads="15"> <Startup> - <cdb:_ string="ANTENNA/Mount" /> - <cdb:_ string="WEATHERSTATION/WeatherStation"/> - <cdb:_ string="ANTENNA/Boss"/> - <cdb:_ string="RECEIVERS/Boss"/> - <cdb:_ string="MANAGEMENT/Ducezio"/> - <cdb:_ string="MANAGEMENT/CustomLogger"/> - <cdb:_ string="MANAGEMENT/ExternalClients"/> - <cdb:_ string="AS/Boss"/> + <cdb:e string="ANTENNA/Mount" /> + <cdb:e string="WEATHERSTATION/WeatherStation"/> + <cdb:e string="ANTENNA/Boss"/> + <cdb:e string="RECEIVERS/Boss"/> + <cdb:e string="MANAGEMENT/Ducezio"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> + <cdb:e string="MANAGEMENT/ExternalClients"/> + <cdb:e string="AS/Boss"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> </ServiceComponents> <LoggingConfig diff --git a/SRT/CDB/MACI/Channels/AntennaData/AntennaData.xml b/SRT/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/SRT/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/SRT/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/SRT/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml b/SRT/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml index c9009db74..0513e4bcd 100644 --- a/SRT/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml +++ b/SRT/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="DewarPositionerDataBlock" MaxProcessTime="2.0"/> + <e Name="DewarPositionerDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/SRT/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/SRT/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/SRT/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/SRT/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml index 6290bc573..e8942676e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml index 0f8058b85..231c3bb71 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml index 7260f7d3e..01579f7be 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml index 6937a9051..e192f6bf0 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml index 963662181..ead90682f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml index b317e5d06..4bade23d1 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml index ee27d4d13..f81bf8281 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml index 1ae4ab0b0..d0cecd58c 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml index a742622a9..3333f401a 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml index cb8bd0ade..fea579d38 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml index 37740f850..bb4af221b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml index 205603fe6..d8e56106d 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml index b29bcf2c4..52dc6c157 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml index 9adbf9d1f..2157b0597 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml index 7ba217caa..6d712909a 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml index 1c42f2182..a9626036f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml index 92389d2cd..6b7e46ec9 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml index 48aaf1136..9e45bab17 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml index 5e6e623c9..9666dff3a 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml index 06425df13..c43dfe99d 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml index 14e57a5e8..5ede45ebd 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml index 776542cf4..d8a2e8896 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml index d4cf29704..095bc39a3 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml index 02e5d119e..cae010a49 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml index 2f5e09424..87d0f3205 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml index 288b0fd6a..cd8f2580f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml index bc709f0c5..48388e3a2 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml index 2e47e9073..db9c6666e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml index 4ed109368..582d5a928 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml index c64a0524b..9d73c6621 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml index 1d4405871..c5512f87b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml index 15a329e31..845b6072a 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml index 94365d8f5..94cf298cb 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml index 5161a702f..acb51354c 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml index 705d90784..0302f4250 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml index cde31b60b..dcdcbf2dd 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml index 44fde5506..66326fc50 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml index 096493eb4..9686c34ba 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml index 572162917..55aae257d 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml index bb556cfc2..1862b31bb 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml index aa536c4b8..0028e40ad 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml index deef37e77..56a45c10f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml index 5d69d4dac..dcd347f71 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml index 3a255248c..351010da3 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml index f802e5e65..0209db330 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml index 35195f658..e0ebdaf01 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml index 3fa090a44..83101bb08 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml index 83524e4f6..4408f2d95 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml index d9eaa693b..d6b92595b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml index dfcdbcc9f..1969dc8f4 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml index ad6028567..32200ba2b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml index 48f8f1ef0..f03cb859e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml index 334870a5f..f0a5e1655 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml index 8bf828c02..15dc033a9 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml index 6ec54c8c1..3cdbf85e4 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml index c98d7d378..6065d5ce9 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml index ed8b21612..aeaae849b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml index 1118cf9c5..9a58a14dd 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml index 3aaf68356..3d9545964 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml index dd6f4aeac..d50332639 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml index 62889e742..55396e1be 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml index 984100eb0..f1b5d74e8 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml index 7785f8241..0480687c6 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml index 9723fbc66..cfd67e74a 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml index 7e70eb5f8..63411a875 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml index d08dc05c3..ee100c060 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml index b9619e6d7..91347f499 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml index 72438d1e5..65d06e24f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml index fdc1cfa95..343b413e3 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml index d8a32d19b..ff59156e8 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml index 20db35716..655f6425c 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml index a14e8c156..67dcf4264 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml index 4bc222cba..4a6957b9c 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml index 56987df22..7d3fe67cf 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml index 4b008d6fd..abbded010 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml index f80384bff..a93071da4 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml index 1f5f3c90a..d0603a2c6 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml index de6fb168c..4d5d4491e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml index 963c1cee2..11ec6a180 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml index 7d0e1471b..4b63d4e43 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml index 2d5619bc3..414e2feda 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml index ae7d06ee3..fb3b2067d 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml index 2d9c43406..314520a74 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml index b25d9c8b9..765e1a726 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml index cd6b6cf3a..1c162760b 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml index 5d69cfc16..ec5342599 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml index 43b9ca7fd..340b60fa7 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml index 955b55d70..912cc820f 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml index 03bff1c76..e13bb61fe 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml index f2e133a04..96089448e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml index c998a31d4..2a3300a16 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml index b92f7f236..f689948b3 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml index 31a20f99e..319cd9f6c 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml index 1b560b647..6daa3f300 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml index 5f3f5a1fd..1573bc289 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml index 755676d41..a2c09e33e 100644 --- a/SRT/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml +++ b/SRT/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml b/SRT/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml old mode 100755 new mode 100644 diff --git a/SRT/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml b/SRT/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml +++ b/SRT/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/AntennaBossSimContainer/AntennaBossSimContainer.xml b/SRT/CDB/MACI/Containers/AntennaBossSimContainer/AntennaBossSimContainer.xml index 6f94fed06..2712d359e 100644 --- a/SRT/CDB/MACI/Containers/AntennaBossSimContainer/AntennaBossSimContainer.xml +++ b/SRT/CDB/MACI/Containers/AntennaBossSimContainer/AntennaBossSimContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/SRT/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/SRT/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/SRT/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/SRT/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml b/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml index 92d6340eb..3179cbaf5 100644 --- a/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml +++ b/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml b/SRT/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml index 75b8b71c0..9d7d96a62 100644 --- a/SRT/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml +++ b/SRT/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml b/SRT/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml +++ b/SRT/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/SRT/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/SRT/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml b/SRT/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml +++ b/SRT/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml b/SRT/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml index 75b8b71c0..9d7d96a62 100644 --- a/SRT/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml +++ b/SRT/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml index 645ee4c3a..34665eb51 100644 --- a/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml +++ b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml index 645ee4c3a..34665eb51 100644 --- a/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml +++ b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml index c272aca08..46868e13a 100644 --- a/SRT/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml +++ b/SRT/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml +++ b/SRT/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/SRT/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/SRT/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/SRT/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index 4fcb583ec..efe679bf6 100644 --- a/SRT/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/SRT/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 454546f78..64fcda240 100644 --- a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml b/SRT/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml index f6da4bdc9..deb79dc9f 100644 --- a/SRT/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml +++ b/SRT/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/MountContainer/MountContainer.xml b/SRT/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..505c30e6a 100644 --- a/SRT/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/SRT/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -1,32 +1,25 @@ <?xml version="1.0" encoding="ISO-8859-1"?> - -<Container - xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - ImplLang="cpp" - Recovery="false" - DALtype="DAL" - ServerThreads="5"> - +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="1" + ManagerRetry="10" + ImplLang="cpp" + Recovery="0" + DALtype="DAL" + ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> - + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" > + </LoggingConfig> </Container> - diff --git a/SRT/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml b/SRT/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml +++ b/SRT/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/PointContainer/PointContainer.xml b/SRT/CDB/MACI/Containers/PointContainer/PointContainer.xml index 735d82903..41a43711d 100644 --- a/SRT/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/SRT/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig centralizedLogger="Log" diff --git a/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml old mode 100755 new mode 100644 index 75b8b71c0..9d7d96a62 --- a/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml +++ b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml b/SRT/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml index 6563a97be..6b7298a73 100644 --- a/SRT/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml +++ b/SRT/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/SRT/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/SRT/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml b/SRT/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml +++ b/SRT/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml index 8dfd82ea8..749ef249b 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml @@ -11,7 +11,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml index 62ca03e37..9fecba35d 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml index 8b5644f5b..f994d42ca 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml index 8b5644f5b..f994d42ca 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml index 8b5644f5b..f994d42ca 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml index 8b5644f5b..f994d42ca 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml index f05f1ee95..69ad936df 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml @@ -5,7 +5,7 @@ --> <Container xmlns="urn:schemas-cosylab-com:Container:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" Timeout="30.0" ServerThreads="5" ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig minLogLevel="5" minLogLevelLocal="10" dispatchPacketSize="0" immediateDispatchLevel="10" flushPeriodSeconds="1" /> </Container> diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml index fd4f5a614..c2efb0e9b 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml index 8b5644f5b..f994d42ca 100644 --- a/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml +++ b/SRT/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml b/SRT/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml index f905cfaae..85b388426 100644 --- a/SRT/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml +++ b/SRT/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml b/SRT/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml old mode 100755 new mode 100644 index 728c62f1a..c555569cc --- a/SRT/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml +++ b/SRT/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SRTSBandContainer/SRTSBandContainer.xml b/SRT/CDB/MACI/Containers/SRTSBandContainer/SRTSBandContainer.xml index 229c4a929..dd59eadd1 100644 --- a/SRT/CDB/MACI/Containers/SRTSBandContainer/SRTSBandContainer.xml +++ b/SRT/CDB/MACI/Containers/SRTSBandContainer/SRTSBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml b/SRT/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml index 23a931b5e..2b6f79973 100644 --- a/SRT/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml +++ b/SRT/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/SRT/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/SRT/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/SRT/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index 82d8c6fe3..639d830a4 100644 --- a/SRT/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/SRT/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -5,7 +5,7 @@ --> <Container xmlns="urn:schemas-cosylab-com:Container:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" Timeout="30.0" UseIFR="true" ManagerRetry="10" ImplLang="cpp" Recovery="false" DALtype="DAL" ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig centralizedLogger="Log" minLogLevel="5" minLogLevelLocal="5" dispatchPacketSize="0" immediateDispatchLevel="8" flushPeriodSeconds="1" /> </Container> diff --git a/SRT/CDB/MACI/Containers/XContainer/XContainer.xml b/SRT/CDB/MACI/Containers/XContainer/XContainer.xml index fdebffedc..d807ff223 100644 --- a/SRT/CDB/MACI/Containers/XContainer/XContainer.xml +++ b/SRT/CDB/MACI/Containers/XContainer/XContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/CDB/MACI/Managers/Manager/Manager.xml b/SRT/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index 89a110563..0936b64a6 --- a/SRT/CDB/MACI/Managers/Manager/Manager.xml +++ b/SRT/CDB/MACI/Managers/Manager/Manager.xml @@ -11,25 +11,25 @@ <Startup> <!-- - <cdb:_ string="MINORSERVO/GFR"/> - <cdb:_ string="MINORSERVO/M3R"/> - <cdb:_ string="MINORSERVO/PFP"/> - <cdb:_ string="MINORSERVO/SRP"/> + <cdb:e string="MINORSERVO/GFR"/> + <cdb:e string="MINORSERVO/M3R"/> + <cdb:e string="MINORSERVO/PFP"/> + <cdb:e string="MINORSERVO/SRP"/> --> - <cdb:_ string="MANAGEMENT/CustomLogger"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> - <cdb:_ string="AcsAlarmService"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> + <cdb:e string="AcsAlarmService"/> </ServiceComponents> <ServiceDaemons> @@ -41,7 +41,7 @@ minLogLevelLocal="5" dispatchPacketSize="10" immediateDispatchLevel="8"> - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/SRT/CDB/alma/AS/Boss/Boss.xml b/SRT/CDB/alma/AS/Boss/Boss.xml index c53eea829..d2fdada51 100644 --- a/SRT/CDB/alma/AS/Boss/Boss.xml +++ b/SRT/CDB/alma/AS/Boss/Boss.xml @@ -1,16 +1,12 @@ <?xml version='1.0' encoding='ISO-8859-1'?> -<SRTActiveSurfaceBoss - xmlns="urn:schemas-cosylab-com:SRTActiveSurfaceBoss:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - WatchingThreadTime="200000" - WorkingThreadTime="500000" - RepetitionCacheTime="2000000" - RepetitionExpireTime="5000000" - profile="4"> +<!-- + - History: + - Tue Jun 28 13:42:18 UTC 2022 modified by jDAL + - Tue Jun 28 13:43:15 UTC 2022 modified by jDAL +--> +<SRTActiveSurfaceBoss xmlns="urn:schemas-cosylab-com:SRTActiveSurfaceBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" WatchingThreadTime="200000" WorkingThreadTime="500000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" profile="4"> <status /> <enabled /> <pprofile /> <tracking /> -</SRTActiveSurfaceBoss> +</SRTActiveSurfaceBoss> \ No newline at end of file diff --git a/SRT/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml b/SRT/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml index 0ee6f43ed..9cf76bd9f 100644 --- a/SRT/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml +++ b/SRT/Configuration/CDB/MACI/Channels/AntennaData/AntennaData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="AntennaDataBlock" MaxProcessTime="2.0"/> + <e Name="AntennaDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/SRT/Configuration/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml b/SRT/Configuration/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml index c9009db74..0513e4bcd 100644 --- a/SRT/Configuration/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml +++ b/SRT/Configuration/CDB/MACI/Channels/DewarPositionerData/DewarPositionerData.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EventReliability="BestEffort" ConnectionReliability="Persistent"> <Events> - <_ Name="DewarPositionerDataBlock" MaxProcessTime="2.0"/> + <e Name="DewarPositionerDataBlock" MaxProcessTime="2.0"/> </Events> </EventChannel> diff --git a/SRT/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml b/SRT/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml index 3d9e717de..ea6e644ba 100644 --- a/SRT/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml +++ b/SRT/Configuration/CDB/MACI/Components/ANTENNA/IncludeDynamic.xml @@ -3,17 +3,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <_ Name="*" + <e Name="*" Code="SkySourceImpl" Type="IDL:alma/Antenna/SkySource:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="OTFImpl" Type="IDL:alma/Antenna/OTF:1.0" Container="AntennaContainer" ImplLang="cpp"/> - <_ Name="*" + <e Name="*" Code="MoonImpl" Type="IDL:alma/Antenna/Moon:1.0" Container="AntennaContainer" diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml index b8dbc9227..8bc5508cc 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml index 82f99db40..6391c8df3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml index ba5ddb777..d439973c1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml index 84caa1bfa..6d33e567d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml index 650338981..57ea31e36 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml index 57de25eb3..5cc781c38 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml index 82ff950b4..5aac64ded 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml index 011386a54..7d8f9feb3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml index 43118cb25..fa91a50ea 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml index 60351c5c7..b2310ec7f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml index c0952684d..2aa9b8e1d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml index d6a8424b4..2a9007dd5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml index a20521ca5..caa700e97 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml index 0c71d0ecf..16e89b6d9 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml index 8324ddda5..b6d31e4cc 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml index 214aba999..a9fdc2d88 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml index 4de96dc34..29abc97fc 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml index 5e7d21604..f360b7e7a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml index 6ac7b2ab8..999066c02 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml index fd232a448..295606563 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml index d2030bc62..26a03b430 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml index 9ebe4cde0..09d1d964c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml index 223d06038..e96617e9a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml index ea4d0eee3..744444bd5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml index 6dfd82732..11e898b00 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml index 9d0ed32d8..3def242bb 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml index ae357d4b9..54a6ea0e4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml index 5d70b0780..c22932d1a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml index ac0effa59..5331ea2b7 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml index 9cd492df4..12bcaf600 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml index be254e6dc..a1370059f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml index 41fbca03b..1f0e25636 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml index 19137d61f..8699f989e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml index 32905bf82..e3b8bf8f4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml index 252d6e917..b55ec707c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml index 0ce612780..f6689b087 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml index 438930bfc..5d4fcb766 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml index c9f760e3c..ce1b77284 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml index cb936d990..5cf57b618 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml index 1a6fabf02..12401d925 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml index 4444e4836..96e61c5cc 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml index af7b8e93d..cec53799d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml index e9a97e904..1900df40d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml index 2a7ac65ce..fd85efc77 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml index e0410eeab..b637f43ad 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml index d2fea9193..ea79c93a5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml index 8c48edc84..304c5334a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml index 1129fa37b..0a6229206 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml index 7b992a8bc..ef39cebf7 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml index 1ececed81..3bd9fe4ee 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml index 941c3e8a7..df8f0bb14 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml index 44fd202f7..b7702ace5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml index e94f743ed..e75901745 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml index a2190f6d5..7ed23e07f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml index e47703bf9..f2dde4d04 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml index c1436632d..131d98aac 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml index caa379a5c..3e1955bc1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml index 04fc3047f..ee372d3c1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml index 001ad0233..11749f479 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml index 2ba23b321..7ea89856d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml index 6ee5a5ed6..38a9b181a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml index e9c99530f..cf0a2ad42 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml index b5c964e83..d468eda2c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml index 2f8b5a9bf..d4189765d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml index 07db0cfe6..a67365828 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml index b276baab7..3ef5dd8c7 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml index b34718139..cdbcef502 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml index 7e8ba8edc..5d9abb89d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml index b30681a67..a41b056f7 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml index 4cb635c6f..0498a63c6 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml index 60533d14b..25efd6430 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml index 6457e0cf9..3791a78c6 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml index cb37f3a22..3b2ce1c76 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml index ea90e773f..d7ad9cbc3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml index d686339e6..0e50139fb 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml index 34ae7de8c..0ca0c44d1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml index ecb1b1672..ed705d2e5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml index d0ca118eb..6a1ba51df 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml index 86d6f98fa..5714b794a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml index 87bfb1b87..24f9c84f1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml index 401ebfe8c..ae84c1d81 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml index d836e476e..860a35c33 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml index 7ab1b8b44..36fb1d033 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml index 02cc96331..5c2b50f19 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml index de67f1103..020181fb5 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml index c02365ac2..801a3c8de 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml index b2a4b70a0..f7ebec3de 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml index 6cdaf6e8d..91e991e74 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml index 01b4138a8..b0169afd9 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml index 6db7a0f41..dfaa871f3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml index dc725c8ec..df6a67575 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml index d3dea0029..8d160570b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml index e61ac3152..a9d25aed4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml index 696dd9859..b07e1d1b4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml index 73fee34f8..899028eb8 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml index 8d7ced638..600054140 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <_ Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <_ Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTLPBandReceiver/SRTLPBandReceiver.xml old mode 100755 new mode 100644 diff --git a/SRT/Configuration/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml b/SRT/Configuration/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/AntennaBossContainer/AntennaBossContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml b/SRT/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/AntennaContainer/AntennaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml b/SRT/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/CalibrationToolContainer/CalibrationToolContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml b/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml index 56f833cbc..ff357dce1 100644 --- a/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml b/SRT/Configuration/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml index 75b8b71c0..9d7d96a62 100644 --- a/SRT/Configuration/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/DerotatorPositionerContainer/DerotatorPositionerContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml b/SRT/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/ExternalClientsContainer/ExternalClientsContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml b/SRT/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/FitsZillaContainer/FitsZillaContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml b/SRT/Configuration/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/HolographyContainer/HolographyContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml b/SRT/Configuration/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml index 75b8b71c0..9d7d96a62 100644 --- a/SRT/Configuration/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/HolographyDXCContainer/HolographyDXCContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml index 645ee4c3a..34665eb51 100644 --- a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml index 645ee4c3a..34665eb51 100644 --- a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml @@ -17,7 +17,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml index c272aca08..46868e13a 100644 --- a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorLPContainer/LocalOscillatorLPContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorsContainer/LocalOscillatorsContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/LoggerContainer/LoggerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml b/SRT/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml index 4fcb583ec..efe679bf6 100644 --- a/SRT/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/ManagementContainer/ManagementContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 454546f78..64fcda240 100644 --- a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -12,7 +12,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml b/SRT/Configuration/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml index f6da4bdc9..deb79dc9f 100644 --- a/SRT/Configuration/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/MinorServoContainer/MinorServoContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml b/SRT/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml index f5e908deb..6b70dbb7f 100644 --- a/SRT/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/MountContainer/MountContainer.xml @@ -15,7 +15,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml b/SRT/Configuration/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/NoiseGeneratorContainer/NoiseGeneratorContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml b/SRT/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml index 735d82903..41a43711d 100644 --- a/SRT/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/PointContainer/PointContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig centralizedLogger="Log" diff --git a/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml index 6563a97be..6b7298a73 100644 --- a/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml b/SRT/Configuration/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml index 6563a97be..6b7298a73 100644 --- a/SRT/Configuration/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/PyIFDistributorContainer/PyIFDistributorContainer.xml @@ -11,7 +11,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/RFIMonitoringContainer/RFIMonitoringContainer.xml b/SRT/Configuration/CDB/MACI/Containers/RFIMonitoringContainer/RFIMonitoringContainer.xml index a960e4654..a861d4726 100644 --- a/SRT/Configuration/CDB/MACI/Containers/RFIMonitoringContainer/RFIMonitoringContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/RFIMonitoringContainer/RFIMonitoringContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml b/SRT/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/ReceiversContainer/ReceiversContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml index 3479007ed..3ea1b6d4d 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRT7GHzContainer/SRT7GHzContainer.xml @@ -18,7 +18,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml index 30f7ba30f..ee95012e3 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer/SRTActiveSurfaceContainer.xml @@ -11,7 +11,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml index 31764e60f..1980bc97c 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer01/SRTActiveSurfaceContainer01.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer02/SRTActiveSurfaceContainer02.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer03/SRTActiveSurfaceContainer03.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer04/SRTActiveSurfaceContainer04.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer05/SRTActiveSurfaceContainer05.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer06/SRTActiveSurfaceContainer06.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml index 66b82ffe0..3e8ce4987 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer07/SRTActiveSurfaceContainer07.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml index 80d6e75a7..e63aaa226 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTActiveSurfaceContainer08/SRTActiveSurfaceContainer08.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml index f905cfaae..85b388426 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTKBandContainer/SRTKBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml old mode 100755 new mode 100644 index 728c62f1a..c555569cc --- a/SRT/Configuration/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SRTLPBandContainer/SRTLPBandContainer.xml @@ -16,7 +16,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml index 23a931b5e..2b6f79973 100644 --- a/SRT/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/SardaraContainer/SardaraContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml b/SRT/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml index 8b6e502bf..b6cba5510 100644 --- a/SRT/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/TotalPowerContainer/TotalPowerContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml b/SRT/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml index bb32de674..864dbdb92 100644 --- a/SRT/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/WeatherStationContainer/WeatherStationContainer.xml @@ -17,7 +17,7 @@ ServerThreads="5"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml b/SRT/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml index fdebffedc..d807ff223 100644 --- a/SRT/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml +++ b/SRT/Configuration/CDB/MACI/Containers/XContainer/XContainer.xml @@ -13,7 +13,7 @@ Recovery="false"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml old mode 100755 new mode 100644 index 89a110563..14d60fe9b --- a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -11,25 +11,25 @@ <Startup> <!-- - <cdb:_ string="MINORSERVO/GFR"/> - <cdb:_ string="MINORSERVO/M3R"/> - <cdb:_ string="MINORSERVO/PFP"/> - <cdb:_ string="MINORSERVO/SRP"/> + <cdb:e string="MINORSERVO/GFR"/> + <cdb:e string="MINORSERVO/M3R"/> + <cdb:e string="MINORSERVO/PFP"/> + <cdb:e string="MINORSERVO/SRP"/> --> - <cdb:_ string="MANAGEMENT/CustomLogger"/> + <cdb:e string="MANAGEMENT/CustomLogger"/> </Startup> <ServiceComponents> - <cdb:_ string="Log"/> - <cdb:_ string="LogFactory"/> - <cdb:_ string="NotifyEventChannelFactory"/> - <cdb:_ string="ArchivingChannel"/> - <cdb:_ string="LoggingChannel"/> - <cdb:_ string="InterfaceRepository"/> - <cdb:_ string="CDB"/> - <cdb:_ string="ACSLogSvc"/> - <cdb:_ string="PDB"/> - <cdb:_ string="AcsAlarmService"/> + <cdb:e string="Log"/> + <cdb:e string="LogFactory"/> + <cdb:e string="NotifyEventChannelFactory"/> + <cdb:e string="ArchivingChannel"/> + <cdb:e string="LoggingChannel"/> + <cdb:e string="InterfaceRepository"/> + <cdb:e string="CDB"/> + <cdb:e string="ACSLogSvc"/> + <cdb:e string="PDB"/> + <cdb:e string="AcsAlarmService"/> </ServiceComponents> <ServiceDaemons> -- GitLab From c4f265d5c180d3857eeeb0a33a9c53674c972874 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 25 Jul 2022 12:51:57 +0200 Subject: [PATCH 003/150] Ported most Python 2 to Python 3 (#725) * Fix #720, ported most python to python 3 Compatibility with python 2 was retained by adding the `from __future__ import print_function` statement when needed. Changed `except Exception, ex:` to `except Exception as ex:` Changed some occurrencies of `raise Exception "message"` to `raise Exception("message")` There are many, many python scripts and I probably missed some of them. I guess I will fix them whenever an error pops up * Fix #720, found some other python files * Fix #720, fixed calibrationtoolclient indentation issues * Fix #720, fixed some issues with discosConsole interfaces * Fix #720, meteoClient updated It now uses the Qwt python wrapper found here https://github.com/GauiStori/PyQt-Qwt The code has been refactored in order to be properly organized and it has been updated in order to use Qwt 6 It seems to be working properly when used in conjunction with the simulators * Fix #720, updated meteoClient * Fix #720, updated CaltoolClient * Fix #720, fixed some Python 3 related errors --- Common/Clients/CaltoolClient/src/Makefile | 4 +- Common/Clients/CaltoolClient/src/_ctc.py | 666 +++++++------- .../CaltoolClient/src/customwidgets.py | 121 ++- .../src/_gui_customLoggingClient.py | 26 +- Common/Clients/MeteoClient/src/meteoClient.py | 827 ++++++++---------- .../SystemTerminal/src/_tui_SysTerm.py | 235 ++--- .../SystemTerminal/src/nuraghe_commands.py | 13 +- .../IRALibrary/src/IRAPy/__init__.py | 4 +- .../src/SimpleParserPy/__init__.py | 4 +- .../PyTesting/src/testing/simulator.py | 3 +- .../Misc/InjectCommand/src/injectCommand.py | 12 +- Common/Misc/KStars/src/startKS.py | 10 +- Common/Misc/OnOffSwitching/devices.py | 6 +- Common/Misc/OnOffSwitching/handler.py | 96 +- Common/Misc/OnOffSwitching/models.py | 6 +- Common/Misc/OnOffSwitching/onoff_switching.py | 5 +- .../OnOffSwitching/utils/test_tracking.py | 2 +- Common/Misc/PMUpdate/src/PMUpdate.py | 79 +- Common/Misc/PMUpdate/src/PMUpdate_main.py | 16 +- Common/Misc/PMUpdate/src/upgrade_module.py | 19 +- Common/Misc/PMUpdate/src/utility.py | 6 +- Common/Misc/Plotter/src/plotter.py | 111 +-- Common/Misc/Scripts/src/data_stats | 5 +- Common/Misc/Scripts/src/tabbify | 2 +- .../src/getTemplateForTests | 4 +- .../src/gettemplatefortests.py | 4 +- .../PyCalmux/src/Calmux/PyCalmuxImpl.py | 16 +- .../DewarPositioner/DewarPositionerImpl.py | 119 +-- .../src/DewarPositioner/cdbconf.py | 2 +- .../src/DewarPositioner/posgenerator.py | 12 +- .../src/DewarPositioner/positioner.py | 36 +- .../src/derotatorPosition.py | 3 +- .../src/LocalOscillatorImpl/CommandLine.py | 67 +- .../LocalOscillatorImpl/LocalOscillator.py | 9 +- .../src/LocalOscillatorImpl/devios.py | 10 +- .../src/AntennaBossSim/AntennaBossSimImpl.py | 2 +- .../src/ReceiverBoardSimImpl/board_server.py | 19 +- .../TCPGenericProtocolSimImpl/TCPServer.py | 19 +- Medicina/Misc/MedScripts/src/medsubr.py | 10 +- Medicina/Misc/MedScripts/src/setupccc.py | 14 +- Medicina/Misc/MedScripts/src/setupkkc.py | 14 +- .../CommandLine.py | 13 +- Noto/Misc/NotoScripts/src/peakf.py | 65 +- Noto/Misc/NotoScripts/src/subr.py | 63 +- Noto/Misc/NotoScripts/src/subrOff.py | 41 +- .../NotoPyIfDistributor/src/_ifdist.py | 3 +- .../NotoLocalOscillatorImpl/CommandLine.py | 21 +- SRT/Misc/SRTScripts/src/receiversmonitor.py | 11 +- 48 files changed, 1391 insertions(+), 1464 deletions(-) diff --git a/Common/Clients/CaltoolClient/src/Makefile b/Common/Clients/CaltoolClient/src/Makefile index 8ee218bce..a6d602bc0 100644 --- a/Common/Clients/CaltoolClient/src/Makefile +++ b/Common/Clients/CaltoolClient/src/Makefile @@ -210,7 +210,9 @@ install : install_all gui: pyuic4 calibrationToolClient.ui -o calibrationtool_ui.py - @sed -ie 's/Qwt5.QwtPlot/PlotProperty/g' calibrationtool_ui.py + @sed -ie 's/from qwt_plot import QwtPlot//g' calibrationtool_ui.py + + @sed -ie 's/QwtPlot/PlotProperty/g' calibrationtool_ui.py @sed -ie '9 i\from customwidgets import *' calibrationtool_ui.py diff --git a/Common/Clients/CaltoolClient/src/_ctc.py b/Common/Clients/CaltoolClient/src/_ctc.py index 94708793d..ca41edf75 100644 --- a/Common/Clients/CaltoolClient/src/_ctc.py +++ b/Common/Clients/CaltoolClient/src/_ctc.py @@ -1,27 +1,27 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- +from __future__ import print_function from Acspy.Clients.SimpleClient import PySimpleClient import Acspy.Common.Err import maciErrType import maciErrTypeImpl -import ClientErrorsImpl +import ClientErrorsImpl import ACSLog import ACS, ACS__POA # Import the Python CORBA stubs for BACI from PyQt4 import Qt from PyQt4.QtCore import pyqtSlot,QThread,QMutex,QTimer -import PyQt4.Qwt5 as Qwt +import PyQt4.Qwt as Qwt import sys,getopt,os from time import sleep -import math +import math from IRAPy import logger,userLogger -import calibrationtool_ui # file generated by pyuic4 but modified to include - #custom widgets. - +import calibrationtool_ui # file generated by pyuic4 but modified to include custom widgets. + __version__ = '$Id' @@ -32,348 +32,328 @@ __version__ = '$Id' DEFAULT_COMPONENT="MANAGEMENT/CalibrationTool" class MyWorker(QThread): - def __init__(self,component,parent=None): - self.Mutex =QMutex() - QThread.__init__(self,parent) - self.caltool=component[0] - self.scheduler=component[1] - self.boss =component[2] - self.simpleClient=component[3] - self.run=True; - self.scanAxis = self.caltool._get_scanAxis() - - self.arrayDataY=self.caltool._get_arrayDataY() - self.arrayDataX=self.caltool._get_arrayDataX() - self.dataX=self.caltool._get_dataX() - self.dataY=self.caltool._get_dataY() - # self.datax_tmp=[0 for i in len(self_data)] - self.datay_tmp=[] - self.datax_tmp=[] - self.projectname=self.caltool._get_projectName() - self.observer =self.caltool._get_observer() - self.filename =self.caltool._get_fileName() - self.deviceID =self.caltool._get_deviceID() - self.subscan =self.scheduler._get_subScanID() - self.scan =self.scheduler._get_scanID() - self.hpbw =self.caltool._get_hpbw() - self.amplitude =self.caltool._get_amplitude() - self.peakOffset =self.caltool._get_peakOffset() - self.slope =self.caltool._get_slope() - self.offset =self.caltool._get_offset() - self.name =self.boss._get_target() - self.device =self.caltool._get_deviceID() - self.oldscan=0L - self.newscan=0L - self.oldsubscan=0L - self.newsubscan=0L - self.oldrecordingstatus=False - self.newrecordingstatus=False - self.azimuthOffset=self.boss._get_azimuthOffset() - self.elevationOffset=self.boss._get_elevationOffset() - - - def run (self): - try: - -# arrayDataX=self.componenselft._get_arrayDataX() -# arrayDataY=self.component._get_arrayDataY() - while self.run: - (scanaxis,compl)=self.scanAxis.get_sync() - #self.scanAx - (arraydatax,compl)=self.arrayDataX.get_sync() - if 'SUBR' not in str(scanaxis): - arraydatax[:]=[x /math.pi*180. for x in arraydatax] - - - self.emit(Qt.SIGNAL("arrayDataX"),arraydatax) - (arraydatay,compl2)=self.arrayDataY.get_sync() - - self.emit(Qt.SIGNAL("arrayDataY"),arraydatay) - (datay,compl3)=self.dataY.get_sync() - (datax,compl3)=self.dataX.get_sync() - if 'SUBR' not in str(scanaxis): - - datax=datax/math.pi*180. - (projectname,compl4)=self.projectname.get_sync() - self.emit(Qt.SIGNAL("projectname"),projectname) - (observername,compl5)=self.observer.get_sync() - self.emit(Qt.SIGNAL("observer"),observername) - (filename,compl6)=self.filename.get_sync() - self.emit(Qt.SIGNAL("filename"),filename) - (subscanid,compl7)=self.subscan.get_sync() - self.emit(Qt.SIGNAL("subscan"),str(subscanid)) - (scanid,compl8)=self.scan.get_sync() - self.emit(Qt.SIGNAL("scan"),str(scanid)) - (hpbw,compl9)=self.hpbw.get_sync() - - if 'SUBR' not in str(scanaxis): - hpbw= hpbw/math.pi*180*60 - self.emit(Qt.SIGNAL("hpbw"),("%5.3f" % (hpbw))) - (amplitude,compl10)=self.amplitude.get_sync() - self.emit(Qt.SIGNAL("amplitude"),"%5.3f" % amplitude) - (peakOffset,compl11)=self.peakOffset.get_sync() - if 'SUBR' not in str(scanaxis): - peakOffset=peakOffset/math.pi*180 - - self.emit(Qt.SIGNAL("peakOffset"),"%5.3f" % (peakOffset)) - (slope,compl12)=self.slope.get_sync() - - self.emit(Qt.SIGNAL("slope"),"%5.3f" %slope) - (offset,compl13)=self.offset.get_sync() - self.emit(Qt.SIGNAL("offset"),"%5.3f" % offset) - (target,compl13)=self.name.get_sync() - self.emit(Qt.SIGNAL("target"),target) - (device,compl13)=self.device.get_sync() - self.emit(Qt.SIGNAL("device"),str(device)) - self.emit(Qt.SIGNAL("scanAxis"),scanaxis) - (azOffset,_)=self.azimuthOffset.get_sync() - (elOffset,_)=self.elevationOffset.get_sync() - - self.emit(Qt.SIGNAL("azoffset"),str(azOffset/math.pi*180)) - self.emit(Qt.SIGNAL("eloffset"),str(elOffset/math.pi*180)) - - - rec= self.caltool.isRecording() - if rec==True: - self.datay_tmp.append(datay) - self.datax_tmp.append(datax) - self.emit(Qt.SIGNAL("DataY"),self.datay_tmp) - self.emit(Qt.SIGNAL("DataX"),self.datax_tmp) - - self.emit(Qt.SIGNAL("isRecording"),rec) - self.emit(Qt.SIGNAL("scanAxis"),scanaxis) - - # print rec -# if (subscanid!=self.oldsubscan and scanid !=self.oldscanid): -# print "scan changed",self.oldsubscan,subscanid -# self.oldsubscan=subscanid -# self.subscan=subscanid -# self.datax_tmp=[] -# self.datay_tmp=[] - - - if (rec!=self.oldrecordingstatus): - self.oldrecordingstatus=rec - self.datax_tmp=[] - self.datay_tmp=[] - - - - QThread.msleep(200) - print "Exited from thread" - - except Exception,ex: - newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex, create=1) - newEx.setPropertyName("") - #ACS_LOG_ERROR - newEx.log(self.simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) - - self.run=False - - def __del__(self): + def __init__(self,component,parent=None): + self.Mutex =QMutex() + QThread.__init__(self,parent) + self.caltool=component[0] + self.scheduler=component[1] + self.boss =component[2] + self.simpleClient=component[3] + self.run=True; + self.scanAxis = self.caltool._get_scanAxis() + + self.arrayDataY=self.caltool._get_arrayDataY() + self.arrayDataX=self.caltool._get_arrayDataX() + self.dataX=self.caltool._get_dataX() + self.dataY=self.caltool._get_dataY() + #self.datax_tmp=[0 for i in len(self_data)] + self.datay_tmp=[] + self.datax_tmp=[] + self.projectname=self.caltool._get_projectName() + self.observer =self.caltool._get_observer() + self.filename =self.caltool._get_fileName() + self.deviceID =self.caltool._get_deviceID() + self.subscan =self.scheduler._get_subScanID() + self.scan =self.scheduler._get_scanID() + self.hpbw =self.caltool._get_hpbw() + self.amplitude =self.caltool._get_amplitude() + self.peakOffset =self.caltool._get_peakOffset() + self.slope =self.caltool._get_slope() + self.offset =self.caltool._get_offset() + self.name =self.boss._get_target() + self.device =self.caltool._get_deviceID() + self.oldscan=0 + self.newscan=0 + self.oldsubscan=0 + self.newsubscan=0 + self.oldrecordingstatus=False + self.newrecordingstatus=False + self.azimuthOffset=self.boss._get_azimuthOffset() + self.elevationOffset=self.boss._get_elevationOffset() + + + def run (self): + try: + #arrayDataX=self.componenselft._get_arrayDataX() + #arrayDataY=self.component._get_arrayDataY() + while self.run: + (scanaxis,compl)=self.scanAxis.get_sync() + #self.scanAx + (arraydatax,compl)=self.arrayDataX.get_sync() + if 'SUBR' not in str(scanaxis): + arraydatax[:]=[x /math.pi*180. for x in arraydatax] + self.emit(Qt.SIGNAL("arrayDataX"),arraydatax) + (arraydatay,compl2)=self.arrayDataY.get_sync() + self.emit(Qt.SIGNAL("arrayDataY"),arraydatay) + (datay,compl3)=self.dataY.get_sync() + (datax,compl3)=self.dataX.get_sync() + if 'SUBR' not in str(scanaxis): + datax=datax/math.pi*180. + (projectname,compl4)=self.projectname.get_sync() + self.emit(Qt.SIGNAL("projectname"),projectname) + (observername,compl5)=self.observer.get_sync() + self.emit(Qt.SIGNAL("observer"),observername) + (filename,compl6)=self.filename.get_sync() + self.emit(Qt.SIGNAL("filename"),filename) + (subscanid,compl7)=self.subscan.get_sync() + self.emit(Qt.SIGNAL("subscan"),str(subscanid)) + (scanid,compl8)=self.scan.get_sync() + self.emit(Qt.SIGNAL("scan"),str(scanid)) + (hpbw,compl9)=self.hpbw.get_sync() + if 'SUBR' not in str(scanaxis): + hpbw= hpbw/math.pi*180*60 + self.emit(Qt.SIGNAL("hpbw"),("%5.3f" % (hpbw))) + (amplitude,compl10)=self.amplitude.get_sync() + self.emit(Qt.SIGNAL("amplitude"),"%5.3f" % amplitude) + (peakOffset,compl11)=self.peakOffset.get_sync() + if 'SUBR' not in str(scanaxis): + peakOffset=peakOffset/math.pi*180 + self.emit(Qt.SIGNAL("peakOffset"),"%5.3f" % (peakOffset)) + (slope,compl12)=self.slope.get_sync() + self.emit(Qt.SIGNAL("slope"),"%5.3f" %slope) + (offset,compl13)=self.offset.get_sync() + self.emit(Qt.SIGNAL("offset"),"%5.3f" % offset) + (target,compl13)=self.name.get_sync() + self.emit(Qt.SIGNAL("target"),target) + (device,compl13)=self.device.get_sync() + self.emit(Qt.SIGNAL("device"),str(device)) + self.emit(Qt.SIGNAL("scanAxis"),scanaxis) + (azOffset,_)=self.azimuthOffset.get_sync() + (elOffset,_)=self.elevationOffset.get_sync() + self.emit(Qt.SIGNAL("azoffset"),str(azOffset/math.pi*180)) + self.emit(Qt.SIGNAL("eloffset"),str(elOffset/math.pi*180)) + + rec= self.caltool.isRecording() + if rec==True: + self.datay_tmp.append(datay) + self.datax_tmp.append(datax) + self.emit(Qt.SIGNAL("DataY"),self.datay_tmp) + self.emit(Qt.SIGNAL("DataX"),self.datax_tmp) + + self.emit(Qt.SIGNAL("isRecording"),rec) + self.emit(Qt.SIGNAL("scanAxis"),scanaxis) + + #print(rec) + #if (subscanid!=self.oldsubscan and scanid !=self.oldscanid): + #print("scan changed",self.oldsubscan,subscanid) + #self.oldsubscan=subscanid + #self.subscan=subscanid + #self.datax_tmp=[] + #self.datay_tmp=[] + + if (rec!=self.oldrecordingstatus): + self.oldrecordingstatus=rec + self.datax_tmp=[] + self.datay_tmp=[] + QThread.msleep(200) - pass - + print("Exited from thread") + + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex, create=1) + newEx.setPropertyName("") + #ACS_LOG_ERROR + newEx.log(self.simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) + self.run=False + + def __del__(self): + QThread.msleep(200) + class Application(Qt.QDialog,calibrationtool_ui.Ui_CalibrationToolDialog): - - def __init__(self,compname,parent=None): - - self.scheduler=None - self.antennaBoss=None - self.component=None - self.componentName=DEFAULT_COMPONENT - self.managerConnected=False - self.thread=None - - try: - self.simpleClient = PySimpleClient() - self.managerConnected=True - except Exception,ex: - newEx = ClientErrorsImpl.CouldntLogManagerExImpl(exception=ex, create=1) - logger.logException(newEx) - print "Please check the system is up and running......" - sys.exit(-1) - - try: - self.scheduler= self.simpleClient.getDefaultComponent("IDL:alma/Management/Scheduler:1.0") - except Exception,ex: - newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) - newEx.setComponentName("IDL:alma/Management/Scheduler:1.0") - logger.logException(newEx) - print "Please check the system is up and running and scheduler component is alive!" - sys.exit(-1) - - try: - self.antennaBoss =self.simpleClient.getDefaultComponent("IDL:alma/Antenna/AntennaBoss:1.0") - except Exception,ex: - newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) - newEx.setComponentName("IDL:alma/Antenna/AntennaBoss:1.0") - logger.logException(newEx) - print "Please check the system is up and running and antenna boss is alive!" - sys.exit(-1) - - #choose default recorder - if compname=='default': - try: - recorder=self.scheduler._get_currentRecorder() - (recordername,compl)=recorder.get_sync() - except Exception,ex: - newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex, create=1) - logger.logException(newEx) - print "Please check scheduler component is alive and responsive|" - sys.exit(-1) - - print "Starting with default component: " + DEFAULT_COMPONENT - if recordername!=DEFAULT_COMPONENT: - print "Be aware that the in-use recorder is currently " + recordername - - self.componentName=DEFAULT_COMPONENT - - else: - self.componentName=compname - print "Starting with component: " + self.componentName - - try: - self.component= self.simpleClient.getComponent(self.componentName) - except Exception,ex: - newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) - newEx.setComponentName(self.componentName) - logger.logException(newEx) - print "Please check the system is up and running and " + self.componentName + " is alive!" - sys.exit(-1) - - self.thread=MyWorker([self.component,self.scheduler,self.antennaBoss,self.simpleClient]) - Qt.QDialog.__init__(self) - self.setupUi(self) -# self.qwtPlot_datax.setAxisScale(Qwt.QwtPlot.xBottom, 0,1000) - self.qwtPlot_datax.setAxisAutoScale(Qwt.QwtPlot. yLeft) - self.setWindowTitle(self.componentName) - self.qwtPlot_datax.setAxisTitle(Qwt.QwtPlot.yLeft, "Ta(K)") - self.qwtPlot_datay.setAxisTitle(Qwt.QwtPlot.yLeft, "Ta(K)") - - self.connect(self.thread,Qt.SIGNAL("arrayDataX"),self.qwtPlot_datay.setX) - self.connect(self.thread,Qt.SIGNAL("arrayDataY"),self.qwtPlot_datay.setVal) - - self.connect(self.thread,Qt.SIGNAL("DataX"),self.qwtPlot_datax.setX) - self.connect(self.thread,Qt.SIGNAL("DataY"),self.qwtPlot_datax.setVal) - - self.connect(self.thread,Qt.SIGNAL("projectname"),self.plainTextEdit_project.setPlainText) - self.connect(self.thread,Qt.SIGNAL("observer"),self.plainTextEdit_observer.setPlainText) - self.connect(self.thread,Qt.SIGNAL("filename"),self.plainTextEdit_filename.setPlainText) - self.connect(self.thread,Qt.SIGNAL("subscan"),self.subscanIdLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("scan"),self.scanIdLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("hpbw"),self.hpbwLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("amplitude"),self.amplitudeLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("peakOffset"),self.peakoffsetLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("slope"),self.slopeLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("offset"),self.offsetLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("target"),self.nameLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("device"),self.deviceIdLineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("isRecording"),self.isRecording) - self.connect(self.thread,Qt.SIGNAL("scanAxis"),self.scanAxis) - self.connect(self.thread,Qt.SIGNAL("eloffset"),self.elOffsetlineEdit.setText) - self.connect(self.thread,Qt.SIGNAL("azoffset"),self.azOffsetlineEdit.setText) - - - - - - - @pyqtSlot(Qt.QObject,name="isRecording") - def isRecording(self,rec): - if rec==False: - self.recording.setText("OFF") - palette = self.recording.palette() - role = self.recording.backgroundRole() - palette.setColor(role, Qt.QColor('gray')) - self.recording.setPalette(palette) - self.BScanaxis.setEnabled(False) - if rec==True: - self.recording.setText("ON") - palette = self.recording.palette() - role = self.recording.backgroundRole() - palette.setColor(role, Qt.QColor('green')) - self.recording.setPalette(palette) - self.BScanaxis.setEnabled(True) - - @pyqtSlot(Qt.QObject,name="scanAxis") # decorator for the slot - def scanAxis(self,scanaxis): - self.BScanaxis.setText(str(scanaxis)) - if 'SUBR' not in str(scanaxis): - self.scanAxisLabel.setText('ScanAxis - Pointing') - xaxis_text="Direction (Deg)" - hpbw_label_text='HPBW(arcmim)' - peakOffsetLabel_text='PeakOffset(deg)' - else: - self.scanAxisLabel.setText('ScanAxis - Focus') - xaxis_text="Distance (mm)" - hpbw_label_text='HPBW(mm)' - peakOffsetLabel_text='PeakOffset(mm)' - self.qwtPlot_datax.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) - self.qwtPlot_datay.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) - self.hpbw_label.setText(hpbw_label_text) - self.peakOffsetLabel.setText(peakOffsetLabel_text) - - @pyqtSlot(Qt.QObject,name="scalePlots") # decorator for the slot - def scalePlots(self,val): - self.qwtPlot_datay.setAxisScale(QwtPlot.xBottom, min(val), max(val)) - - def run(self): - self.thread.start() - - def __del__(self): - #__del__ apparently is called twice, I have no clue and it should be investigated - if self.thread: - if self.thread.isRunning: - self.thread.quit() - - if self.managerConnected: - try: - if self.component: - self.simpleClient.releaseComponent(self.component._get_name()) - if self.scheduler: - self.simpleClient.releaseComponent(self.scheduler._get_name()) - if self.antennaBoss: - self.simpleClient.releaseComponent(self.antennaBoss._get_name()) - except Exception,ex: - print "Error in application cleanup" - - + + def __init__(self,compname,parent=None): + + self.scheduler=None + self.antennaBoss=None + self.component=None + self.componentName=DEFAULT_COMPONENT + self.managerConnected=False + self.thread=None + + try: + self.simpleClient = PySimpleClient() + self.managerConnected=True + except Exception as ex: + newEx = ClientErrorsImpl.CouldntLogManagerExImpl(exception=ex, create=1) + logger.logException(newEx) + print("Please check the system is up and running......") + sys.exit(-1) + + try: + self.scheduler= self.simpleClient.getDefaultComponent("IDL:alma/Management/Scheduler:1.0") + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName("IDL:alma/Management/Scheduler:1.0") + logger.logException(newEx) + print("Please check the system is up and running and scheduler component is alive!") + sys.exit(-1) + + try: + self.antennaBoss =self.simpleClient.getDefaultComponent("IDL:alma/Antenna/AntennaBoss:1.0") + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName("IDL:alma/Antenna/AntennaBoss:1.0") + logger.logException(newEx) + print("Please check the system is up and running and antenna boss is alive!") + sys.exit(-1) + + #choose default recorder + if compname=='default': + try: + recorder=self.scheduler._get_currentRecorder() + (recordername,compl)=recorder.get_sync() + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex, create=1) + logger.logException(newEx) + print("Please check scheduler component is alive and responsive|") + sys.exit(-1) + + print("Starting with default component: " + DEFAULT_COMPONENT) + if recordername!=DEFAULT_COMPONENT: + print("Be aware that the in-use recorder is currently " + recordername) + + self.componentName=DEFAULT_COMPONENT + + else: + self.componentName=compname + print("Starting with component: " + self.componentName) + + try: + self.component= self.simpleClient.getComponent(self.componentName) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName(self.componentName) + logger.logException(newEx) + print("Please check the system is up and running and " + self.componentName + " is alive!") + sys.exit(-1) + + self.thread=MyWorker([self.component,self.scheduler,self.antennaBoss,self.simpleClient]) + Qt.QDialog.__init__(self) + self.setupUi(self) + #self.qwtPlot_datax.setAxisScale(Qwt.QwtPlot.xBottom, 0,1000) + self.qwtPlot_datax.setAxisAutoScale(Qwt.QwtPlot. yLeft) + self.setWindowTitle(self.componentName) + self.qwtPlot_datax.setAxisTitle(Qwt.QwtPlot.yLeft, "Ta(K)") + self.qwtPlot_datay.setAxisTitle(Qwt.QwtPlot.yLeft, "Ta(K)") + + self.connect(self.thread,Qt.SIGNAL("arrayDataX"),self.qwtPlot_datay.setX) + self.connect(self.thread,Qt.SIGNAL("arrayDataY"),self.qwtPlot_datay.setVal) + + self.connect(self.thread,Qt.SIGNAL("DataX"),self.qwtPlot_datax.setX) + self.connect(self.thread,Qt.SIGNAL("DataY"),self.qwtPlot_datax.setVal) + + self.connect(self.thread,Qt.SIGNAL("projectname"),self.plainTextEdit_project.setPlainText) + self.connect(self.thread,Qt.SIGNAL("observer"),self.plainTextEdit_observer.setPlainText) + self.connect(self.thread,Qt.SIGNAL("filename"),self.plainTextEdit_filename.setPlainText) + self.connect(self.thread,Qt.SIGNAL("subscan"),self.subscanIdLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("scan"),self.scanIdLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("hpbw"),self.hpbwLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("amplitude"),self.amplitudeLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("peakOffset"),self.peakoffsetLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("slope"),self.slopeLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("offset"),self.offsetLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("target"),self.nameLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("device"),self.deviceIdLineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("isRecording"),self.isRecording) + self.connect(self.thread,Qt.SIGNAL("scanAxis"),self.scanAxis) + self.connect(self.thread,Qt.SIGNAL("eloffset"),self.elOffsetlineEdit.setText) + self.connect(self.thread,Qt.SIGNAL("azoffset"),self.azOffsetlineEdit.setText) + + @pyqtSlot(Qt.QObject,name="isRecording") + def isRecording(self,rec): + if rec==False: + self.recording.setText("OFF") + palette = self.recording.palette() + role = self.recording.backgroundRole() + palette.setColor(role, Qt.QColor('gray')) + self.recording.setPalette(palette) + self.BScanaxis.setEnabled(False) + if rec==True: + self.recording.setText("ON") + palette = self.recording.palette() + role = self.recording.backgroundRole() + palette.setColor(role, Qt.QColor('green')) + self.recording.setPalette(palette) + self.BScanaxis.setEnabled(True) + + @pyqtSlot(Qt.QObject,name="scanAxis") # decorator for the slot + def scanAxis(self,scanaxis): + self.BScanaxis.setText(str(scanaxis)) + if 'SUBR' not in str(scanaxis): + self.scanAxisLabel.setText('ScanAxis - Pointing') + xaxis_text="Direction (Deg)" + hpbw_label_text='HPBW(arcmim)' + peakOffsetLabel_text='PeakOffset(deg)' + else: + self.scanAxisLabel.setText('ScanAxis - Focus') + xaxis_text="Distance (mm)" + hpbw_label_text='HPBW(mm)' + peakOffsetLabel_text='PeakOffset(mm)' + self.qwtPlot_datax.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) + self.qwtPlot_datay.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) + self.hpbw_label.setText(hpbw_label_text) + self.peakOffsetLabel.setText(peakOffsetLabel_text) + + @pyqtSlot(Qt.QObject,name="scalePlots") # decorator for the slot + def scalePlots(self,val): + self.qwtPlot_datay.setAxisScale(QwtPlot.xBottom, min(val), max(val)) + + def run(self): + self.thread.start() + + def __del__(self): + #__del__ apparently is called twice, I have no clue and it should be investigated + if self.thread: + if self.thread.isRunning: + self.thread.quit() + + if self.managerConnected: + try: + if self.component: + self.simpleClient.releaseComponent(self.component._get_name()) + if self.scheduler: + self.simpleClient.releaseComponent(self.scheduler._get_name()) + if self.antennaBoss: + self.simpleClient.releaseComponent(self.antennaBoss._get_name()) + except Exception as ex: + print("Error in application cleanup") + + def usage(): - print "calibrationtoolclient [component name]" - print - print "If no component name is provided, the default MANAGEMENT/CalibrationTool will be used" + print("calibrationtoolclient [component name]") + print() + print("If no component name is provided, the default MANAGEMENT/CalibrationTool will be used") def main(args): - sys.tracebacklimit=0 - - try: - opts, args = getopt.getopt(sys.argv[1:],"h",["help"]) - except getopt.GetoptError, err: - print str(err) - usage() - sys.exit(1) - - for o,a in opts: - if o in ("-h", "--help"): - usage() - sys.exit() - - if len(args)==0: - componentname='MANAGEMENT/CalibrationTool' - else: - componentname=args[0] - - app = Qt.QApplication(args) - a=Application(componentname) #passa il nome del component al costruttore - sleep(1) - a.run() - p=a.show() - sys.exit(app.exec_()) - sleep(2) - print "Application closed!" - + sys.tracebacklimit=0 + + try: + opts, args = getopt.getopt(sys.argv[1:],"h",["help"]) + except getopt.GetoptError as err: + print(str(err)) + usage() + sys.exit(1) + + for o,a in opts: + if o in ("-h", "--help"): + usage() + sys.exit() + + if len(args)==0: + componentname='MANAGEMENT/CalibrationTool' + else: + componentname=args[0] + + app = Qt.QApplication(args) + a=Application(componentname) #passa il nome del component al costruttore + sleep(1) + a.run() + p=a.show() + sys.exit(app.exec_()) + sleep(2) + print("Application closed!") + if __name__=='__main__': - main(sys.argv) + main(sys.argv) diff --git a/Common/Clients/CaltoolClient/src/customwidgets.py b/Common/Clients/CaltoolClient/src/customwidgets.py index 8eeb8e3af..b5858e95d 100644 --- a/Common/Clients/CaltoolClient/src/customwidgets.py +++ b/Common/Clients/CaltoolClient/src/customwidgets.py @@ -1,80 +1,77 @@ +from __future__ import print_function from PyQt4 import Qt from PyQt4.QtCore import pyqtSlot,QThread -import PyQt4.Qwt5 as Qwt +import PyQt4.Qwt as Qwt ''' Custom widgets classes. - - The file generated by the compilation of the .ui file with pyuic4 - must be changed. - For example, in the calibrationtool_ui.py the self.qwtPlot_datax widget + + The file generated by the compilation of the .ui file with pyuic4 + must be changed. + For example, in the calibrationtool_ui.py the self.qwtPlot_datax widget must inherit from PlotProperty class instead of its parent QwtPlot. The output of compilation of the .ui file thus must be changed accordingly. - - ''' - - +''' class PlotProperty(Qwt.QwtPlot): - - def __init__(self,parent,*args): - Qwt.QwtPlot.__init__(self,parent,*args) + def __init__(self,parent,*args): + Qwt.QwtPlot.__init__(self,parent,*args) #self.paint=Qt.QPainter(self) # you must initialize the superclass - self.timeData= [i for i in range (1000)] - self.y=[] - self.curve=Qwt.QwtPlotCurve('aaaa') - self.curve.attach(self) - p = Qt.QPalette() # + self.timeData= [i for i in range (1000)] + self.y=[] + self.curve=Qwt.QwtPlotCurve('aaaa') + self.curve.attach(self) + p = Qt.QPalette() p.setColor(self.backgroundRole(), Qt.QColor(30, 30, 50)) self.setPalette(p) - self.curve.setPen(Qt.QPen(Qt.Qt.red)) - - - + self.curve.setPen(Qt.QPen(Qt.Qt.red)) + #void Widget::drawCanvas(QPainter* p) #{ # QwtPlot::drawCanvas( p ); // <<--- # QStaticText txt("number"); # p->drawStaticText ( 0, 0, txt); -#} - - def suspend(self): - pass - @pyqtSlot(Qt.QObject,name="setval") # decorator for the slot - # Qt.Object is necessary for lists - # and dictionarys - def setVal(self,val): - value_decimated=[0 for i in range (len(val))] - - step=len(val)/1000. - if step<1: - step=1 #step 0 not allowed - for i in range(0,min(len(val),1000)): - value_decimated[int(i)] =val[int(i*step-1)] -# self.curve.setData(self.timeData,value_decimated) - self.curve.setData(self.timeData,val) - self.replot() - @pyqtSlot(Qt.QObject,name="setX") # decorator for the slot - - def setX(self,val): - self.timeData=[i for i in val] - def setDataY(self,val): - value_decimated=[0 for i in range (1000)] - - step=len(val)/1000. - if step<1: - step=1 #step 0 not allowed - for i in range(0,min(len(val),1000)): - value_decimated[int(i)] =val[int(i*step)-1] -# self.curve.setData(self.timeData,value_decimated) - self.curve.setData(self.timeData,val) - - self.replot() - def setDataX(self,val): - pass - def setCurveColor(self,val): - pass - def __del__(self): -# self.actMonwspeed.destroy() - print "The end __oOo__" +#} + + def suspend(self): + pass + + @pyqtSlot(Qt.QObject,name="setval") # decorator for the slot, Qt.Object is necessary for lists and dictionarys + def setVal(self,val): + value_decimated=[0 for i in range (len(val))] + + step=len(val)/1000. + if step<1: + step=1 #step 0 not allowed + for i in range(0,min(len(val),1000)): + value_decimated[int(i)] =val[int(i*step-1)] + #self.curve.setSamples(self.timeData, value_decimated) + self.curve.setSamples(self.timeData, val) + self.replot() + + @pyqtSlot(Qt.QObject,name="setX") # decorator for the slot + def setX(self,val): + self.timeData=[i for i in val] + + def setDataY(self,val): + value_decimated=[0 for i in range (1000)] + + step=len(val)/1000. + if step<1: + step=1 #step 0 not allowed + for i in range(0,min(len(val),1000)): + value_decimated[int(i)] =val[int(i*step)-1] + #self.curve.setSamples(self.timeData, value_decimated) + self.curve.setSamples(self.timeData, val) + self.replot() + + def setDataX(self,val): + pass + + def setCurveColor(self,val): + pass + + def __del__(self): + #self.actMonwspeed.destroy() + print("The end __oOo__") diff --git a/Common/Clients/CustomLoggingClient/src/_gui_customLoggingClient.py b/Common/Clients/CustomLoggingClient/src/_gui_customLoggingClient.py index 3aaa1a4ff..468b9bb8b 100755 --- a/Common/Clients/CustomLoggingClient/src/_gui_customLoggingClient.py +++ b/Common/Clients/CustomLoggingClient/src/_gui_customLoggingClient.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function """ CustomLoggingClient implements a Tkinter interface that monitors in realtime the ACS custom logging events generated runtime. @@ -13,7 +14,10 @@ import sys import logging import bisect import functools -import Tkinter as tk +try: + import Tkinter as tk +except: + import tkinter as tk from IRAPy.bsqueue import BoundedSortedQueue #DEFINE LOGGING RECORDS TOTAL ORDERING RULES @@ -56,11 +60,11 @@ class App: self.yscrollbar.config(command=self.list_box.yview) def handler(self, event): - """ - Handle a log_event adding it to a BoundedSortedQueue in memory and to the - corresponding GUI representation (in Tkinter this sould be a Listbox). - @param event: the logging event. - """ + """ + Handle a log_event adding it to a BoundedSortedQueue in memory and to the + corresponding GUI representation (in Tkinter this sould be a Listbox). + @param event: the logging event. + """ index, popped = self.record_list.push(event) if popped: self.list_box.delete(0) @@ -83,22 +87,22 @@ if __name__ == '__main__': consumer = Consumer(Management.CUSTOM_LOGGING_CHANNEL_NAME) consumer.addSubscription(Management.CustomLoggingData, app.handler) consumer.consumerReady() - except Exception, ex: - print "exception caught: ", ex #TODO: throw excep + except Exception as ex: + print("exception caught: ", ex) #TODO: throw excep logger.logError(ex.message) #try: def handle_signal(num, trace): #trace.f_locals['app'].clear() #trace.f_locals['consumer'].disconnect() - print "Exiting" + print("Exiting") sys.exit(0) signal.signal(signal.SIGINT, handle_signal) signal.signal(signal.SIGUSR1, handle_signal) root.mainloop() - #except KeyboardInterrupt, ki: + #except KeyboardInterrupt as ki: # pass #finally: # consumer.disconnect() - # print "Exiting" + # print("Exiting") diff --git a/Common/Clients/MeteoClient/src/meteoClient.py b/Common/Clients/MeteoClient/src/meteoClient.py index f751a14a3..aa0d86ff1 100644 --- a/Common/Clients/MeteoClient/src/meteoClient.py +++ b/Common/Clients/MeteoClient/src/meteoClient.py @@ -1,16 +1,13 @@ #! /usr/bin/env python - -# to do: emit from - +from __future__ import print_function from Acspy.Clients.SimpleClient import PySimpleClient # Import the acspy.PySimpleClient class import ACS, ACS__POA # Import the Python CORBA stubs for BACI -from omniORB.CORBA import TRUE, FALSE +from omniORB.CORBA import TRUE, FALSE from time import sleep import time from PyQt4 import Qt, QtCore, QtGui -import PyQt4.Qwt5 as Qwt -from PyQt4.Qwt5.anynumpy import * +import PyQt4.Qwt as Qwt import sys import ACSErrTypeCommonImpl @@ -19,496 +16,436 @@ import ACSErrTypeOKImpl import ClientErrorsImpl from IRAPy import logger from Acspy.Common.Err import ACSError -from Acspy.Common.Log import acsPrintExcDebug -from numpy import concatenate,zeros -from Acspy.Common.TimeHelper import getTimeStamp,TimeUtil +from Acspy.Common.Log import acsPrintExcDebug +from numpy import concatenate, zeros, arange +from Acspy.Common.TimeHelper import getTimeStamp, TimeUtil + def enumList(enum, sentinel): - ''' - ''' - return [enum(i) for i in range(sentinel)] + return [enum(i) for i in range(sentinel)] + colorGroupList = enumList( - Qt.QPalette.ColorGroup, Qt.QPalette.NColorGroups) + Qt.QPalette.ColorGroup, Qt.QPalette.NColorGroups) colorRoleList = enumList( - Qt.QPalette.ColorRole, Qt.QPalette.NColorRoles) + Qt.QPalette.ColorRole, Qt.QPalette.NColorRoles) handList = enumList( - Qwt.QwtAnalogClock.Hand, Qwt.QwtAnalogClock.NHands) + Qwt.QwtAnalogClock.Hand, Qwt.QwtAnalogClock.NHands) +BUFFER = 3600 # number of points for plot -BUFFER = 3600 # number of points for plot - -TIMESTEP=5 # seconds -HISTORY=500 # - +TIMESTEP = 5 # seconds +HISTORY = 500 class PropertyMonitor(ACS__POA.CBdouble,Qt.QObject): - #------------------------------------------------------------------------------ - ''' - This class defines the method(s) that will be invoked asynchronously by the - mount device for any monitors we may create. - ''' - #------------------------------------------------------------------------------ - def __init__ (self,widget, propName = None,*args): - ''' - If the propertys name is specified, it is printed to STDOUT later on. - ''' - if propName != None: - self.propName = propName - else: - self.propName = "NoName" - Qt.QObject.__init__(self) # - - - self.widget = widget -# Qwt.QwtPlot.__init__(self)) - - - #------------------------------------------------------------------------------ - def __del__(self): - ''' - Do nothing - ''' - #------------------------------------------------------------------------------ - def working (self, value, completion, desc): - ''' - Really this is the method that does all the work and the developer should - be concerned with. - Parameters: value = the double we are interested in - completion = completion structure - desc = callback struct description - ''' - #self.count = self.count + 1 - #if self.count <= 5: - try: -# print "Working: ", str(self.propName), " is ", str(value) - # self.widget.setVal(float(str(value))) - value=float(str(value)) - self.emit(Qt.SIGNAL("PropertyChanghed(float)"),value) - - except: - acsPrintExcDebug() - print "exception" - displayMessageEx = ACSErrTypeCommonImpl.GenericErrorExImpl() - displayMessageEx.setErrorDesc("badMethod has thrown an UNEXPECTED exception") - displayMessageEx.log() - - - #------------------------------------------------------------------------------ - def done (self, value, completion, desc): - ''' - Invoked asynchronously when the DO has finished. Normally this is invoked - just before a monitor is destroyed. - Parameters: value = the final value of the double we are interested in - completion = completion structure - desc = callback struct description - ''' - print "Done: ", str(self.propName), " is ", str(value) -# self.widget.setValue(float(value)) - - #------------------------------------------------------------------------------ - def negotiate (self, time_to_transmit, desc): - ''' - For simplicitys sake, we always return true. If you want more detailed, - information on this method, please see the BACI specs. - Parameters: See the BACI specs. - ''' - return TRUE -#------------------------------------------------------------------------------ + #------------------------------------------------------------------------------ + ''' + This class defines the method(s) that will be invoked asynchronously by the + mount device for any monitors we may create. + ''' + def __init__ (self, widget, propName = None, *args): + ''' + If the propertys name is specified, it is printed to STDOUT later on. + ''' + if propName != None: + self.propName = propName + else: + self.propName = "NoName" + Qt.QObject.__init__(self) + + self.widget = widget + #Qwt.QwtPlot.__init__(self)) + + def __del__(self): + ''' + Do nothing + ''' + pass + + def working (self, value, completion, desc): + ''' + Really this is the method that does all the work and the developer should + be concerned with. + Parameters: value = the double we are interested in + completion = completion structure + desc = callback struct description + ''' + #self.count = self.count + 1 + #if self.count <= 5: + try: + #print("Working: ", str(self.propName), " is ", str(value)) + #self.widget.setVal(float(str(value))) + value = float(str(value)) + self.emit(Qt.SIGNAL("PropertyChanghed(float)"), value) + + except: + acsPrintExcDebug() + print("exception") + displayMessageEx = ACSErrTypeCommonImpl.GenericErrorExImpl() + displayMessageEx.setErrorDesc("badMethod has thrown an UNEXPECTED exception") + displayMessageEx.log() + + def done (self, value, completion, desc): + ''' + Invoked asynchronously when the DO has finished. Normally this is invoked + just before a monitor is destroyed. + Parameters: value = the final value of the double we are interested in + completion = completion structure + desc = callback struct description + ''' + print("Done: ", str(self.propName), " is ", str(value)) + #self.widget.setValue(float(value)) + + def negotiate (self, time_to_transmit, desc): + ''' + For simplicitys sake, we always return true. If you want more detailed, + information on this method, please see the BACI specs. + Parameters: See the BACI specs. + ''' + return TRUE + class SpeedoMeter(Qwt.QwtDial): - def __init__(self,parent=None): - Qwt.QwtDial.__init__(self, parent) - self.__label = 'km/h' - self.setWrapping(False) - self.setReadOnly(True) + def __init__(self, limit, parent=None): + Qwt.QwtDial.__init__(self, parent) + self.limit = limit + self.__label = 'km/h' + self.setWrapping(False) + self.setReadOnly(True) - self.setOrigin(135.0) - self.setScaleArc(0.0, 270.0) + self.setOrigin(135.0) + self.setScaleArc(0.0, 270.0) - self.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow,True,Qt.QColor(Qt.Qt.blue),Qt.QColor(Qt.Qt.gray).light(130))) + self.setNeedle(Qwt.QwtDialSimpleNeedle(Qwt.QwtDialSimpleNeedle.Arrow, True, Qt.QColor(Qt.Qt.blue), Qt.QColor(Qt.Qt.gray).light(130))) - self.setScaleOptions(Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel) - self.setScaleTicks(0, 4, 8) - self.setRange(0.0,80.0) - self.setScale(-1, 2, 20) - self.setFrameShadow(Qwt.QwtDial.Sunken) + #self.setScaleOptions(Qwt.QwtDial.ScaleTicks | Qwt.QwtDial.ScaleLabel) + #self.setScaleTicks(0, 4, 8) + #self.setMinScaleArc(0.0) + #self.setMaxScaleArc(80.0) + #self.setRange(0.0,80.0) + self.setScale(0.0, 80.0) + self.setFrameShadow(Qwt.QwtDial.Sunken) - # __init__() - - def setLabel(self, text): - self.__label = text - self.update() + def setLabel(self, text): + self.__label = text + self.update() - # setLabel() - - def label(self): - return self.__label + def label(self): + return self.__label - # label() - - def drawScaleContents(self, painter, center, radius): - rect = Qt.QRect(0, 0, 2 * radius, 2 * radius - 10) - rect.moveCenter(center) - painter.setPen(self.palette().color(Qt.QPalette.Text)) - painter.drawText(rect, Qt.Qt.AlignBottom | Qt.Qt.AlignHCenter, self.__label) - rect = Qt.QRect(-1000, -1000, 2 * radius-30, 2 * radius-30) - rect.moveCenter(center) - - painter.setPen(Qt.QPen(Qt.Qt.red,8)) - - painter.drawArc(rect,-500,1300) - painter.setPen(Qt.QPen(Qt.Qt.green,8)) - - painter.drawArc(rect,1000,2500) - - - - def setVal(self,value=0.): - self.setValue(value) - - # drawScaleContents + def drawScaleContents(self, painter, center, radius): + rect = Qt.QRect(0, 0, 2 * radius, 2 * radius - 10) + rect.moveCenter(center.toPoint()) + painter.setPen(self.palette().color(Qt.QPalette.Text)) + painter.drawText(rect, Qt.Qt.AlignBottom | Qt.Qt.AlignHCenter, self.__label) + rect = Qt.QRect(-1000, -1000, 2 * radius - 30, 2 * radius - 30) + rect.moveCenter(center.toPoint()) -# class SpeedoMeter + unit = 270. / 80 + pen = Qt.QPen() + pen.setCapStyle(Qt.Qt.FlatCap) + pen.setWidth(8) + pen.setColor(Qt.Qt.red) + painter.setPen(pen) + painter.drawArc(rect, 16 * -45, 16 * (80 - self.limit) * unit) + pen.setColor(Qt.Qt.green) + painter.setPen(pen) + painter.drawArc(rect, 16 * (-45 + (80 - self.limit) * unit), 16 * self.limit * unit) + def setVal(self, value=0.): + self.setValue(value) -class TimeScaleDraw(Qwt.QwtScaleDraw): +class Background(Qwt.QwtPlotItem): - def __init__(self, baseTime, *args): - Qwt.QwtScaleDraw.__init__(self, *args) - self.baseTime = baseTime - - # __init__() + def __init__(self, limit): + Qwt.QwtPlotItem.__init__(self) + self.setZ(0.0) + self.limit = limit - def label(self, value): - upTime = self.baseTime.addSecs(int(value)*TIMESTEP) - return Qwt.QwtText(upTime.toString()) - + def rtti(self): + return Qwt.QwtPlotItem.Rtti_PlotUserItem + def draw(self, painter, xMap, yMap, rect): + c = Qt.QColor(Qt.Qt.gray) + r = Qt.QRect(rect.toAlignedRect()) + red = Qt.QColor(Qt.Qt.red) + yellow = Qt.QColor(Qt.Qt.yellow) + r.setBottom(yMap.transform(self.limit)) + r.setTop(yMap.transform(self.limit)) + painter.fillRect(r, red) -class Background(Qwt.QwtPlotItem): +class WindWidget(Qt.QWidget): - def __init__(self,limit): - Qwt.QwtPlotItem.__init__(self) - self.setZ(0.0) - self.limit=limit + def __init__(self,parent = None): + Qt.QWidget.__init__(self,parent) - # __init__() + self.compass = Qwt.QwtCompass(self) + self.lcd = QtGui.QLineEdit('0') - def rtti(self): - return Qwt.QwtPlotItem.Rtti_PlotUserItem + palette = Qt.QPalette() + palette.setColor(Qt.QPalette.Foreground, Qt.Qt.black) - # rtti() + newPalette = self.compass.palette() + rose = Qwt.QwtSimpleCompassRose(4, 1) + self.compass.setRose(rose) + self.compass.setNeedle(Qwt.QwtCompassWindArrow(Qwt.QwtCompassWindArrow.Style2, Qt.QColor(0xCCCCFF))) + #self.lcd.setSegmentStyle(Qt.QLCDNumber.Filled) + lcdpalette = Qt.QPalette() + lcdpalette.setBrush(Qt.QPalette.Background, Qt.Qt.red) - def draw(self, painter, xMap, yMap, rect): - c = Qt.QColor(Qt.Qt.gray) - r = Qt.QRect(rect) - red=Qt.QColor(Qt.Qt.red) - yellow=Qt.QColor(Qt.Qt.yellow) - - - r.setBottom(yMap.transform(self.limit)) - r.setTop(yMap.transform(self.limit)) - painter.fillRect(r,red) + layout = Qt.QGridLayout(self) + layout.addWidget(self.compass, 0, 0, 9, 0) + #layout.setColumnStrecth(10) + layout.addWidget(self.lcd, 10, 0) + self.setLayout(layout) - - # draw() + def __del__(self): + pass -# class Background + def setVal(self, value=0.): + self.compass.setValue(value) + self.lcd.setText(str(value) + " deg.") -class WindWidget(Qt.QWidget): - def __init__(self,parent=None): - Qt.QWidget.__init__(self,parent) - - self.compass=Qwt.QwtCompass(self) - self.lcd =QtGui.QLineEdit('0') - - palette = Qt.QPalette( ) - palette.setColor(Qt.QPalette.Foreground,Qt.Qt.black) - - newPalette = self.compass.palette() - rose=Qwt.QwtSimpleCompassRose(4,1) - self.compass.setRose(rose) - self.compass.setNeedle(Qwt.QwtCompassWindArrow(Qwt.QwtCompassWindArrow.Style2,Qt.QColor(0xCCCCFF))) - # self.lcd.setSegmentStyle(Qt.QLCDNumber.Filled)# - lcdpalette = Qt.QPalette( ) - lcdpalette.setBrush(Qt.QPalette.Background,Qt.Qt.red) - - layout = Qt.QGridLayout(self) - layout.addWidget(self.compass,0,0,9,0) - # layout.setColumnStrecth(10) - layout.addWidget(self.lcd,10,0) - self.setLayout(layout) - - def __del__(self): - ''' none''' - def setVal(self,value=0.): - self.compass.setValue(value) - self.lcd.setText(Qt.QString(str(value))+" deg.") - class WindSpeed(Qt.QWidget): - def __init__ (self,parent=None): - Qt.QWidget.__init__(self,parent) - - self.speed=SpeedoMeter(self) - self.speed.setRange(0.0,120.0) - self.speed.setReadOnly(True) - self.setGeometry(0,0,255,255) - - def setVal(self,value=0.): - self.speed.setValue(value) - - + + def __init__ (self, parent=None): + Qt.QWidget.__init__(self, parent) + + self.speed = SpeedoMeter(self) + self.speed.setRange(0.0, 120.0) + self.speed.setReadOnly(True) + self.setGeometry(0, 0, 255, 255) + + def setVal(self, value=0.): + self.speed.setValue(value) + + class Temperature(Qt.QWidget): - def __init__ (self,parent=None): - Qt.QWidget.__init__(self,parent) - self.lcd=Qt.QLineEdit() - self.thermo = Qwt.QwtThermo() - self.thermo.setRange(-5., 45.0) - self.thermo.setFillColor(Qt.Qt.red) - self.thermo.setPipeWidth(12) - self.thermo.setOrientation(Qt.Qt.Vertical, Qwt.QwtThermo.LeftScale) - label = Qt.QLabel("Air Temp", self) - - label.setAlignment(Qt.Qt.AlignTop | Qt.Qt.AlignCenter) - layout = Qt.QVBoxLayout() - layout.setAlignment(Qt.Qt.AlignHCenter) - layout.addWidget(self.thermo,Qt.Qt.AlignCenter) - layout.addWidget(label) - layout.addWidget(self.lcd,1,Qt.Qt.AlignRight) - layout.setMargin(0) - self.setLayout(layout) - - - - - def setVal(self,value=0.): - self.thermo.setValue(value) - lcdpalette = Qt.QPalette( ) - lcdpalette.setColor(Qt.QPalette.Background, Qt.Qt.red); - self.lcd.setPalette( lcdpalette ); - self.lcd.setText(Qt.QString("%1").arg(value,3,'f',1)) - #QString("%1").arg(123.2349102,8,'f',4); + + def __init__ (self, parent=None): + Qt.QWidget.__init__(self, parent) + self.lcd = Qt.QLineEdit() + self.thermo = Qwt.QwtThermo() + self.thermo.setLowerBound(-5.) + self.thermo.setUpperBound(45.0) + self.thermo.setFillBrush(QtGui.QBrush(Qt.Qt.red)) + self.thermo.setPipeWidth(12) + self.thermo.setOrientation(Qt.Qt.Vertical) + self.thermo.setScalePosition(Qwt.QwtThermo.TrailingScale) + #self.thermo.setOrientation(Qt.Qt.Vertical, Qwt.QwtThermo.LeftScale) + label = Qt.QLabel("Air Temp", self) + + label.setAlignment(Qt.Qt.AlignTop | Qt.Qt.AlignCenter) + layout = Qt.QVBoxLayout() + layout.setAlignment(Qt.Qt.AlignHCenter) + layout.addWidget(self.thermo, Qt.Qt.AlignCenter) + layout.addWidget(label) + layout.addWidget(self.lcd, 1, Qt.Qt.AlignRight) + layout.setMargin(0) + self.setLayout(layout) + + def setVal(self, value=0.): + self.thermo.setValue(value) + lcdpalette = Qt.QPalette() + lcdpalette.setColor(Qt.QPalette.Background, Qt.Qt.red); + self.lcd.setPalette(lcdpalette); + self.lcd.setText("%.1f" % value) + class Values(Qt.QFrame): - def __init__(self,*args): - Qt.QFrame.__init__(self,*args) - + def __init__(self, *args): + Qt.QFrame.__init__(self, *args) class PlotWindWidget(Qwt.QwtPlot): - def __init__(self,limit,*args): - Qwt.QwtPlot.__init__(self,*args) - self.setAutoReplot(False) - self.t=Qt.QTime() - ts=getTimeStamp() - epoch=TimeUtil() - pydate=epoch.epoch2py(ts) - t=time.gmtime(pydate) # convert to - h,m,s=t.tm_hour,t.tm_min,t.tm_sec - self.t=Qt.QTime(h,m,s) -# self.timestep=5. # - -# self.curve=Qwt.QwtPlotCurve() -# self.curve.setPen(Qt.QPen(Qt.Qt.blue,2)) -# self.curve.setBrush(Qt.Qt.blue) - -# self.curve.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse,Qt.QBrush(Qt.Qt.blue), Qt.QPen(Qt.Qt.yellow),Qt.QSize(4, 4))) -# self.curve.setZ(2); - - background = Background(limit) - background.attach(self) - - grid = Qwt.QwtPlotGrid() - grid.attach(self) - grid.enableX(False) - - grid.setPen(Qt.QPen(Qt.Qt.black, 0, Qt.Qt.DotLine)) - - self.setCanvasBackground(Qt.Qt.white) - self.curveWSpeedPeak=Qwt.QwtPlotCurve() - self.curveWSpeedPeak.setPen(Qt.QPen(Qt.Qt.blue,2)) -# self.curveWSpeedPeak.setBrush(Qt.Qt.blue) -# self.curveWSpeedPeak.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse,Qt.QBrush(Qt.Qt.blue), Qt.QPen(Qt.Qt.yellow),Qt.QSize(4, 4))) - # self.curveWSpeedPeak.setZ(1) - -# self.y=randn(1000) - self.x=range(BUFFER) - self.y=zeros(BUFFER) - self.windSpeedPeak=zeros(BUFFER) - - self.y2=[0. for i in xrange(BUFFER)]# inizializza una lista di float - - self.timeData = 1.0 * arange(0,-HISTORY , -1)+1 - - currTime=Qt.QTime.currentTime(); - currTime.addSecs(-HISTORY*TIMESTEP); - - self.setAxisScaleDraw( Qwt.QwtPlot.xBottom, TimeScaleDraw(currTime)) - self.setAxisScale(Qwt.QwtPlot.xBottom, 0, HISTORY*TIMESTEP) - self.setAxisLabelRotation(Qwt.QwtPlot.xBottom, -50.0) -# self.curve.attach(self) - self.curveWSpeedPeak.attach(self) -# self.setAxisAutoScale(Qwt.QwtPlot.yLeft) - self.setAxisScale(Qwt.QwtPlot.yLeft,0,80,10) - self.setAxisTitle(Qwt.QwtPlot.yLeft, "Wind Speed (Km/h)") - - self.setAxisLabelAlignment(Qwt.QwtPlot.xBottom, Qt.Qt.AlignLeft | Qt.Qt.AlignBottom) - -#lower, upper, majorTicks, mediumTicks, minorTicks) - - def setVal(self,val): - - self.y[1:]=self.y[0:-1] # scorre a sinistra il vettore - self.y[0]=val -# self.y2[0]=self.y[self.indice] - - def setWindSpeedPeak(self,val): - self.timeData += 1.0 - self.setAxisScale(Qwt.QwtPlot.xBottom,self.timeData[-1],self.timeData[0]) -# self.curve.setData(self.timeData,self.y) - self.windSpeedPeak[1:]=self.windSpeedPeak[0:-1] - self.windSpeedPeak[0]=val - self.curveWSpeedPeak.setData(self.timeData,self.windSpeedPeak) -# self.curveWSpeedPeak.setBaseline(self.y[0]) # baseline set to win - self.replot() + def __init__(self, limit, *args): + Qwt.QwtPlot.__init__(self, *args) + self.setAutoReplot(False) + self.t = Qt.QTime() + ts = getTimeStamp() + epoch = TimeUtil() + pydate = epoch.epoch2py(ts) + t = time.gmtime(pydate) # convert to + h, m, s = t.tm_hour, t.tm_min, t.tm_sec + self.t = Qt.QTime(h, m, s) + #self.timestep = 5. + + #self.curve = Qwt.QwtPlotCurve() + #self.curve.setPen(Qt.QPen(Qt.Qt.blue, 2)) + #self.curve.setBrush(Qt.Qt.blue) + + #self.curve.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse, Qt.QBrush(Qt.Qt.blue), Qt.QPen(Qt.Qt.yellow), Qt.QSize(4, 4))) + #self.curve.setZ(2); + + background = Background(limit) + background.attach(self) + + grid = Qwt.QwtPlotGrid() + grid.attach(self) + grid.enableX(False) + + grid.setPen(Qt.QPen(Qt.Qt.black, 0, Qt.Qt.DotLine)) + + self.setCanvasBackground(Qt.Qt.white) + self.curveWSpeedPeak = Qwt.QwtPlotCurve() + self.curveWSpeedPeak.setPen(Qt.QPen(Qt.Qt.blue, 2)) + #self.curveWSpeedPeak.setBrush(Qt.Qt.blue) + #self.curveWSpeedPeak.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse, Qt.QBrush(Qt.Qt.blue), Qt.QPen(Qt.Qt.yellow), Qt.QSize(4, 4))) + #self.curveWSpeedPeak.setZ(1) + + #self.y = randn(1000) + self.windSpeedPeak = zeros(BUFFER) + + self.y2 = [0. for i in range(BUFFER)] # inizializza una lista di float + + a = Qwt.QwtDateScaleDraw() + a.setDateFormat(Qwt.QwtDate.Second, 'hh:mm:ss') + self.setAxisScaleDraw(Qwt.QwtPlot.xBottom, a) + + now = time.time() * 1000 + self.timeData = arange(now, now - BUFFER * 1000, -1000) + self.setAxisScale(Qwt.QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) + #self.setAxisScale(Qwt.QwtPlot.xBottom, 0, HISTORY * TIMESTEP) + self.setAxisLabelRotation(Qwt.QwtPlot.xBottom, -50.0) + #self.curve.attach(self) + self.curveWSpeedPeak.attach(self) + #self.setAxisAutoScale(Qwt.QwtPlot.yLeft) + self.setAxisScale(Qwt.QwtPlot.yLeft, 0, 80, 10) + self.setAxisTitle(Qwt.QwtPlot.yLeft, "Wind Speed (Km/h)") + + self.setAxisLabelAlignment(Qwt.QwtPlot.xBottom, Qt.Qt.AlignLeft | Qt.Qt.AlignBottom) + + def setWindSpeedPeak(self, val): + self.timeData[1:] = self.timeData[0:-1] + self.timeData[0] = time.time() * 1000 + self.setAxisScale(Qwt.QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) + #self.curve.setData(self.timeData, self.y) + self.windSpeedPeak[1:] = self.windSpeedPeak[0:-1] + self.windSpeedPeak[0] = val + self.curveWSpeedPeak.setSamples(self.timeData.tolist(), self.windSpeedPeak.tolist()) + #self.curveWSpeedPeak.setBaseline(self.y[0]) # baseline set to win + self.replot() + class PlotProperty(Qt.QFrame): - - def __init__(self,componentname,propertyname): - Qt.QFrame.__init__(self) # you must initialize the superclass - self.componentname=componentname - self.propertyname = propertyname - try: - self.simpleClient=PySimpleClient() - component=self.simpleClient.getComponent(self.componentname) - self.limit=component._get_autoparkThreshold().get_sync()[0] - except Exception as ex: - newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex,create=1) - newEx.setPropertyName("autoparkThreshold") - raise newEx - - - self.simpleClient.getLogger().logInfo("Wheather station client startup") - - self.plotwidget=PlotWindWidget(self.limit) - self.windspeedw = SpeedoMeter() - self.winddirw= WindWidget() - self.temperaturew= Temperature() - #self.plotwidget.setTitle("WeatherStation") - self.plotwidget.setMargin(5) - mainLayout = Qt.QVBoxLayout(self) - mainLayout.addWidget(self.plotwidget,2) - -# layout = Qt.QGridLayout() - - - - hlayout = Qt.QHBoxLayout() -# hvlayout= Qt.QForm - hlayout.setAlignment(Qt.Qt.AlignHCenter) -# hlayout.setSpacing(150) -# hlayout.addSpacing(10) - hlayout.addStretch(50) - hlayout.addWidget(self.temperaturew) - hlayout.addStretch(50) - hlayout.addWidget(self.windspeedw) - hlayout.addStretch(50) - hlayout.addWidget(self.winddirw) - hlayout.addStretch(50) - mainLayout.addLayout(hlayout) - - #layout.addWidget(self.plotwidget, 0, 0, 9, 3) -# layout.addWidget(self.plotwidget, 1,0) - - - - -# self.setLayout(layout) # - - # self.windspeedw = SpeedoMeter() - def run(self): - self.monitor() - def monitor(self): - component = self.simpleClient.getComponent(self.componentname) - windSpeadAvgPr=component._get_windspeed() - windSpeedPeakProperty =component._get_windspeedpeak() - tempPr = component._get_temperature() - windDirPr = component._get_winddir() - desc = ACS.CBDescIn(0L, 0L, 0L) - - propMonitor = PropertyMonitor(self.plotwidget,self.propertyname) - cbMonServant = self.simpleClient.activateOffShoot(propMonitor) - self.actMon = windSpeadAvgPr.create_monitor(cbMonServant, desc) - self.actMon.set_timer_trigger(TIMESTEP*10000000) - - windSpeedPeakMon=PropertyMonitor(self.plotwidget,"windspeedpeak") - cbMonServant_wsppeak = self.simpleClient.activateOffShoot(windSpeedPeakMon) - self.WSpeedPeakactMon = windSpeedPeakProperty.create_monitor(cbMonServant_wsppeak, desc) - self.WSpeedPeakactMon.set_timer_trigger(TIMESTEP*10000000) - self.connect(windSpeedPeakMon, Qt.SIGNAL("PropertyChanghed(float)"),self.plotwidget.setWindSpeedPeak) - self.connect(windSpeedPeakMon, Qt.SIGNAL("PropertyChanghed(float)"),self.windspeedw.setVal) - - windDirPeakMon = PropertyMonitor(self.plotwidget,"wind dir peak") - cbMonServant = self.simpleClient.activateOffShoot(windDirPeakMon) - self.WDiractMon = windDirPr.create_monitor(cbMonServant, desc) #attenzione l'oggetto property e' stato creato dalla funzione exec - self.WDiractMon.set_timer_trigger(TIMESTEP*10000000) - self.connect(windDirPeakMon, Qt.SIGNAL("PropertyChanghed(float)"),self.winddirw.setVal) - - temperatureMon = PropertyMonitor(self.plotwidget,"Temperature:") - cbMonServant = self.simpleClient.activateOffShoot(temperatureMon) - self.temperatureactMon = tempPr.create_monitor(cbMonServant, desc) #attenzione l'oggetto property e' stato creato dalla funzione exec - self.temperatureactMon.set_timer_trigger(TIMESTEP*10000000*4) - self.connect(temperatureMon, Qt.SIGNAL("PropertyChanghed(float)"),self.temperaturew.setVal) - - - def __del__(self): - self.actMon.destroy() - self.WDiractMon.destroy() - self.temperatureactMon.destroy() - self.WSpeedPeakactMon.destroy() - #self.actMonwspeed.destroy() - self.simpleClient.releaseComponent(self.componentname) - self.simpleClient.disconnect() - print "The end __oOo__" - - - -def make( ): - try: - plot = PlotProperty("WEATHERSTATION/WeatherStation","windspeed") - except ClientErrorsImpl.CouldntAccessPropertyExImpl as ex: - logger.logException(ex) - sys.exit(-1) - - plot.resize(800, 600) - plot.run() - plot.show() - - return plot - - - + + def __init__(self,componentname,propertyname): + Qt.QFrame.__init__(self) # you must initialize the superclass + self.componentname = componentname + self.propertyname = propertyname + try: + self.simpleClient = PySimpleClient() + component = self.simpleClient.getComponent(self.componentname) + self.limit = component._get_autoparkThreshold().get_sync()[0] + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl(exception=ex, create=1) + newEx.setPropertyName("autoparkThreshold") + raise newEx + + self.simpleClient.getLogger().logInfo("Wheather station client startup") + + self.plotwidget = PlotWindWidget(self.limit) + self.windspeedw = SpeedoMeter(self.limit) + self.winddirw = WindWidget() + self.temperaturew = Temperature() + #self.plotwidget.setTitle("WeatherStation") + #self.plotwidget.setMargin(5) + mainLayout = Qt.QVBoxLayout(self) + mainLayout.addWidget(self.plotwidget, 2) + + #layout = Qt.QGridLayout() + + hlayout = Qt.QHBoxLayout() + #hvlayout = Qt.QForm + hlayout.setAlignment(Qt.Qt.AlignHCenter) + #hlayout.setSpacing(150) + #hlayout.addSpacing(10) + hlayout.addStretch(50) + hlayout.addWidget(self.temperaturew) + hlayout.addStretch(50) + hlayout.addWidget(self.windspeedw) + hlayout.addStretch(50) + hlayout.addWidget(self.winddirw) + hlayout.addStretch(50) + mainLayout.addLayout(hlayout) + + #layout.addWidget(self.plotwidget, 0, 0, 9, 3) + #layout.addWidget(self.plotwidget, 1, 0) + #self.setLayout(layout) + #self.windspeedw = SpeedoMeter() + + def run(self): + self.monitor() + + def monitor(self): + component = self.simpleClient.getComponent(self.componentname) + windSpeadAvgPr = component._get_windspeed() + windSpeedPeakProperty = component._get_windspeedpeak() + tempPr = component._get_temperature() + windDirPr = component._get_winddir() + desc = ACS.CBDescIn(0, 0, 0) + + propMonitor = PropertyMonitor(self.plotwidget, self.propertyname) + cbMonServant = self.simpleClient.activateOffShoot(propMonitor) + self.actMon = windSpeadAvgPr.create_monitor(cbMonServant, desc) + self.actMon.set_timer_trigger(TIMESTEP * 10000000) + + windSpeedPeakMon = PropertyMonitor(self.plotwidget, "windspeedpeak") + cbMonServant_wsppeak = self.simpleClient.activateOffShoot(windSpeedPeakMon) + self.WSpeedPeakactMon = windSpeedPeakProperty.create_monitor(cbMonServant_wsppeak, desc) + self.WSpeedPeakactMon.set_timer_trigger(TIMESTEP * 10000000) + self.connect(windSpeedPeakMon, Qt.SIGNAL("PropertyChanghed(float)"), self.plotwidget.setWindSpeedPeak) + self.connect(windSpeedPeakMon, Qt.SIGNAL("PropertyChanghed(float)"), self.windspeedw.setVal) + + windDirPeakMon = PropertyMonitor(self.plotwidget, "wind dir peak") + cbMonServant = self.simpleClient.activateOffShoot(windDirPeakMon) + self.WDiractMon = windDirPr.create_monitor(cbMonServant, desc) # attenzione l'oggetto property e' stato creato dalla funzione exec + self.WDiractMon.set_timer_trigger(TIMESTEP * 10000000) + self.connect(windDirPeakMon, Qt.SIGNAL("PropertyChanghed(float)"), self.winddirw.setVal) + + temperatureMon = PropertyMonitor(self.plotwidget, "Temperature:") + cbMonServant = self.simpleClient.activateOffShoot(temperatureMon) + self.temperatureactMon = tempPr.create_monitor(cbMonServant, desc) #attenzione l'oggetto property e' stato creato dalla funzione exec + self.temperatureactMon.set_timer_trigger(TIMESTEP * 10000000 * 4) + self.connect(temperatureMon, Qt.SIGNAL("PropertyChanghed(float)"), self.temperaturew.setVal) + + def __del__(self): + self.simpleClient.disconnect() + + +def make(): + try: + plot = PlotProperty("WEATHERSTATION/WeatherStation", "windspeed") + except ClientErrorsImpl.CouldntAccessPropertyExImpl as ex: + logger.logException(ex) + sys.exit(-1) + + plot.resize(800, 600) + plot.run() + plot.show() + return plot + + def main(args): - - app = Qt.QApplication(args) - plot=make() - - -#demo,plot=make(args) - -# w=my.run() - sys.exit(app.exec_()) - sleep(2) + app = Qt.QApplication(args) + plot = make() + + #demo, plot = make(args) + + #w = my.run() + sys.exit(app.exec_()) + sleep(2) + + if __name__=='__main__': - main(sys.argv) + main(sys.argv) diff --git a/Common/Clients/SystemTerminal/src/_tui_SysTerm.py b/Common/Clients/SystemTerminal/src/_tui_SysTerm.py index bff24bcc4..a597dfa7d 100644 --- a/Common/Clients/SystemTerminal/src/_tui_SysTerm.py +++ b/Common/Clients/SystemTerminal/src/_tui_SysTerm.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function # This is a python client that can be used as a terminal to the system, It issues the command # action of the connected sub-system boss. @@ -34,10 +35,10 @@ from nuraghe_commands import commands stopAll=False def usage(): - print "systerm [-h|--help] [ComponentName]" - print "ComponentName The name of a component that implements the CommandInterpreter interface" - print " If not given the Scheduler component is used." - print "[-h|--help] displays this help" + print("systerm [-h|--help] [ComponentName]") + print("ComponentName The name of a component that implements the CommandInterpreter interface") + print(" If not given the Scheduler component is used.") + print("[-h|--help] displays this help") def handler(num, stack): raise EOFError @@ -69,128 +70,130 @@ class HistoryCompleter(object): def main(): - global stopAll + global stopAll - #handler for the external request of termination - signal.signal(signal.SIGUSR1, handler) + #handler for the external request of termination + signal.signal(signal.SIGUSR1, handler) - try: - opts, args = getopt.getopt(sys.argv[1:],"h",["help"]) - except getopt.GetoptError, err: - print str(err) - usage() - sys.exit(1) + try: + opts, args = getopt.getopt(sys.argv[1:],"h",["help"]) + except getopt.GetoptError as err: + print(str(err)) + usage() + sys.exit(1) - for o, a in opts: - if o in ("-h", "--help"): - usage() - sys.exit() + for o, a in opts: + if o in ("-h", "--help"): + usage() + sys.exit() - simpleClient = PySimpleClient() - compName="" + simpleClient = PySimpleClient() + compName="" - if args == []: - compType = "IDL:alma/Management/Scheduler:1.0" - try: - component=simpleClient.getDefaultComponent(compType) - compName=component._get_name() - except Exception , ex: - newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) - newEx.setComponentName(compType) - newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) - sys.exit(1) - else: - compName = args[0] - try: - component=simpleClient.getComponent(compName) - except Exception , ex: - newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) - newEx.setComponentName(compName) - newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) - sys.exit(1) + if args == []: + compType = "IDL:alma/Management/Scheduler:1.0" + try: + component=simpleClient.getDefaultComponent(compType) + compName=component._get_name() + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) + newEx.setComponentName(compType) + newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) + sys.exit(1) + else: + compName = args[0] + try: + component=simpleClient.getComponent(compName) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) + newEx.setComponentName(compName) + newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) + sys.exit(1) - userHome = os.getenv('HOME') - historyFile = None - if userHome == None: - historyFile = '/tmp/.oprin_cmd.hist' - else: - historyFile = userHome+'/.oprin_cmd.hist' + userHome = os.getenv('HOME') + historyFile = None + if userHome == None: + historyFile = '/tmp/.oprin_cmd.hist' + else: + historyFile = userHome+'/.oprin_cmd.hist' - if os.path.exists(historyFile): - readline.read_history_file(historyFile) - - readline.set_completer(HistoryCompleter().complete) - readline.parse_and_bind('tab: complete') + if os.path.exists(historyFile): + readline.read_history_file(historyFile) + + readline.set_completer(HistoryCompleter().complete) + readline.parse_and_bind('tab: complete') - cmdCounter=0 + cmdCounter=0 - while not stopAll: - try: - cmd='' - if cmdCounter>0: - try: - cmd=raw_input("<%d> "%cmdCounter) - except IOError: - cmd='exit' - else: - cmd="version" - cmdCounter=cmdCounter+1 - cmd=cmd.strip() - if cmd=="exit": - stopAll=True - elif cmd == 'help()': - print '\t' + '\n\t'.join(sorted(commands.keys())) - elif cmd.startswith('help('): - start = cmd.find('(') + 1 - end = cmd.find(')') - arg = cmd[start:end] # help(setupCCB) -> arg=setupCCB - if arg not in commands: - print "`%s` is not a valid command" %(arg if arg else cmd) - else: - print commands['help'](arg) - elif cmd: - readline.write_history_file(historyFile) - try: - success, res = component.command(cmd) - idx = res.find('\\') - cmd_name, response = res[:idx+1], res[idx+1:].rstrip('\\') - if success and response: - if response.startswith('STR '): - # We got a formatted string in return, print it - # without any modification - response = response[4:] - lines = response.split('\n') - print cmd_name - for line in lines: - print line - else: - groups = response.split(',') - for group in groups: - values = group.split(';') - if len(values) > 1: - print cmd_name - for i, value in enumerate(values): - print '%02d) %s' %(i, value) - elif res: - print res - elif res: - print res - except Exception, ex: - newEx = ClientErrorsImpl.CouldntPerformActionExImpl(exception=ex, create=1) - newEx.setAction("command()") - newEx.setReason(ex.message) - newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) - except EOFError: - # CTRL + D event: Equivalent to the exit command, we stop the loop - stopAll=True - except KeyboardInterrupt: - # CTRL + C event: Ignore whatever string was written on the - # terminal and show a new prompt line - print '^C' + while not stopAll: + try: + cmd='' + if cmdCounter>0: + try: + cmd=raw_input("<%d> "%cmdCounter) + except NameError: + cmd=input("<%d> "%cmdCounter) + except IOError: + cmd='exit' + else: + cmd="version" + cmdCounter=cmdCounter+1 + cmd=cmd.strip() + if cmd=="exit": + stopAll=True + elif cmd == 'help()': + print('\t' + '\n\t'.join(sorted(commands.keys()))) + elif cmd.startswith('help('): + start = cmd.find('(') + 1 + end = cmd.find(')') + arg = cmd[start:end] # help(setupCCB) -> arg=setupCCB + if arg not in commands: + print("`%s` is not a valid command" %(arg if arg else cmd)) + else: + print(commands['help'](arg)) + elif cmd: + readline.write_history_file(historyFile) + try: + success, res = component.command(cmd) + idx = res.find('\\') + cmd_name, response = res[:idx+1], res[idx+1:].rstrip('\\') + if success and response: + if response.startswith('STR '): + # We got a formatted string in return, print it + # without any modification + response = response[4:] + lines = response.split('\n') + print(cmd_name) + for line in lines: + print(line) + else: + groups = response.split(',') + for group in groups: + values = group.split(';') + if len(values) > 1: + print(cmd_name) + for i, value in enumerate(values): + print('%02d) %s' %(i, value)) + elif res: + print(res) + elif res: + print(res) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntPerformActionExImpl(exception=ex, create=1) + newEx.setAction("command()") + newEx.setReason(ex.message) + newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) + except EOFError: + # CTRL + D event: Equivalent to the exit command, we stop the loop + stopAll=True + except KeyboardInterrupt: + # CTRL + C event: Ignore whatever string was written on the + # terminal and show a new prompt line + print('^C') - readline.write_history_file(historyFile) - simpleClient.releaseComponent(compName) - simpleClient.disconnect() + readline.write_history_file(historyFile) + simpleClient.releaseComponent(compName) + simpleClient.disconnect() if __name__=="__main__": main() diff --git a/Common/Clients/SystemTerminal/src/nuraghe_commands.py b/Common/Clients/SystemTerminal/src/nuraghe_commands.py index 7390df0e0..9931cce9f 100755 --- a/Common/Clients/SystemTerminal/src/nuraghe_commands.py +++ b/Common/Clients/SystemTerminal/src/nuraghe_commands.py @@ -1,3 +1,4 @@ +from __future__ import print_function # Marco Buttu <mbuttu@oa-cagliari.inaf.it> # Doctrings from the "Observing at the SRT with Nuraghe, Issue n.8, 21/10/14", # by Simona Righini and Andrea Orlati" @@ -410,11 +411,11 @@ def help(command): try: cmd = getattr(myself, command) return cmd.__doc__ - except Exception, ex: - print ex.message - print 'usage: help(command)' - print 'e.g. > help(setupCCB)' - print 'help() (without argument) lists all the available commands' + except Exception as ex: + print(ex.message) + print('usage: help(command)') + print('e.g. > help(setupCCB)') + print('help() (without argument) lists all the available commands') def ifdist(): @@ -697,7 +698,7 @@ import copy myself = __import__(__name__) # Create the commands dictionary commands = myself.__dict__.copy() # Shallow copy, but we do not mind -for cmd in commands.keys(): +for cmd in list(commands.keys()): if cmd.startswith('__'): del commands[cmd] diff --git a/Common/Libraries/IRALibrary/src/IRAPy/__init__.py b/Common/Libraries/IRALibrary/src/IRAPy/__init__.py index f59db02c9..ba534483e 100644 --- a/Common/Libraries/IRALibrary/src/IRAPy/__init__.py +++ b/Common/Libraries/IRALibrary/src/IRAPy/__init__.py @@ -9,9 +9,9 @@ list of modules: - Connection: Connection class implements a contextmanager for a socket """ -import customlogging +from . import customlogging import ACSLog -from Connection import Connection +from .Connection import Connection #Some comments required here. The custom logger mechanism is not working in python. #do the way to separate the system logs to the ones do be shown to the user is to use different diff --git a/Common/Libraries/ParserLibrary/src/SimpleParserPy/__init__.py b/Common/Libraries/ParserLibrary/src/SimpleParserPy/__init__.py index bbb75e9b3..92c7b438c 100644 --- a/Common/Libraries/ParserLibrary/src/SimpleParserPy/__init__.py +++ b/Common/Libraries/ParserLibrary/src/SimpleParserPy/__init__.py @@ -4,7 +4,7 @@ Presently only a small support for scripting commands and the support for python component is included """ -from ParserConnector import add_user_message -from ParserConnector import send_message +from .ParserConnector import add_user_message +from .ParserConnector import send_message diff --git a/Common/Libraries/PyTesting/src/testing/simulator.py b/Common/Libraries/PyTesting/src/testing/simulator.py index 0e04bbce8..f0c8cc1ce 100644 --- a/Common/Libraries/PyTesting/src/testing/simulator.py +++ b/Common/Libraries/PyTesting/src/testing/simulator.py @@ -1,3 +1,4 @@ +from __future__ import print_function import os import sys import time @@ -21,7 +22,7 @@ def run(test_case, server_name='antenna'): suite = unittest.TestSuite() tests = unittest.TestLoader().loadTestsFromTestCase(test_case) suite.addTests(tests) - print 'Running the tests using the antenna simulators...' + print('Running the tests using the antenna simulators...') unittest.TextTestRunner(verbosity=2).run(suite) finally: subprocess.Popen('%s stop' % server_name, shell=True) diff --git a/Common/Misc/InjectCommand/src/injectCommand.py b/Common/Misc/InjectCommand/src/injectCommand.py index 655c537ec..b4446e9b9 100644 --- a/Common/Misc/InjectCommand/src/injectCommand.py +++ b/Common/Misc/InjectCommand/src/injectCommand.py @@ -17,38 +17,38 @@ def main(): if getManager(): simpleClient = PySimpleClient() else: - print "Control software is off line" + print("Control software is off line") sys.exit(1) command="" try: command=sys.argv[1] - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.InvalidArgumentExImpl( exception=ex, create=1 ) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) try: sched=simpleClient.getDefaultComponent("IDL:alma/Management/Scheduler:1.0") - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex,create=1) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) try: answer=sched.command(command) - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CORBAProblemExImpl(exception=ex,create=1) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) - print answer[1] + print(answer[1]) if sched!=None: try: simpleClient.releaseComponent(sched.getName()) - except Exception,ex: + except Exception as ex: pass finally: sched=None diff --git a/Common/Misc/KStars/src/startKS.py b/Common/Misc/KStars/src/startKS.py index e5f6de7b6..0ca075047 100644 --- a/Common/Misc/KStars/src/startKS.py +++ b/Common/Misc/KStars/src/startKS.py @@ -7,7 +7,7 @@ #andrea orlati(a.orlati@ira.inaf.it) 22/05/2008 Creation - +from __future__ import print_function import sys from Acspy.Clients.SimpleClient import PySimpleClient from Acspy.Common.Callbacks import * @@ -34,7 +34,7 @@ def main(): sc = PySimpleClient() try: c = sc.getComponent("ANTENNA/Boss") - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName("ANTENNA/Boss") newEx.log(ACS_LOG_ERROR) @@ -42,14 +42,14 @@ def main(): try: azimuth = c._get_observedAzimuth() - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl( exception=ex, create=1 ) newEx.setPropertyName("observedAzimuth") newEx.log(ACS_LOG_ERROR) sys.exit(1) try: elevation = c._get_observedElevation() - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl( exception=ex, create=1 ) newEx.setPropertyName("observedElevation") newEx.log(ACS_LOG_ERROR) @@ -73,7 +73,7 @@ def main(): else: vivo = 0 - print "Finished..." + print("Finished...") sc.releaseComponent("ANTENNA/Boss") sc.disconnect() diff --git a/Common/Misc/OnOffSwitching/devices.py b/Common/Misc/OnOffSwitching/devices.py index 4765860e1..7a84468fb 100755 --- a/Common/Misc/OnOffSwitching/devices.py +++ b/Common/Misc/OnOffSwitching/devices.py @@ -1,4 +1,4 @@ -from __future__ import division +from __future__ import division, print_function __all__ = ['antenna', 'Recorder', 'mount', 'receiver', 'scheduler', 'ato', 'ANT_J2000', 'ACU_NEUTRAL'] __credits__ = """Author: Marco Buttu <mbuttu@oa-cagliari.inaf.it> @@ -98,7 +98,7 @@ class Recorder(object): mkdir(cycle_type_datadir) else: logging.error('Dir %s already exists') - print 'WARNING: Dir %s already exists' + print('WARNING: Dir %s already exists') self.scanSetup.scanTag += 1 utc = datetime.datetime.utcnow() self.scanSetup.path = abspath(cycle_type_datadir) @@ -127,7 +127,7 @@ try: mount = client.getComponent('ANTENNA/Mount') # If the backend rounds the time to a next upper value, set a negative `ato` ato = -5 # Offset to add to the backend acquisition time -except Exception, e: +except Exception as e: logging.exception('Cannot get the ACS modules and components') print('ERROR: Cannot get the ACS modules and components') raise diff --git a/Common/Misc/OnOffSwitching/handler.py b/Common/Misc/OnOffSwitching/handler.py index f2ec02818..dfe9bd981 100755 --- a/Common/Misc/OnOffSwitching/handler.py +++ b/Common/Misc/OnOffSwitching/handler.py @@ -1,4 +1,4 @@ -from __future__ import division +from __future__ import division, print_function __credits__ = """Author: Marco Buttu <mbuttu@oa-cagliari.inaf.it> Licence: GPL 2.0 <http://www.gnu.org/licenses/gpl-2.0.html>""" @@ -64,9 +64,9 @@ class Positioner(object): if not conf.simulate: try: from devices import antenna, ANT_J2000, ACU_NEUTRAL - except Exception, e: + except Exception as e: logging.exception('Cannot get the antenna component') - print 'ERROR: Cannot get the antenna component' + print('ERROR: Cannot get the antenna component') terminate.value = True sys.exit(1) @@ -105,10 +105,10 @@ class Positioner(object): map(lambda x, y: x + y, conf.target.getRaDec(), (ra_offset, 0)) # if abs(ra - ra_py) > 2e-4: # logging.warning('Mismatch between horizons and pyephem RAs: (%.4f, %.4f)', ra, ra_py) - # print '@ WARNING: Mismatch between horizons and pyephem RAs: (%.4f, %.4f)' %(ra, ra_py) + # print('@ WARNING: Mismatch between horizons and pyephem RAs: (%.4f, %.4f)' %(ra, ra_py)) # if abs(dec - dec_py) > 2e-4: # logging.warning('@ Mismatch between horizons and pyephem DECs: (%.4f, %.4f)', dec, dec_py) - # print '@ WARNING: Mismatch between horizons and pyephem DECs: (%.4f, %.4f)' %(dec, dec_py) + # print('@ WARNING: Mismatch between horizons and pyephem DECs: (%.4f, %.4f)' %(dec, dec_py)) del positions[:idx] else: raise Exception('Cannot get a proper date in the horizons file') @@ -118,9 +118,9 @@ class Positioner(object): try: # antenna.sidereal(conf.target.name, ra, dec, ANT_J2000, ACU_NEUTRAL) antenna.sidereal(conf.target.name, ra_py, dec_py, ANT_J2000, ACU_NEUTRAL) - except Exception, e: + except Exception as e: logging.exception('Cannot set the antenna position') - print 'ERROR: Cannot set the antenna position' + print('ERROR: Cannot set the antenna position') terminate.value = True sys.exit(1) @@ -131,9 +131,9 @@ class Positioner(object): break time.sleep(conf.positioning_time) except KeyboardInterrupt: - print 'Stopping the positioning...' - except Exception, e: - print 'UNEXPECTED ERROR in updatePosition(): \n\t%s' %e + print('Stopping the positioning...') + except Exception as e: + print('UNEXPECTED ERROR in updatePosition(): \n\t%s' %e) logging.exception('Got exception on updatePoition()') finally: if terminate.value: @@ -162,16 +162,16 @@ class Handler(object): if not name.startswith('_') and not name in ignored: value = getattr(conf, name) f.write('%s = %s\n' %(name, value)) - except Exception, e: + except Exception as e: logging.exception('Cannot get the devices') - print 'ERROR: Cannot get the devices' + print('ERROR: Cannot get the devices') raise finally: try: f.close() - except Exception, e: + except Exception as e: logging.warning('Cannot create the conf.txt file in the observation directory') - print 'WARNING: Cannot create the conf.txt file in the observation directory' + print('WARNING: Cannot create the conf.txt file in the observation directory') if conf.positioning_time < 0: @@ -211,9 +211,9 @@ class Handler(object): duration += slice_time if duration > timeout: break - except Exception, e: + except Exception as e: logging.exception('Cannot get the tracking value') - print 'Cannot get the tracking value' + print('Cannot get the tracking value') if duration > timeout: break if not track: @@ -249,7 +249,7 @@ class Handler(object): else: continue if found: - print radialSpeed + print(radialSpeed) vobs = self.conf.lab_freq * (1 - radialSpeed/(ephem.c/1000)) lo = vobs - ((self.conf.upper_freq + self.conf.lower_freq)/2) del self._horizons_lo[:idx] @@ -259,13 +259,13 @@ class Handler(object): if not self.conf.simulate: try: self.receiver.setLO([lo]) - except Exception, e: + except Exception as e: logging.exception('Cannot get the receiver') - print 'ERROR: Cannot get the receiver' + print('ERROR: Cannot get the receiver') raise now = datetime.datetime.utcnow() logging.info('At %s: LO value -> %s', now, lo) - print '+> LO(now + %s seconds) -> %.1f MHz' %(delta, lo) + print('+> LO(now + %s seconds) -> %.1f MHz' %(delta, lo)) def acquire(self, cycle, which): """Start and stop the backend acquisition.""" @@ -279,23 +279,23 @@ class Handler(object): if which == 'calibration': try: self.receiver.calOn() - except Exception, e: + except Exception as e: logging.exception('Cannot turn the mark ON') - print '+> ERROR: Cannot turn the mark ON' + print('+> ERROR: Cannot turn the mark ON') sys.exit(1) logging.info('Calibration mark ON') - print '+> Calibration mark ON' + print('+> Calibration mark ON') time.sleep(1) - print '+> Starting acquisition %s' %which + print('+> Starting acquisition %s' %which) logging.info('Starting acquisition at %s', datetime.datetime.utcnow()) self.recorder.start(cycle, which) else: if which == 'calibration': logging.info('Calibration mark ON') - print '+> Calibration mark ON (simulation mode)' + print('+> Calibration mark ON (simulation mode)') logging.info('Starting acquisition at %s', datetime.datetime.utcnow()) - print '+> Starting acquisition %s' %which - except Exception, e: + print('+> Starting acquisition %s' %which) + except Exception as e: logging.exception('Some problems recording') print('Some problems recording') raise @@ -305,22 +305,22 @@ class Handler(object): if not self.conf.simulate: self.recorder.stop() logging.info('Acquisition done at %s', datetime.datetime.utcnow()) - print '+> Acquisition done!' + print('+> Acquisition done!') if which == 'calibration': try: self.receiver.calOff() logging.info('Calibration mark OFF') - print '+> Calibration mark OFF' - except Exception, e: + print('+> Calibration mark OFF') + except Exception as e: logging.exception('Cannot turn the mark OFF') - print '+> ERROR: Cannot turn the mark OFF' + print('+> ERROR: Cannot turn the mark OFF') sys.exit(1) else: logging.info('Acquisition done at %s', datetime.datetime.utcnow()) - print '+> Acquisition done!' + print('+> Acquisition done!') if which == 'calibration': logging.info('Calibration mark OFF (simulation mode)') - print '+> Calibration mark OFF' + print('+> Calibration mark OFF') def getObservationTitle(self): from_ = self.conf.target.from_ @@ -373,7 +373,7 @@ class Handler(object): if date >= datetime.datetime.utcnow() - datetime.timedelta(minutes=20): self._horizons_lo.append((date, radialSpeed)) self._horizons_radec.append((date, ra, dec)) - except Exception, e: + except Exception as e: logging.exception('Cannot get the radial speeds and ra_dec position from the horizons file') print('Cannot get the radial speeds and ra_dec position from the horizons file') sys.exit(1) @@ -389,7 +389,7 @@ class Handler(object): try: mkdir(statsdir) except Exception: - print 'Cannot create the %s dir.' %statsdir + print('Cannot create the %s dir.' %statsdir) logging.warning('Cannot create the %s dir', statsdir) self._enablestats(False) return @@ -399,15 +399,15 @@ class Handler(object): self.statsfile = open(statsfile, 'a') title = self.getObservationTitle() self.statsfile.write(title) - except Exception, e: - print 'Warning: cannot open or write the statitstics file' + except Exception as e: + print('Warning: cannot open or write the statitstics file') logging.exception('Cannot open or write the statistics file') self._enablestats(False) def run(self): """Run the jobs in loop for cycles times.""" if not self.calibrations: - print 'WARNING: Observation without calibration' + print('WARNING: Observation without calibration') logging.warning('Observation withoud calibration') user_input = raw_input('Are you sure you want to continue? (y/n): ') if user_input.strip() != 'y': @@ -419,7 +419,7 @@ class Handler(object): cal_idx = 0 if not self.calibrations else self.conf.cycles/self.calibrations try: for i in range(self.conf.cycles): - print '>> CYCLE N.%02d' %(i+1) + print('>> CYCLE N.%02d' %(i+1)) if positioner.terminated(): raise Exception('Antenna positioning process terminated. See the log file.') positioner.goOnSource() @@ -431,14 +431,14 @@ class Handler(object): self.acquire(i+1, 'off_source') if cal_idx and not i % cal_idx: cal_counter += 1 - print '+> Starting calibration number %d.....' %cal_counter + print('+> Starting calibration number %d.....' %cal_counter) self.acquire(i+1, 'calibration') - print + print() except KeyboardInterrupt: - print 'Program stopped at at %s' %datetime.datetime.utcnow() + print('Program stopped at at %s' %datetime.datetime.utcnow()) logging.info('Program stopped at at %s' %datetime.datetime.utcnow()) - except Exception, e: - print 'UNEXPECTED ERROR: %s' %e + except Exception as e: + print('UNEXPECTED ERROR: %s' %e) logging.exception('Got exception on main handler') finally: positioner.terminate() @@ -446,11 +446,11 @@ class Handler(object): try: logging.info('Observation terminated (%s)', datestr) logging.info('# of cycles: %d | # of calibrations: %d', (i+1), cal_counter) - print '\nObservation terminated (%s)' %datestr - print '# of cycles: %d | # of calibrations: %d' %(i+1, cal_counter) - except Exception, e: + print('\nObservation terminated (%s)' %datestr) + print('# of cycles: %d | # of calibrations: %d' %(i+1, cal_counter)) + except Exception as e: logging.exception('Cannot get the number of cycles and calibrations') - print 'Cannot get the number of cycles and calibrations' + print('Cannot get the number of cycles and calibrations') if __name__ == '__main__': import doctest diff --git a/Common/Misc/OnOffSwitching/models.py b/Common/Misc/OnOffSwitching/models.py index 6e51099ae..0adaee9fa 100755 --- a/Common/Misc/OnOffSwitching/models.py +++ b/Common/Misc/OnOffSwitching/models.py @@ -1,4 +1,4 @@ -from __future__ import division +from __future__ import division, print_function __credits__ = """Author: Marco Buttu <mbuttu@oa-cagliari.inaf.it> Licence: GPL 2.0 <http://www.gnu.org/licenses/gpl-2.0.html>""" @@ -23,8 +23,8 @@ class Target(object): """Target information: orbital parameter and observer.""" try: self.source = ephem.readdb(op) - except Exception, e: - print "Unexpected exception: %s" %e + except Exception as e: + print("Unexpected exception: %s" %e) logging.exception('Got exception on pyephem') sys.exit() self.observer = observer diff --git a/Common/Misc/OnOffSwitching/onoff_switching.py b/Common/Misc/OnOffSwitching/onoff_switching.py index 04825188d..8f3a4c28e 100755 --- a/Common/Misc/OnOffSwitching/onoff_switching.py +++ b/Common/Misc/OnOffSwitching/onoff_switching.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function """ Author: Marco Buttu <mbuttu@oa-cagliari.inaf.it> Licence: GPL 2.0 <http://www.gnu.org/licenses/gpl-2.0.html> @@ -39,10 +40,10 @@ if __name__ == '__main__': upper_freq=170.6, # Backend upper frequency (MHz) calibrations=10, # Percentage of calibrations (10 means 10% of cycles) ) - except (TypeError, AttributeError), e: + except (TypeError, AttributeError) as e: print('CONFIGURATION ERROR: %s' %e) sys.exit(1) - except Exception, e: + except Exception as e: import traceback print('UNEXPECTED ERROR: %s' %e) traceback.print_tb(sys.exc_info()[2]) diff --git a/Common/Misc/OnOffSwitching/utils/test_tracking.py b/Common/Misc/OnOffSwitching/utils/test_tracking.py index b7af01970..08d9a47e4 100755 --- a/Common/Misc/OnOffSwitching/utils/test_tracking.py +++ b/Common/Misc/OnOffSwitching/utils/test_tracking.py @@ -25,7 +25,7 @@ while True: el_list.append(math.degrees(el)) time_list.append(getTimeStamp().value) time.sleep(0.05) - except KeyboardInterrupt, e: + except KeyboardInterrupt as e: break outfile = open('outfile.data', 'w') diff --git a/Common/Misc/PMUpdate/src/PMUpdate.py b/Common/Misc/PMUpdate/src/PMUpdate.py index 6200f2bfa..703b6784d 100644 --- a/Common/Misc/PMUpdate/src/PMUpdate.py +++ b/Common/Misc/PMUpdate/src/PMUpdate.py @@ -1,42 +1,41 @@ #! /usr/bin/env python +from __future__ import print_function -from upgrade_module import load_error_file_on_xml -import sys, getopt - -def main(argv): - errorfile = "" - pointingxmlfile = "" - receiver = "" - - try: - opts, args = getopt.getopt(argv,"hge:p:r:",["errorfile=", "pointingxmlfile=", "receiver="]) - except getopt.GetoptError: - print 'PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g' - sys.exit(2) - for opt, arg in opts: - if opt == '-h': - print 'PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g ' - sys.exit() - elif opt == "-g": - from PMUpdate_main import main as main_gui - main_gui() - sys.exit() - elif opt in ("-e", "--errorfile"): - errorfile = arg - elif opt in ("-p", "--pointingfile"): - pointingxmlfile = arg - elif opt in ("-r", "--receiver"): - receiver = arg - - if errorfile == "" or pointingxmlfile == "" or receiver == "": - print 'PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g' - sys.exit("ERRORE: all parameters required") - - error_code , result = load_error_file_on_xml(errorfilename=errorfile, pointingxmlfilename=pointingxmlfile, receivername=receiver) - if error_code: - sys.exit("ERRORE: " + result) - -if __name__ == "__main__": - main(sys.argv[1:]) - - +from upgrade_module import load_error_file_on_xml +import sys, getopt + +def main(argv): + errorfile = "" + pointingxmlfile = "" + receiver = "" + + try: + opts, args = getopt.getopt(argv,"hge:p:r:",["errorfile=", "pointingxmlfile=", "receiver="]) + except getopt.GetoptError: + print('PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g') + sys.exit(2) + for opt, arg in opts: + if opt == '-h': + print('PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g ') + sys.exit() + elif opt == "-g": + from PMUpdate_main import main as main_gui + main_gui() + sys.exit() + elif opt in ("-e", "--errorfile"): + errorfile = arg + elif opt in ("-p", "--pointingfile"): + pointingxmlfile = arg + elif opt in ("-r", "--receiver"): + receiver = arg + + if errorfile == "" or pointingxmlfile == "" or receiver == "": + print('PMUpdate -e <errorfile> -p <pointingxmlfile> -r <receiver> -g') + sys.exit("ERRORE: all parameters required") + + error_code , result = load_error_file_on_xml(errorfilename=errorfile, pointingxmlfilename=pointingxmlfile, receivername=receiver) + if error_code: + sys.exit("ERRORE: " + result) + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/Common/Misc/PMUpdate/src/PMUpdate_main.py b/Common/Misc/PMUpdate/src/PMUpdate_main.py index ffb830c33..09487ab85 100644 --- a/Common/Misc/PMUpdate/src/PMUpdate_main.py +++ b/Common/Misc/PMUpdate/src/PMUpdate_main.py @@ -144,14 +144,14 @@ class Editor(QtGui.QMainWindow): qmsg.setText("errorfilename: new model section too short") qmsg.show() - if len(errorfilename_rows[0]) <> 7 or \ - len(errorfilename_rows[1]) <> 31 or \ - len(errorfilename_rows[2]) <> 5 or \ - len(errorfilename_rows[3]) <> 5 or \ - len(errorfilename_rows[4]) <> 5 or \ - len(errorfilename_rows[5]) <> 5 or \ - len(errorfilename_rows[6]) <> 5 or \ - len(errorfilename_rows[7]) <> 5: + if len(errorfilename_rows[0]) != 7 or \ + len(errorfilename_rows[1]) != 31 or \ + len(errorfilename_rows[2]) != 5 or \ + len(errorfilename_rows[3]) != 5 or \ + len(errorfilename_rows[4]) != 5 or \ + len(errorfilename_rows[5]) != 5 or \ + len(errorfilename_rows[6]) != 5 or \ + len(errorfilename_rows[7]) != 5: self.pdplt_file_status = False qmsg = QtGui.QMessageBox() qmsg.setIcon(QtGui.QMessageBox.Critical) diff --git a/Common/Misc/PMUpdate/src/upgrade_module.py b/Common/Misc/PMUpdate/src/upgrade_module.py index 26afbf083..dc6e6797f 100644 --- a/Common/Misc/PMUpdate/src/upgrade_module.py +++ b/Common/Misc/PMUpdate/src/upgrade_module.py @@ -1,4 +1,5 @@ # coding: utf-8 +from __future__ import print_function import os from shutil import copy2 from utility import convert_time_doy_to_string_format @@ -67,19 +68,19 @@ def load_error_file_on_xml(errorfilename, pointingxmlfilename, receivername): return (7, "errorfilename: new model section too short") - if len(errorfilename_rows[0]) <> 7 or \ - len(errorfilename_rows[1]) <> 31 or \ - len(errorfilename_rows[2]) <> 5 or \ - len(errorfilename_rows[3]) <> 5 or \ - len(errorfilename_rows[4]) <> 5 or \ - len(errorfilename_rows[5]) <> 5 or \ - len(errorfilename_rows[6]) <> 5 or \ - len(errorfilename_rows[7]) <> 5: + if len(errorfilename_rows[0]) != 7 or \ + len(errorfilename_rows[1]) != 31 or \ + len(errorfilename_rows[2]) != 5 or \ + len(errorfilename_rows[3]) != 5 or \ + len(errorfilename_rows[4]) != 5 or \ + len(errorfilename_rows[5]) != 5 or \ + len(errorfilename_rows[6]) != 5 or \ + len(errorfilename_rows[7]) != 5: return (8, "errorfilename: not enough parameters in new model section") try: newmodel_date = convert_time_doy_to_string_format(errorfilename_rows[0]) - except RuntimeError, e: + except RuntimeError as e: return (1001, "DOY convertion error: " + e.message) phi = errorfilename_rows[1][0] diff --git a/Common/Misc/PMUpdate/src/utility.py b/Common/Misc/PMUpdate/src/utility.py index 5e47801ba..b0ec5e06a 100644 --- a/Common/Misc/PMUpdate/src/utility.py +++ b/Common/Misc/PMUpdate/src/utility.py @@ -39,10 +39,10 @@ def DATE(DAY, YEAR): if Y == 0 and (DAY > 365 or DAY < 1): - raise RuntimeError, str(int(YEAR))+" Number of day less then 1 or more then 365" + raise RuntimeError(str(int(YEAR))+" Number of day less then 1 or more then 365") if Y == 1 and (DAY > 366 or DAY < 1): - raise RuntimeError, str(int(YEAR))+" Number of day less then 1 or more then 366" + raise RuntimeError(str(int(YEAR))+" Number of day less then 1 or more then 366") for N, M in enumerate(MONTH_LEN): if DAY > M: @@ -61,4 +61,4 @@ def DATE(DAY, YEAR): else: M_NUM = str(M_NUM) - return int(YEAR), int(M_NUM), int(DAY) \ No newline at end of file + return int(YEAR), int(M_NUM), int(DAY) diff --git a/Common/Misc/Plotter/src/plotter.py b/Common/Misc/Plotter/src/plotter.py index 568d2822e..8fa1445f2 100644 --- a/Common/Misc/Plotter/src/plotter.py +++ b/Common/Misc/Plotter/src/plotter.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function # This is a python client that can be used to display value read from properties of a given # component @@ -186,65 +187,65 @@ class GraphThread(threading.Thread): time.sleep(self.data.sleepTime) def usage(): - print "plotter [-h|--help] [-l|--list] [-s|--sample val] [-g|--gap val] [-c|--call=val]" - print " [-Y|--yscale=val] [-X|--xscale=val] -y|--yaxe=val ComponentName" - print " " - print "[-h|--help] displays this help" - print "[-l|--list] list all the available components, then the program exits" - print "[-s|--sample=val] maximum number of samples in the plots, default is 300" - print "[-g|--gap=val] gap in milliseconds between two sample," - print " default value is 1000 milliseconds" - print "[-c|--call=val] name of an action of the component from which the values to be" - print " plotted are taken from. The pure name is required, no parentesis or" - print " anything else. The action must be of type void and so cannot retrurns values back." - print " Just one name can be provided at a time." - print "-y|--yaxe=val comma separated list of the names of component attributes" - print " that must be plotted along the Y axe. At least one item must be" - print " provided, but a maximum of three will be considered. if the -c option" - print " is provided this must be a comma separeted list of integers. Each integer" - print " indicates a parameter in the argument sequence of the function given with -c." - print " The value of that parameter is drawn in the plot. 0 represents the first parameter." - print " A maximum of three can be given." - print "[-x|--xaxe=val] the name of the component attribute that will be the value" - print " for the X axe. If not specified a sample counter will be adopted. In case of" - print " option -c an integer is expected as for -y option." - print "[-Y|--yscale=val] the value set here will be used as a scale factor for attributes " - print " plotted along the Y axis. The list must be comma separated, a maximum" - print " of three values is considered" - print "[-X|--xscale=val] the value set here will be used a scale factor for the X axis. If the special token" - print " 'time' is provided then the value is treated as time and it is formatted as milliseconds " - print " midnight of the the current day." - print "ComponentName this is the name of the component that must be loaded" + print("plotter [-h|--help] [-l|--list] [-s|--sample val] [-g|--gap val] [-c|--call=val]") + print( " [-Y|--yscale=val] [-X|--xscale=val] -y|--yaxe=val ComponentName") + print(" ") + print("[-h|--help] displays this help") + print("[-l|--list] list all the available components, then the program exits") + print("[-s|--sample=val] maximum number of samples in the plots, default is 300") + print("[-g|--gap=val] gap in milliseconds between two sample,") + print(" default value is 1000 milliseconds") + print("[-c|--call=val] name of an action of the component from which the values to be") + print(" plotted are taken from. The pure name is required, no parentesis or") + print(" anything else. The action must be of type void and so cannot retrurns values back.") + print(" Just one name can be provided at a time.") + print("-y|--yaxe=val comma separated list of the names of component attributes") + print(" that must be plotted along the Y axe. At least one item must be") + print(" provided, but a maximum of three will be considered. if the -c option") + print(" is provided this must be a comma separeted list of integers. Each integer") + print(" indicates a parameter in the argument sequence of the function given with -c.") + print(" The value of that parameter is drawn in the plot. 0 represents the first parameter.") + print(" A maximum of three can be given.") + print("[-x|--xaxe=val] the name of the component attribute that will be the value") + print(" for the X axe. If not specified a sample counter will be adopted. In case of") + print(" option -c an integer is expected as for -y option.") + print("[-Y|--yscale=val] the value set here will be used as a scale factor for attributes ") + print(" plotted along the Y axis. The list must be comma separated, a maximum" ) + print(" of three values is considered" ) + print("[-X|--xscale=val] the value set here will be used a scale factor for the X axis. If the special token") + print(" 'time' is provided then the value is treated as time and it is formatted as milliseconds ") + print(" midnight of the the current day.") + print("ComponentName this is the name of the component that must be loaded") def onlineUsage(): - print "help displays this help" - print "stop stops the automatic update of the plot" - print "start starts the automatic update of the plot" - print "clear clears the current plot" - print "exit exits this application" - print "save [filename] saves the plot into a ps file in the current working directory" - print "savefile [filename] saves the data into a text file in the current working directory" - print "" - print "Then all Gnuplot commands are accepted for example: " - print "set xrange [{x1}:{x2]] - changes the X axis ranges" - print "set yyange [{y1}:{y2}] - changes the Y axis ranges" - print "set autoscale - lets Gnuplot to choose the better scale" - print "set logscale - sets the logaritmic scale" - print "set ytics {value} - sets the spaces between tics in the Y axis" - print "set ytics auto - sets the spaces between tics automatically" - print "set xlabel ""{label}"" - sets the label for the X axis" - print "set style data {lines}{linespoints}{dots}{points} - sets the drawing style for the plot" - print "" - print "show ytics - shows the current configuration for the ytics" - print "unset ytics - resets the current configuration for the ytics" + print("help displays this help") + print("stop stops the automatic update of the plot") + print("start starts the automatic update of the plot") + print("clear clears the current plot") + print("exit exits this application") + print("save [filename] saves the plot into a ps file in the current working directory") + print("savefile [filename] saves the data into a text file in the current working directory") + print("") + print("Then all Gnuplot commands are accepted for example: ") + print("set xrange [{x1}:{x2]] - changes the X axis ranges") + print("set yyange [{y1}:{y2}] - changes the Y axis ranges") + print("set autoscale - lets Gnuplot to choose the better scale") + print("set logscale - sets the logaritmic scale") + print("set ytics {value} - sets the spaces between tics in the Y axis") + print("set ytics auto - sets the spaces between tics automatically") + print("set xlabel ""{label}"" - sets the label for the X axis") + print("set style data {lines}{linespoints}{dots}{points} - sets the drawing style for the plot") + print("") + print("show ytics - shows the current configuration for the ytics") + print("unset ytics - resets the current configuration for the ytics") def main(): try: opts, args = getopt.getopt(sys.argv[1:],"hls:g:y:x:Y:X:c:", ["help","list","sample=","gap=","yaxe=","xaxe=","yscale=","xscale=","call="]) - except getopt.GetoptError, err: - print str(err) + except getopt.GetoptError as err: + print(str(err)) usage() sys.exit(1) @@ -299,13 +300,13 @@ def main(): if list == True: #Lists all available components components = simpleClient.availableComponents() for cob in components: - print cob.name + " of type "+ cob.type + print(cob.name + " of type "+ cob.type) a = sys.__stdin__.readline() sys.exit(0) elif not len(args)==0: #if one component has been set... then run try: component=simpleClient.getComponent(args[0]) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(args[0]) newEx.log(ACS_LOG_ERROR) @@ -340,7 +341,7 @@ def main(): data.Y3 = f3() if not (fx == None): data.X = fx() - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessPropertyExImpl( exception=ex, create=1 ) newEx.setPropertyName("") newEx.log(ACS_LOG_ERROR) @@ -368,7 +369,7 @@ def main(): loop = GraphThread(data) loop.start() stop = False - print "" + print("") while not stop: command = raw_input("Command ( ? for help): ") a=command.split(" ") diff --git a/Common/Misc/Scripts/src/data_stats b/Common/Misc/Scripts/src/data_stats index 7b72d3332..3d6f7b5b5 100755 --- a/Common/Misc/Scripts/src/data_stats +++ b/Common/Misc/Scripts/src/data_stats @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function """ This script reads from the command line a list of directories and tries to find @@ -122,9 +123,9 @@ def console_app(): scan_list.sort(key=lambda x:x.start_time) if scan_list: - print "N\tSCANID\tSNAME\t\tREC\tSUBSCANS\tSTART TIME" + print("N\tSCANID\tSNAME\t\tREC\tSUBSCANS\tSTART TIME") for i,scan in enumerate(scan_list): - print str(i) + '\t' + str(scan) + print(str(i) + '\t' + str(scan)) if __name__ == "__main__": console_app() diff --git a/Common/Misc/Scripts/src/tabbify b/Common/Misc/Scripts/src/tabbify index 9e41bd839..395d9ebd1 100755 --- a/Common/Misc/Scripts/src/tabbify +++ b/Common/Misc/Scripts/src/tabbify @@ -39,7 +39,7 @@ def console_app(): else: logging.basicConfig(level=logging.INFO) if not args: - print usage + print(usage) sys.exit(0) else: filenames = [os.path.abspath(filename) for filename in args] diff --git a/Common/Misc/getTemplateForTests/src/getTemplateForTests b/Common/Misc/getTemplateForTests/src/getTemplateForTests index fcf4eb231..e26312e42 100644 --- a/Common/Misc/getTemplateForTests/src/getTemplateForTests +++ b/Common/Misc/getTemplateForTests/src/getTemplateForTests @@ -23,7 +23,7 @@ import gettemplatefortests args = sys.argv[1:] try: gettemplatefortests.command_line_util(args) -except Exception, e: - print e.message +except Exception as e: + print(e.message) sys.exit(1) diff --git a/Common/Misc/getTemplateForTests/src/gettemplatefortests.py b/Common/Misc/getTemplateForTests/src/gettemplatefortests.py index 02a5c168d..42f3e0894 100644 --- a/Common/Misc/getTemplateForTests/src/gettemplatefortests.py +++ b/Common/Misc/getTemplateForTests/src/gettemplatefortests.py @@ -32,12 +32,12 @@ def command_line_util(args): if len(args) == 1: arg = args.pop() if arg in ('--help', '-h'): - print usage + print(usage) sys.exit(0) else: target_dir = arg elif len(args) > 1: - print usage + print(usage) sys.exit(0) else: target_dir = 'tests' # Default target directory diff --git a/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py b/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py index 239419977..099156d30 100644 --- a/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py +++ b/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py @@ -65,7 +65,7 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): self._set_calibration(s, 1) self._set_input(s, channel, 0) self.current_backend = '' - except ComponentErrorsImpl.SocketErrorExImpl, ex: + except ComponentErrorsImpl.SocketErrorExImpl as ex: raise ex.getComponentErrorsEx() def calOff(self): @@ -75,18 +75,18 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): self._set_calibration(s, 0) self._set_input(s, channel, 0) self.current_backend = '' - except ComponentErrorsImpl.SocketErrorExImpl, ex: + except ComponentErrorsImpl.SocketErrorExImpl as ex: raise ex.getComponentErrorsEx() def _get_status(self, s): - return self._send_command(s, b'?\n') + return self._send_command(s, '?\n') def getChannel(self): try: with self.connection as s: channel, polarity, status = self._get_status(s) return channel - except ComponentErrorsImpl.SocketErrorExImpl, ex: + except ComponentErrorsImpl.SocketErrorExImpl as ex: raise ex.getComponentErrorsEx() def getPolarity(self): @@ -94,7 +94,7 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): with self.connection as s: channel, polarity, status = self._get_status(s) return polarity - except ComponentErrorsImpl.SocketErrorExImpl, ex: + except ComponentErrorsImpl.SocketErrorExImpl as ex: raise ex.getComponentErrorsEx() def getCalStatus(self): @@ -102,7 +102,7 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): with self.connection as s: channel, polarity, status = self._get_status(s) return bool(status) - except ComponentErrorsImpl.SocketErrorExImpl, ex: + except ComponentErrorsImpl.SocketErrorExImpl as ex: raise ex.getComponentErrorsEx() def _set_input(self, s, channel, polarity): @@ -137,9 +137,7 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): :param s: the socket on which the command will be sent :param command: the command to be sent to the device. """ - s.sendall(command) - -# time.sleep(0.1) + s.sendall(command.encode()) response = s.recv(1024) response = response.strip().split() diff --git a/Common/Servers/PyDewarPositioner/src/DewarPositioner/DewarPositionerImpl.py b/Common/Servers/PyDewarPositioner/src/DewarPositioner/DewarPositionerImpl.py index 7c6890b30..f41d8a955 100644 --- a/Common/Servers/PyDewarPositioner/src/DewarPositioner/DewarPositionerImpl.py +++ b/Common/Servers/PyDewarPositioner/src/DewarPositioner/DewarPositionerImpl.py @@ -1,3 +1,4 @@ +from __future__ import print_function import time from math import radians from multiprocessing import Queue @@ -72,10 +73,10 @@ class DewarPositionerImpl(POA, cc, services, lcycle): self.control = Control() try: self.supplier = Supplier(Receivers.DEWAR_POSITIONER_DATA_CHANNEL) - except CORBAProblemExImpl, ex: + except CORBAProblemExImpl as ex: logger.logError('cannot create the dewar positioner data channel') logger.logDebug('cannot create the data channel: %s' %ex.message) - except Exception, ex: + except Exception as ex: reason = ex.getReason() if hasattr(ex, 'getReason') else ex.message logger.logError(reason) @@ -86,10 +87,10 @@ class DewarPositionerImpl(POA, cc, services, lcycle): args=(self.positioner, self.supplier, self.control) ) self.statusThread.start() - except AttributeError, ex: + except AttributeError as ex: logger.logWarning('supplier not available') logger.logDebug('supplier not available: %s' %ex.message) - except Exception, ex: + except Exception as ex: logger.logError('cannot create the status thread: %s' %ex.message) def initialize(self): @@ -102,9 +103,9 @@ class DewarPositionerImpl(POA, cc, services, lcycle): self.statusThread.join(timeout=5) if self.statusThread.isAlive(): logger.logError('thread %s is alive' %self.statusThread.getName()) - except AttributeError, ex: + except AttributeError as ex: logger.logDebug('self has no attribute `supplier`: %s' %ex.message) - except Exception, ex: + except Exception as ex: logger.logError(ex.message) finally: self.control.stop = False @@ -117,13 +118,13 @@ class DewarPositionerImpl(POA, cc, services, lcycle): self.cdbconf.setup(self.commandedSetup) deviceName = self.cdbconf.getAttribute('DerotatorName') device = self.client.getComponent(deviceName) - except CannotGetComponentEx, ex: + except CannotGetComponentEx as ex: reason = "cannot get the %s component: %s" %(deviceName, ex.message) logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -135,7 +136,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): lat_obj = observatory._get_latitude() latitude_dec, compl = lat_obj.get_sync() latitude = radians(latitude_dec) - except Exception, ex: + except Exception as ex: reason = ex.getReason() if hasattr(ex, 'getReason') else ex.message logger.logWarning('cannot get the site information: %s' %reason) latitude = radians(float(self.cdbconf.getAttribute('Latitude'))) @@ -161,19 +162,19 @@ class DewarPositionerImpl(POA, cc, services, lcycle): self.setRewindingMode(self.cdbconf.getAttribute('DefaultRewindingMode')) self.actualSetup = self.commandedSetup logger.logNotice('derotator %s setup done' %self.commandedSetup) - except PositionerError, ex: + except PositionerError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except ComponentErrors.ComponentErrorsEx, ex: + except ComponentErrors.ComponentErrorsEx as ex: data_list = ex.errorTrace.data # A list reason = data_list[0].value if data_list else 'component error' logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: reason = ex.getReason() if hasattr(ex, 'getReason') else ex.message logger.logError(reason) exc = ComponentErrorsImpl.UnexpectedExImpl() @@ -189,12 +190,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): else: logger.logWarning('positioner not ready: a setup() is required') self.positioner.park() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -207,17 +208,17 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getPosition(self): try: return self.positioner.getPosition() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except (DerotatorErrors.CommunicationErrorEx, ComponentErrors.ComponentErrorsEx), ex: + except (DerotatorErrors.CommunicationErrorEx, ComponentErrors.ComponentErrorsEx) as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason("Cannot get the derotator position") raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -227,12 +228,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getMaxLimit(self): try: return self.positioner.getMaxLimit() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -242,12 +243,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getMinLimit(self): try: return self.positioner.getMinLimit() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -257,17 +258,17 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getPositionFromHistory(self, t): try: return self.positioner.getPositionFromHistory(t) - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except (DerotatorErrors.CommunicationErrorEx, ComponentErrors.ComponentErrorsEx), ex: + except (DerotatorErrors.CommunicationErrorEx, ComponentErrors.ComponentErrorsEx) as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason("Cannot get the derotator position at the time %s" %s) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -276,12 +277,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getCmdPosition(self): try: return self.positioner.getCmdPosition() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -291,12 +292,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def setPosition(self, position): try: self.positioner.setPosition(position) - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -353,17 +354,17 @@ class DewarPositionerImpl(POA, cc, services, lcycle): logger.logNotice('starting the derotator position updating') try: self.positioner.startUpdating(axis, sector, az, el, ra, dec) - except PositionerError, ex: + except PositionerError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl(ex.message) exc.setData('Reason', ex.message) @@ -373,12 +374,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): logger.logNotice('stopping the derotator position updating') try: self.positioner.stopUpdating() - except PositionerError, ex: + except PositionerError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -389,7 +390,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def setAutoRewindingSteps(self, steps): try: self.positioner.setAutoRewindingSteps(steps) - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) @@ -407,13 +408,13 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def rewind(self, steps): try: return self.positioner.rewind(steps) - except (PositionerError, NotAllowedError), ex: + except (PositionerError, NotAllowedError) as ex: reason = "cannot rewind the derotator: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -431,12 +432,12 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def getRewindingStep(self): try: return self.positioner.getRewindingStep() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -452,13 +453,13 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def isReady(self): try: return self.positioner.isReady() - except DerotatorErrors.CommunicationErrorEx, ex: + except DerotatorErrors.CommunicationErrorEx as ex: reason = "cannot known if the derotator is ready: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -467,13 +468,13 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def isSlewing(self): try: return self.positioner.isSlewing() - except DerotatorErrors.CommunicationErrorEx, ex: + except DerotatorErrors.CommunicationErrorEx as ex: reason = "cannot known if the derotator is slewing: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -482,13 +483,13 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def isTracking(self): try: return self.positioner.isTracking() - except DerotatorErrors.CommunicationErrorEx, ex: + except DerotatorErrors.CommunicationErrorEx as ex: reason = "cannot known if the derotator is tracking: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -500,18 +501,18 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def setOffset(self, offset): try: self.positioner.setOffset(offset) - except (PositionerError, NotAllowedError), ex: + except (PositionerError, NotAllowedError) as ex: reason = "cannot set the derotator offset: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -520,18 +521,18 @@ class DewarPositionerImpl(POA, cc, services, lcycle): def clearOffset(self): try: self.positioner.clearOffset() - except PositionerError, ex: + except PositionerError as ex: reason = "cannot set the derotator offset: %s" %ex.message logger.logError(reason) exc = ComponentErrorsImpl.OperationErrorExImpl() exc.setReason(reason) raise exc.getComponentErrorsEx() - except NotAllowedError, ex: + except NotAllowedError as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.NotAllowedExImpl() exc.setReason(ex.message) raise exc.getComponentErrorsEx() - except Exception, ex: + except Exception as ex: logger.logError(ex.message) exc = ComponentErrorsImpl.UnexpectedExImpl() exc.setData('Reason', ex.message) @@ -554,7 +555,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): try: mode = mode.upper().strip() self.positioner.setRewindingMode(mode) - except PositionerError, ex: + except PositionerError as ex: reason = 'cannot set the rewinding mode: %s' %ex.message logger.logError(reason) exc = ComponentErrorsImpl.ValidationErrorExImpl() @@ -582,7 +583,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): try: self.positioner.control.clearScanInfo() self.cdbconf.setConfiguration(confCode.upper()) - except Exception, ex: + except Exception as ex: reason = ex.getReason() if hasattr(ex, 'getReason') else ex.message logger.logError(reason) exc = ComponentErrorsImpl.UnexpectedExImpl() @@ -631,7 +632,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): ) supplier.publishEvent(simple_data=event) error = False - except Exception, ex: + except Exception as ex: reason = ex.getReason() if hasattr(ex, 'getReason') else ex.message if not error: logger.logError('cannot publish the status: %s' %reason) @@ -655,7 +656,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): except ValueError: success = False answer = 'Error - invalid command: maybe there are too many symbols of =' - except Exception, ex: + except Exception as ex: success = False answer = ex.message else: @@ -689,7 +690,7 @@ class DewarPositionerImpl(POA, cc, services, lcycle): try: method = getattr(self, method_name) - except AttributeError, ex: + except AttributeError as ex: success = False answer = "Error - %s has no attribute %s" %(self, method_name) logger.logError(answer) @@ -702,25 +703,25 @@ class DewarPositionerImpl(POA, cc, services, lcycle): # >>> [type_(arg) for (arg, type_) in zip(args, types)] # [1, 'python', 3.5] # >>> def foo(a, b, c): - # ... print a, b, c + # ... print(a, b, c) # ... # >>> foo(*[type_(arg) for (arg, type_) in zip(args, types)]) # 1 python 3.5 answer = '' if result is None else str(result) success = True - except (ValueError, TypeError), ex: + except (ValueError, TypeError) as ex: success = False answer = 'Error - wrong parameter usage.\nType help(%s) for details' %command logger.logError('%s\n%s' %(ex.message, answer)) return (success, answer) - except ComponentErrors.ComponentErrorsEx, ex: + except ComponentErrors.ComponentErrorsEx as ex: success = False data_list = ex.errorTrace.data # A list reason = data_list[0].value if data_list else 'component error' answer = 'Error - %s' %reason logger.logError(answer) return (success, answer) - except Exception, ex: + except Exception as ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) diff --git a/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py b/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py index 8e7369d20..e0c3ec63b 100644 --- a/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py +++ b/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py @@ -217,7 +217,7 @@ class CDBConf(object): exc = ComponentErrorsImpl.ValidationErrorExImpl() exc.setReason(raeson) raise exc - except Exception, ex: + except Exception as ex: children = () setattr(self, dictName, {}) diff --git a/Common/Servers/PyDewarPositioner/src/DewarPositioner/posgenerator.py b/Common/Servers/PyDewarPositioner/src/DewarPositioner/posgenerator.py index 0feaa2b96..935a1dc74 100644 --- a/Common/Servers/PyDewarPositioner/src/DewarPositioner/posgenerator.py +++ b/Common/Servers/PyDewarPositioner/src/DewarPositioner/posgenerator.py @@ -30,9 +30,9 @@ class PosGenerator(object): """Return the parallactic angle""" try: latitude = siteInfo['latitude'] - except (KeyError, TypeError), ex: + except (KeyError, TypeError) as ex: raise PosGeneratorError('cannot get the latitude: %s' %ex.message) - except Exception, ex: + except Exception as ex: raeson = 'unexpected exception getting the site latitude' logger.logNotice(raeson) raise PosGeneratorError(raeson) @@ -59,7 +59,7 @@ class PosGenerator(object): except GeneratorExit: # Required in Python 2.5: # http://www.algorithm.co.il/blogs/programming/generatorexit-another-reason-to-upgrade-to-python-2-6/ raise - except Exception, ex: + except Exception as ex: raeson = 'cannot get the %s (az, el) values' %source._get_name() logger.logNotice('%s: %s' %(raeson, ex.message)) raise PosGeneratorError(raeson) @@ -68,9 +68,9 @@ class PosGenerator(object): """Return the galactic parallactic angle""" try: latitude = siteInfo['latitude'] - except (KeyError, TypeError), ex: + except (KeyError, TypeError) as ex: raise PosGeneratorError('cannot get the latitude: %s' %ex.message) - except Exception, ex: + except Exception as ex: raeson = 'unexpected exception getting the site latitude' logger.logNotice(raeson) raise PosGeneratorError(raeson) @@ -97,7 +97,7 @@ class PosGenerator(object): except GeneratorExit: # Required in Python 2.5: # http://www.algorithm.co.il/blogs/programming/generatorexit-another-reason-to-upgrade-to-python-2-6/ raise - except Exception, ex: + except Exception as ex: raeson = 'cannot get the %s (az, el) values' %source._get_name() logger.logNotice('%s: %s' %(raeson, ex.message)) raise PosGeneratorError(raeson) diff --git a/Common/Servers/PyDewarPositioner/src/DewarPositioner/positioner.py b/Common/Servers/PyDewarPositioner/src/DewarPositioner/positioner.py index f8dbc13f5..03fbc071b 100644 --- a/Common/Servers/PyDewarPositioner/src/DewarPositioner/positioner.py +++ b/Common/Servers/PyDewarPositioner/src/DewarPositioner/positioner.py @@ -59,9 +59,9 @@ class Positioner(object): self.control.updateScanInfo({'iStaticPos': setupPosition}) self._start(self.posgen.goto, setupPosition) time.sleep(0.1) # Give the thread the time to finish - except (DerotatorErrors.PositioningErrorEx, DerotatorErrors.CommunicationErrorEx), ex: + except (DerotatorErrors.PositioningErrorEx, DerotatorErrors.CommunicationErrorEx) as ex: raise PositionerError("cannot set the position: %s" %ex.message) - except Exception, ex: + except Exception as ex: raise PositionerError(ex.message) finally: Positioner.generalLock.release() @@ -119,7 +119,7 @@ class Positioner(object): self.goTo(position) # Set the initialPosition, in order to add it to the dynamic one self.control.user_position = position - except Exception, ex: + except Exception as ex: raise PositionerError('cannot set the position: %s' %ex.message) @@ -128,11 +128,11 @@ class Positioner(object): if self.device.getMinLimit() < self.control.target < self.device.getMaxLimit(): try: self.device.setPosition(self.control.target) - except (DerotatorErrors.PositioningErrorEx, DerotatorErrors.CommunicationErrorEx), ex: + except (DerotatorErrors.PositioningErrorEx, DerotatorErrors.CommunicationErrorEx) as ex: raeson = "cannot set the %s position" %self.device._get_name() logger.logError('%s: %s' %(raeson, ex.message)) raise PositionerError(raeson) - except Exception, ex: + except Exception as ex: raeson = "unknown exception setting the %s position" %self.device._get_name() logger.logError('%s: %s' %(raeson, ex.message)) raise PositionerError(raeson) @@ -206,7 +206,7 @@ class Positioner(object): ) self._start(posgen, self.source, self.siteInfo) self.control.mustUpdate = True - except Exception, ex: + except Exception as ex: raise PositionerError('configuration problem: %s' %ex.message) finally: Positioner.generalLock.release() @@ -241,13 +241,13 @@ class Positioner(object): self.control.scanInfo.update({'dParallacticPos': Pdp}) self._setPosition(target) # _setPosition() will add the offset time.sleep(float(self.conf.getAttribute('UpdatingTime'))) - except OutOfRangeError, ex: + except OutOfRangeError as ex: logger.logInfo(ex.message) self.control.isRewindingRequired = True if self.control.modes['rewinding'] == 'AUTO': try: self.rewind() - except Exception, ex: + except Exception as ex: # In case of wrong autoRewindingSteps self.control.isRewindingRequired = True logger.logError('cannot rewind: %s' %ex.message) @@ -261,18 +261,18 @@ class Positioner(object): time.sleep(0.1) # Wait until the user calls a rewind else: logger.logError('wrong rewinding mode: %s' %self.control.modes['rewinding']) - except Exception, ex: + except Exception as ex: logger.logError(ex.message) break self.control.mustUpdate = False except KeyboardInterrupt: logger.logInfo('stopping Positioner._updatePosition() due to KeyboardInterrupt') - except AttributeError, ex: + except AttributeError as ex: logger.logError('Positioner._updatePosition(): attribute error') logger.logDebug('Positioner._updatePosition(): %s' %ex.message) - except PositionerError, ex: + except PositionerError as ex: logger.logError('Positioner._updatePosition(): %s' %ex.message) - except Exception, ex: + except Exception as ex: logger.logError('unexcpected exception in Positioner._updatePosition(): %s' %ex) finally: self.control.scanInfo.update({'rewindingOffset': 0}) @@ -313,7 +313,7 @@ class Positioner(object): raise PositionerError('%ss exceeded' %self.conf.getAttribute('RewindingTimeout')) self.control.isRewindingRequired = False - except Exception, ex: + except Exception as ex: self.control.isRewindingRequired = True raise PositionerError(ex.message) finally: @@ -612,12 +612,12 @@ class Positioner(object): try: status_obj = self.device._get_status() - except Exception, ex: + except Exception as ex: raise PositionerError('cannot get the device status property: %s' %ex.message) try: device_status, compl = status_obj.get_sync() - except Exception, ex: + except Exception as ex: raise PositionerError('cannot get the device status value: %s' %ex.message) if compl.code: @@ -640,7 +640,7 @@ class Positioner(object): # 16 we want to get the string 010000 instead of 10000 try: binrepr = Status.dec2bin(device_status, 6) # A string of 6 values - except Exception, ex: + except Exception as ex: raise PositionerError('error in Status.dec2bin(): %s' %ex.message) po, f, ce, nr, s, w = [bool(int(item)) for item in reversed(binrepr)] @@ -662,9 +662,9 @@ class Positioner(object): status += '1' if self.isTracking() else '0' status += '1' if self.isReady() else '0' return status - except (NotAllowedError), ex: + except NotAllowedError as ex: return '000000' # Not ready - except Exception, ex: + except Exception as ex: logger.logError(ex.message) return '100000' # Failure finally: diff --git a/Common/Servers/PyDewarPositioner/src/derotatorPosition.py b/Common/Servers/PyDewarPositioner/src/derotatorPosition.py index 2d4f03b38..ceb42e3bd 100644 --- a/Common/Servers/PyDewarPositioner/src/derotatorPosition.py +++ b/Common/Servers/PyDewarPositioner/src/derotatorPosition.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function from Acspy.Clients.SimpleClient import PySimpleClient from Acspy.Common.TimeHelper import getTimeStamp @@ -17,6 +18,6 @@ while True: t = getTimeStamp().value + 1*10*6 # 100 ms in the future az, el = antenna.getRawCoordinates(t) # Values in radians parallactic = PosGenerator.getParallacticAngle(latitude, az, el) - print "%d -> %.2f -- parallactic: %.2f" %(counter, position, parallactic) + print("%d -> %.2f -- parallactic: %.2f" %(counter, position, parallactic)) counter += 1 time.sleep(3) diff --git a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py index ba65b47e8..f900f3c36 100644 --- a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +++ b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py @@ -1,3 +1,4 @@ +from __future__ import print_function import socket import time @@ -28,8 +29,8 @@ class CommandLine: try: self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - except socket.error , msg: - print msg + except socket.error as msg: + print(msg) self.sock=None def __del__(self): @@ -48,9 +49,9 @@ class CommandLine: msg ='OK' self.sendCmd('*CLS\n') return msg - except socket.error , msg: - print msg - print "connect error: " ,msg + except socket.error as msg: + print(msg) + print("connect error: " ,msg) return msg def init(self,reply): @@ -69,8 +70,8 @@ class CommandLine: return msg,err - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg,False self.sock=None @@ -83,19 +84,19 @@ class CommandLine: commands=msg.split(';') val=int(commands[0])# unit is MHZ, err_msg=commands[1] - print "query err",msg + print("query err",msg) if err_msg != '0,\"No error\"\n': - print "exception",err_msg + print("exception",err_msg) raise CommandLineError(err_msg) return err_msg,val - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg,-1 self.sock=None - except CommandLineError,msg: + except CommandLineError as msg: raise - except ValueError,msg: + except ValueError as msg: raise CommandLineError(msg) @@ -111,8 +112,8 @@ class CommandLine: return msg,err - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg,False self.sock=None @@ -125,19 +126,19 @@ class CommandLine: commands=msg.split(';') val=int(commands[0])/1e6 # unit is MHZ, err_msg=commands[1] - print "query err",msg + print("query err",msg) if err_msg != '0,\"No error\"\n': - print "exception",err_msg + print("exception",err_msg) raise CommandLineError(err_msg) return err_msg,val - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg,-1 self.sock=None - except CommandLineError,msg: + except CommandLineError as msg: raise - except ValueError,msg: + except ValueError as msg: raise CommandLineError(msg) def readStatus(self): @@ -147,13 +148,13 @@ class CommandLine: try: msg=self.query(QUERYERROR) - print "query err",msg + print("query err",msg) if msg != '0,\"No error\"\n': - print "exception",msg + print("exception",msg) raise CommandLineError(msg) return msg - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg def rfOn(self): @@ -168,11 +169,11 @@ class CommandLine: def sendCmd(self,msg): try: - self.sock.sendall(msg) + self.sock.sendall(msg.encode()) return True - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) raise msg self.sock=None return False @@ -183,17 +184,17 @@ class CommandLine: def query(self,cmd): try: - self.sock.sendall(cmd) + self.sock.sendall(cmd.encode()) msg = self.sock.recv(1024) - print 'query:received:',msg + print('query:received:',msg) return msg - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) raise return msg - \ No newline at end of file + diff --git a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py index 7a4f9f63f..e691625f3 100644 --- a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py +++ b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/LocalOscillator.py @@ -47,6 +47,7 @@ # #------------------------------------------------------------------------ # +from __future__ import print_function import time from math import radians @@ -118,7 +119,7 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C logger.logNotice('SYNT FREQ set to %f ' %self.freq) logger.logNotice('SYNT POWER set to %f ' %self.power) - except CommandLine.CommandLineError,ex : + except CommandLine.CommandLineError as ex : logger.logError(ex,message) @@ -134,8 +135,8 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C msg,power=self.cl.getPower() msg,freq= self.cl.getFrequency() - print power - print freq + print(power) + print(freq) return (power,freq) def rfon(self): @@ -148,4 +149,4 @@ class LocalOscillator(Receivers__POA.LocalOscillator, CharacteristicComponent, C def getInternalFrequency(self): return self.freq - \ No newline at end of file + diff --git a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py index ce1b7542d..36845131a 100644 --- a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py +++ b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/devios.py @@ -1,6 +1,6 @@ from ACSImpl.DevIO import DevIO from math import fabs -from CommandLine import CommandLineError +from LocalOscillatorImpl.CommandLine import CommandLineError from IRAPy import logger SYNTH_TOLLERANCE = 1. @@ -38,14 +38,14 @@ class frequencyDevIO(DevIO): try: msg,value=self.cl.getFrequency() return value - except CommandLineError, ex: + except CommandLineError as ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 - except Exception, ex: + except Exception as ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) @@ -73,14 +73,14 @@ class isLockedDevIO(DevIO): return 1 else: return 0 - except CommandLineError, ex: + except CommandLineError as ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) logger.logError(answer) return 0 - except Exception, ex: + except Exception as ex: success = False msg = ex.message if ex.message else 'unexpected exception' answer = 'Error - %s' %(ex.getReason() if hasattr(ex, 'getReason') else msg) diff --git a/Common/Simulators/Components/PyAntennaBossSim/src/AntennaBossSim/AntennaBossSimImpl.py b/Common/Simulators/Components/PyAntennaBossSim/src/AntennaBossSim/AntennaBossSimImpl.py index 2edd7a682..2e27276db 100644 --- a/Common/Simulators/Components/PyAntennaBossSim/src/AntennaBossSim/AntennaBossSimImpl.py +++ b/Common/Simulators/Components/PyAntennaBossSim/src/AntennaBossSim/AntennaBossSimImpl.py @@ -100,7 +100,7 @@ class History(object): self.history.append(data) self.history.sort(key=operator.itemgetter(0)) self.history = self.history[-2**15:] # Last 2**15 positions - # print 'position inserted in the history: ', position + # print('position inserted in the history: ', position) def clean(self, since=0): target_time = since if since else getTimeStamp().value diff --git a/Common/Simulators/Hardware/ReceiverBoardSim/src/ReceiverBoardSimImpl/board_server.py b/Common/Simulators/Hardware/ReceiverBoardSim/src/ReceiverBoardSimImpl/board_server.py index 246dc79d5..836a2b9f6 100755 --- a/Common/Simulators/Hardware/ReceiverBoardSim/src/ReceiverBoardSimImpl/board_server.py +++ b/Common/Simulators/Hardware/ReceiverBoardSim/src/ReceiverBoardSimImpl/board_server.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # Author: Marco Buttu <m.buttu@oa-cagliari.inaf.it> +from __future__ import print_function """ This module defines a dummy server. @@ -99,9 +100,9 @@ class BoardServer: self.s.bind((self.host, self.port)) self.s.listen(1) # Display a welcome message - print "*"*40 - print "BoardServer - Waiting for connections..." - print "*"*40 + print("*"*40) + print("BoardServer - Waiting for connections...") + print("*"*40) # Number of connections counter counter = 0 @@ -111,7 +112,7 @@ class BoardServer: try: connection, clientaddr = self.s.accept() counter += 1 - print "\n%d. Got connection from %s" %(counter, connection.getpeername()) + print("\n%d. Got connection from %s" %(counter, connection.getpeername())) except KeyboardInterrupt: raise except: @@ -148,8 +149,8 @@ class BoardServer: if(data): if len(data) > 1: for c in data: - print hex(ord(c)), - print + print(hex(ord(c))) + print() # print "\nReceived message from %s: %r" % (connection.getpeername(), # binhex.binascii.hexlify(data)) # Initialize the answer with a wrong message @@ -159,7 +160,7 @@ class BoardServer: if CMD_TYPE_MIN_EXT > data[CMD_IDX] or data[CMD_IDX] > CMD_TYPE_MAX_ABB: # The last byte, 0x01, is the execution result of an "unknow command" answer = "".join([CMD_STX, data[2], data[1], data[3], data[4], chr(0x01)]) - print "Sending message: %r" %binhex.binascii.hexlify(answer) + print("Sending message: %r" %binhex.binascii.hexlify(answer)) connection.send(answer) continue elif data[CMD_IDX] >= CMD_TYPE_MIN_ABB: @@ -204,7 +205,7 @@ class BoardServer: answer += chr(checksum) answer += CMD_ETX - print "Sending message: %r" %binhex.binascii.hexlify(answer) + print("Sending message: %r" %binhex.binascii.hexlify(answer)) connection.send(answer) except: raise @@ -238,7 +239,7 @@ class BoardServer: break except: break - print "Reaped process %d" % result[0] + print("Reaped process %d" % result[0]) if __name__ == "__main__": diff --git a/Common/Simulators/Hardware/TCPGenericProtocolSim/src/TCPGenericProtocolSimImpl/TCPServer.py b/Common/Simulators/Hardware/TCPGenericProtocolSim/src/TCPGenericProtocolSimImpl/TCPServer.py index 936357e8f..562c26ecf 100755 --- a/Common/Simulators/Hardware/TCPGenericProtocolSim/src/TCPGenericProtocolSimImpl/TCPServer.py +++ b/Common/Simulators/Hardware/TCPGenericProtocolSim/src/TCPGenericProtocolSimImpl/TCPServer.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # Author: Andrea Orlati <a.orlati@ira.inaf.it> +from __future__ import print_function # **************************************************************************************************** # DISCOS Project @@ -67,14 +68,14 @@ class TCPServer: self.s.bind((self.host, self.simPort)) self.s.listen(1) - print "*"*40 - print "TCPServer - Waiting for connections from %s port %d..." % (self.host,self.simPort) - print "Valid commands are: %s" % (self.command) - print "*"*40 + print("*"*40) + print("TCPServer - Waiting for connections from %s port %d..." % (self.host,self.simPort)) + print("Valid commands are: %s" % (self.command)) + print("*"*40) error=False try: connection, clientaddr = self.s.accept() - print "Got connection from %s port %d" % (connection.getpeername()) + print("Got connection from %s port %d" % (connection.getpeername())) except KeyboardInterrupt: raise except: @@ -96,7 +97,7 @@ class TCPServer: break answer=self.defaultAnswer if(data): - #print "Received: %s" % data + #print("Received: %s" % data) if self.terminator!=32: termPos=data.find(chr(self.terminator)) if termPos>0: @@ -106,7 +107,7 @@ class TCPServer: answer=self.answer[index] else: pass - #print "Sending message: %s" % (answer) + #print("Sending message: %s" % (answer)) connection.send(answer) except KeyboardInterrupt: raise @@ -115,12 +116,12 @@ class TCPServer: finally: connection.close() - print "Exiting...." + print("Exiting....") sys.exit(0) @staticmethod def stop(): - print "shutdown by external command..." + print("shutdown by external command...") stop_server.value = True if __name__ == "__main__": diff --git a/Medicina/Misc/MedScripts/src/medsubr.py b/Medicina/Misc/MedScripts/src/medsubr.py index 089f68eda..a7a973426 100644 --- a/Medicina/Misc/MedScripts/src/medsubr.py +++ b/Medicina/Misc/MedScripts/src/medsubr.py @@ -29,7 +29,7 @@ def main(): #get the antennaBoss component try: antennaBoss=simpleClient.getComponent(antennaBossInstance) - except Exception , ex: + except Exception as ex: simpleClient.getLogger().logError("Error in retriving antennaBoss component"); simpleClient.disconnect() sys.exit(-1) @@ -38,7 +38,7 @@ def main(): try: mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) mySocket.connect((Address,Port)) - except socket.error, (value,message): + except socket.error as (value,message): simpleClient.getLogger().logError("socket error: %s" % message) simpleClient.releaseComponent(antennaBossInstance) simpleClient.disconnect() @@ -47,7 +47,7 @@ def main(): try: elProp=antennaBoss._get_rawElevation() azProp=antennaBoss._get_rawAzimuth() - except Exception, ex: + except Exception as ex: simpleClient.getLogger().logError("Can't read antennaBoss properties") simpleClient.releaseComponent(antennaBossInstance) mySlocket.close() @@ -70,7 +70,7 @@ def main(): sendBuffer="current=0,0,%lf,%lf\n" % (az,el) try: mySocket.send(sendBuffer) - except socket.error, (value,message): + except socket.error as (value,message): simpleClient.getLogger().logError("Send error: %s" % message) simpleClient.releaseComponent(antennaBossInstance) mySocket.close() @@ -91,4 +91,4 @@ def main(): if __name__=="__main__": - main() \ No newline at end of file + main() diff --git a/Medicina/Misc/MedScripts/src/setupccc.py b/Medicina/Misc/MedScripts/src/setupccc.py index 212eeb656..6a062bbe4 100644 --- a/Medicina/Misc/MedScripts/src/setupccc.py +++ b/Medicina/Misc/MedScripts/src/setupccc.py @@ -28,7 +28,7 @@ def main(): REC_CODE = "CCC" try: antennaBoss=simpleClient.getDefaultComponent(antennaBossType) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(antennaBossType) #ACS_LOG_ERROR @@ -38,7 +38,7 @@ def main(): #setup the telescope: prepare it for movement try: antennaBoss.setup(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("AntennaBoss/setup()") #ACS_LOG_ERROR @@ -50,7 +50,7 @@ def main(): #setup the receiver try: receiversBoss=simpleClient.getDefaultComponent(receiversBossType) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(receiversBossType) #ACS_LOG_ERROR @@ -59,7 +59,7 @@ def main(): sys.exit(-1) try: receiversBoss.setup(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("ReceiversBoss/setup()") #ACS_LOG_ERROR @@ -70,7 +70,7 @@ def main(): try: totalPowerBackend= simpleClient.getComponent(totalPowerBackendName) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(receiversBossType) #ACS_LOG_ERROR @@ -79,7 +79,7 @@ def main(): sys.exit(-1) try: totalPowerBackend.initialize(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("TotalPower/initialize()") #ACS_LOG_ERROR @@ -90,7 +90,7 @@ def main(): try: antennaBoss.setHPBW(HPBW) - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("AntennaBoss/setHPBW") #ACS_LOG_ERROR diff --git a/Medicina/Misc/MedScripts/src/setupkkc.py b/Medicina/Misc/MedScripts/src/setupkkc.py index b6eb27730..17f910dbe 100644 --- a/Medicina/Misc/MedScripts/src/setupkkc.py +++ b/Medicina/Misc/MedScripts/src/setupkkc.py @@ -28,7 +28,7 @@ def main(): REC_CODE = "KKC" try: antennaBoss=simpleClient.getDefaultComponent(antennaBossType) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(antennaBossType) #ACS_LOG_ERROR @@ -38,7 +38,7 @@ def main(): #setup the telescope: prepare it for movement try: antennaBoss.setup(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("AntennaBoss/setup()") #ACS_LOG_ERROR @@ -50,7 +50,7 @@ def main(): #setup the receiver try: receiversBoss=simpleClient.getDefaultComponent(receiversBossType) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(receiversBossType) #ACS_LOG_ERROR @@ -59,7 +59,7 @@ def main(): sys.exit(-1) try: receiversBoss.setup(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("ReceiversBoss/setup()") #ACS_LOG_ERROR @@ -70,7 +70,7 @@ def main(): try: totalPowerBackend= simpleClient.getComponent(totalPowerBackendName) - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(receiversBossType) #ACS_LOG_ERROR @@ -79,7 +79,7 @@ def main(): sys.exit(-1) try: totalPowerBackend.initialize(REC_CODE); - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("TotalPower/initialize()") #ACS_LOG_ERROR @@ -90,7 +90,7 @@ def main(): try: antennaBoss.setHPBW(HPBW) - except Exception, ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntPerformActionExImpl( exception=ex, create=1 ) newEx.setAction("AntennaBoss/setHPBW") #ACS_LOG_ERROR diff --git a/Medicina/Servers/MedicinaPyLocalOscillator/src/MedicinaLocalOscillatorImpl/CommandLine.py b/Medicina/Servers/MedicinaPyLocalOscillator/src/MedicinaLocalOscillatorImpl/CommandLine.py index b48fb3f94..cf59f98d6 100644 --- a/Medicina/Servers/MedicinaPyLocalOscillator/src/MedicinaLocalOscillatorImpl/CommandLine.py +++ b/Medicina/Servers/MedicinaPyLocalOscillator/src/MedicinaLocalOscillatorImpl/CommandLine.py @@ -1,3 +1,4 @@ +from __future__ import print_function import socket import time from MedicinaLocalOscillatorImpl import CommandLineError @@ -107,7 +108,7 @@ class CommandLine: cmd=RF_ON_CMD #can rise an error.... answer=self.sendCmd(cmd) - print answer + print(answer) if answer!=RF_ON_ANS_OK: nak,err=answer.split() message="an error occurred, the code is %d"%err @@ -129,14 +130,14 @@ class CommandLine: if self.check(): try: self.sock.sendall(msg) - except socket.error,msg: + except socket.error as msg: slef.close() exc=CommandLineError(msg); raise exc try: ans=self.sock.recv(128) return ans - except socket.error,msg: + except socket.error as msg: self.close() exc=CommandLineError(msg); raise exc @@ -148,7 +149,7 @@ class CommandLine: try: if self.sock==None: self.sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) - except socket.error,msg: + except socket.error as msg: exc=CommandLineError(msg); self.sock=None raise exc @@ -165,7 +166,7 @@ class CommandLine: if self.connected==False: self.sock.connect((self.ip,self.port)) self.connected=True - except socket.error, msg: + except socket.error as msg: exc=CommandLineError(msg); raise exc @@ -179,4 +180,4 @@ class CommandLine: - \ No newline at end of file + diff --git a/Noto/Misc/NotoScripts/src/peakf.py b/Noto/Misc/NotoScripts/src/peakf.py index 98d346ca9..7c5316ad2 100644 --- a/Noto/Misc/NotoScripts/src/peakf.py +++ b/Noto/Misc/NotoScripts/src/peakf.py @@ -3,6 +3,7 @@ # This is a python program that allow to maximize the focus for Noto subreflector #who when what #Andrea Orlati(a.orlati@ira.inaf.it) 24/01/2017 Creation +from __future__ import print_function import getopt, sys @@ -27,21 +28,21 @@ from math import * import os def usage(): - print "subrOff [-h|--help] [-a axis] [-y val] [-z val] [-s val] [-p val]" - print "" - print "[-h|--help] displays this help" - print "[-a axis] scu axis to be moved, currently supported Z, Y, Default Z." - print "[-y val] central offset of Y axis. Default 0.0" - print "[-z val] central offset of Z axis. Default 0.0" - print "[-s val] span in millimeters. Default 40.0" - print "[-p val] number of samples. Default 13" + print("subrOff [-h|--help] [-a axis] [-y val] [-z val] [-s val] [-p val]") + print("") + print("[-h|--help] displays this help") + print("[-a axis] scu axis to be moved, currently supported Z, Y, Default Z.") + print("[-y val] central offset of Y axis. Default 0.0") + print("[-z val] central offset of Z axis. Default 0.0") + print("[-s val] span in millimeters. Default 40.0") + print("[-p val] number of samples. Default 13") def main(): try: opts, args = getopt.getopt(sys.argv[1:],"ha:y:z:c:s:p:",["help"]) - except getopt.GetoptError, err: - print str(err) + except getopt.GetoptError as err: + print(str(err)) usage() sys.exit(1) @@ -69,7 +70,7 @@ def main(): axis.upper() if not((axis=="Z") or (axis=="Y")): - print "currently supported axis are Y and Z" + print("currently supported axis are Y and Z") sys.exit(1) #get the link to the SRTmountcomponent @@ -79,35 +80,35 @@ def main(): try: antennaComponent=simpleClient.getDefaultComponent(antType) antennaCompName=antennaComponent._get_name() - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(antType) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) - print "Antenna boss retrieved" + print("Antenna boss retrieved") tpCompName="" tpInst = "BACKENDS/TotalPower" try: tpComponent=simpleClient.getComponent(tpInst) tpCompName=tpComponent._get_name() - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(tpCompName) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) - print "Total power retrieved" + print("Total power retrieved") - print "Preparing pipe....." + print("Preparing pipe.....") if not os.path.exists(pipeName): - print "Creating pipe" + print("Creating pipe") os.mkfifo(pipeName,0777) - print "Created" + print("Created") else: - print "pipe already exists" + print("pipe already exists") - print "Opening pipe......" + print("Opening pipe......") pipeOut=open(pipeName,'w', 0) - print "Pipe openened for writing......" + print("Pipe openened for writing......") bdf=-0.0036 @@ -125,9 +126,9 @@ def main(): axisPos=centerZ+i*millis pipeString="0.0,%lf,%lf"%(centerY,axisPos) pipeOut.write(pipeString) - except Exception, ex: - print "Error in sending commant to scu" - print ex + except Exception as ex: + print("Error in sending commant to scu") + print(ex) sys.exit(1) try: if axis=="Y": @@ -135,20 +136,20 @@ def main(): else: pass #antennaComponent.setOffsets(math.radians(0.0),math.radians(centerY*bdf),Antenna.ANT_HORIZONTAL) - except Excpetion,ex: - print "Error while sending offset to the telescope" - print ex + except Excpetion as ex: + print("Error while sending offset to the telescope") + print(ex) sys.exit(1) time.sleep(8) try: samples1=tpComponent.getTpi() samples2=tpComponent.getTpi() except: - print "error reading total power measurement" - print ex + print("error reading total power measurement") + print(ex) sys.exit(1) sample=(samples1[1]+samples2[1])/2.0 - print "Lettura %lf,%lf"%(axisPos,sample) + print("Lettura %lf,%lf"%(axisPos,sample)) finally: if not (antennaCompName==""): @@ -160,7 +161,3 @@ def main(): if __name__=="__main__": main() - - - - diff --git a/Noto/Misc/NotoScripts/src/subr.py b/Noto/Misc/NotoScripts/src/subr.py index 1bb57ded3..87bc9f098 100644 --- a/Noto/Misc/NotoScripts/src/subr.py +++ b/Noto/Misc/NotoScripts/src/subr.py @@ -3,6 +3,7 @@ # This is a python test program that refresh the Noto minor servo system #who when what #Andrea Orlati(a.orlati@ira.inaf.it) 02/12/2016 Creation +from __future__ import print_function import getopt, sys import Acspy.Common.Err @@ -27,32 +28,32 @@ offsets=[0.0,0.0,0.0,0.0,0.0] exitFlag=False def readPipe(pipeName): - print "Opening pipe......" + print("Opening pipe......") pipeIn=os.open(pipeName,os.O_RDONLY|os.O_NONBLOCK) - print "Pipe opened for reading......" + print("Pipe opened for reading......") while not exitFlag: try: pipeString=os.read(pipeIn,64) if len(pipeString)>0: - print "received offsets %s"%pipeString + print("received offsets %s"%pipeString) info=pipeString.split(',') - print info + print(info) offsets[0]=float(info[0]) offsets[1]=float(info[1]) offsets[2]=float(info[2]) offsets[3]=float(info[2]) offsets[4]=float(info[2]) time.sleep(1) - except Exception, ex: + except Exception as ex: pass - #print ex + #print(ex) os.close(pipeIn) def usage(): - print "subr [-h|--help] [-c|--code=]" - print "" - print "[-h|--help] displays this help" - print "[-c|--code=] select the setup code" + print("subr [-h|--help] [-c|--code=]") + print("") + print("[-h|--help] displays this help") + print("[-c|--code=] select the setup code") def sendData(socket,msg): length=len(msg) @@ -63,8 +64,8 @@ def main(): try: opts, args = getopt.getopt(sys.argv[1:],"hc:",["help","code="]) - except getopt.GetoptError, err: - print str(err) + except getopt.GetoptError as err: + print(str(err)) usage() sys.exit(1) @@ -83,7 +84,7 @@ def main(): elif o in ("-c", "--code"): code = a - print "The code is %s" % code + print("The code is %s" % code) if code=="QQC": polX[0]=0.0 @@ -148,21 +149,21 @@ def main(): minZ3=-85 else: - print "Unknown code" + print("Unknown code") sys.exit(1); - print "Preparing pipe....." + print("Preparing pipe.....") if not os.path.exists(pipeName): - print "Creating pipe" + print("Creating pipe") os.mkfifo(pipeName,0777) - print "Created" + print("Created") else: - print "pipe already exists" + print("pipe already exists") try: pipeThread=thread.start_new_thread(readPipe,(pipeName, ) ) - except Exception,ex: - print ex + except Exception as ex: + print(ex) sys.exit(1) #get the link to the SRTmountcomponent @@ -172,18 +173,18 @@ def main(): try: component=simpleClient.getDefaultComponent(compType) compName=component._get_name() - except Exception , ex: + except Exception as ex: newEx = ClientErrorsImpl.CouldntAccessComponentExImpl( exception=ex, create=1 ) newEx.setComponentName(compType) newEx.log(simpleClient.getLogger(),ACSLog.ACS_LOG_ERROR) sys.exit(1) - print "Antenna boss retrieved" + print("Antenna boss retrieved") client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(('192.167.187.92', 5003)) - print "socket connected" + print("socket connected") time.sleep(2) try: @@ -191,10 +192,10 @@ def main(): ctime=getTimeStamp().value try: az,el=component.getRawCoordinates(ctime) - except Exception , ex: - print "Errore nella lettura della posizione" + except Exception as ex: + print("Errore nella lettura della posizione") delev=degrees(el) - print el,delev + print(el,delev) posX=polX[0]*delev*delev+polX[1]*delev+polX[2] posY=polY[0]*delev*delev+polY[1]*delev+polY[2] posZ1=polZ1[0]*delev*delev+polZ1[1]*delev+polZ1[2] @@ -226,13 +227,13 @@ def main(): if posZ3<minZ3: posZ3=minZ3 - print "comando %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf" % (posX,posY,posZ1,posZ2,posZ3) + print("comando %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf" % (posX,posY,posZ1,posZ2,posZ3)) buffer="0,1,7,%6.2lf,%6.2lf,%6.2lf,%6.2lf,%6.2lf" % (posX,posY,posZ1,posZ2,posZ3) - #print buffer + #print(buffer) sendData(client_socket,buffer) time.sleep(5) data=client_socket.recv(128) - #print "risposta ", data + #print("risposta ", data) time.sleep(1) finally: exitFlag=True @@ -245,7 +246,3 @@ def main(): if __name__=="__main__": main() - - - - diff --git a/Noto/Misc/NotoScripts/src/subrOff.py b/Noto/Misc/NotoScripts/src/subrOff.py index 3c1e8f2ab..5bf31720f 100644 --- a/Noto/Misc/NotoScripts/src/subrOff.py +++ b/Noto/Misc/NotoScripts/src/subrOff.py @@ -3,6 +3,7 @@ # This is a python test program that rchanges the current offsets of Noto SCU #who when what #Andrea Orlati(a.orlati@ira.inaf.it) 24/01/2017 Creation +from __future__ import print_function import getopt, sys @@ -15,19 +16,19 @@ from math import * import os def usage(): - print "subrOff [-h|--help] [-x val] [-y val] [-z val]" - print "" - print "[-h|--help] displays this help" - print "[-x val] offset for x axis" - print "[-y val] offset for y axis" - print "[-z val] offset for z axis" + print("subrOff [-h|--help] [-x val] [-y val] [-z val]") + print("") + print("[-h|--help] displays this help") + print("[-x val] offset for x axis") + print("[-y val] offset for y axis") + print("[-z val] offset for z axis") def main(): try: opts, args = getopt.getopt(sys.argv[1:],"hx:y:z:",["help"]) - except getopt.GetoptError, err: - print str(err) + except getopt.GetoptError as err: + print(str(err)) usage() sys.exit(1) @@ -48,30 +49,26 @@ def main(): elif o in ("-z"): Z = float(a) - print "The offsets are X: %lf, Y: %lf, Z, %lf" % (X,Y,Z) + print("The offsets are X: %lf, Y: %lf, Z, %lf" % (X,Y,Z)) - print "Preparing pipe....." + print("Preparing pipe.....") if not os.path.exists(pipeName): - print "Creating pipe" + print("Creating pipe") os.mkfifo(pipeName,0777) - print "Created" + print("Created") else: - print "pipe already exists" + print("pipe already exists") - print "Opening pipe......" + print("Opening pipe......") pipeOut=open(pipeName,'w', 0) - print "Pipe openened for writing......" + print("Pipe openened for writing......") try: pipeString="%lf,%lf,%lf"%(X,Y,Z) pipeOut.write(pipeString) - print "command sent!" + print("command sent!") pipeOut.close() - except Exception, ex: - print ex + except Exception as ex: + print(ex) if __name__=="__main__": main() - - - - diff --git a/Noto/Servers/NotoPyIfDistributor/src/_ifdist.py b/Noto/Servers/NotoPyIfDistributor/src/_ifdist.py index 6be5741f3..0cf6da920 100644 --- a/Noto/Servers/NotoPyIfDistributor/src/_ifdist.py +++ b/Noto/Servers/NotoPyIfDistributor/src/_ifdist.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function # This is a python script that can be used to configure the IF distributor. # The script is adapted from DMED. @@ -149,7 +150,7 @@ def main(argv): userLogger.logNotice( "Answer: %s"%(answer)) - print >> sys.stderr, answerstr.replace(","," ") + print(answerstr.replace(","," "), file=sys.stderr) if __name__=="__main__": diff --git a/Noto/Servers/NotoPyLocalOscillator/src/NotoLocalOscillatorImpl/CommandLine.py b/Noto/Servers/NotoPyLocalOscillator/src/NotoLocalOscillatorImpl/CommandLine.py index 801eb4387..b9b658198 100644 --- a/Noto/Servers/NotoPyLocalOscillator/src/NotoLocalOscillatorImpl/CommandLine.py +++ b/Noto/Servers/NotoPyLocalOscillator/src/NotoLocalOscillatorImpl/CommandLine.py @@ -1,3 +1,4 @@ +from __future__ import print_function import socket import time import decimal @@ -47,7 +48,7 @@ class CommandLine: try: if self.sock==None: self.sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) - except socket.error,msg: + except socket.error as msg: self.sock=None return False return True @@ -66,7 +67,7 @@ class CommandLine: self.connected=True self.sock.sendall('*CLS\n;SYST:ERR?\n++read\n') msg=self.sock.recv(1024) - except socket.error, msg: + except socket.error as msg: self.close() return False return True @@ -149,13 +150,13 @@ class CommandLine: try: msg=self.query(QUERYERROR) - print "query err",msg + print("query err",msg) if msg != '0,\"No error\"\n': - print "exception",msg + print("exception",msg) raise CommandLineError(msg) return msg - except socket.error , msg: - print "connect error: " ,msg + except socket.error as msg: + print("connect error: " ,msg) return msg def rfOn(self): @@ -169,7 +170,7 @@ class CommandLine: if self.check(): try: self.sock.sendall(cmd) - except socket.error,msg: + except socket.error as msg: self.close() return False,msg return True,msg @@ -181,12 +182,12 @@ class CommandLine: if self.check(): try: self.sock.sendall(cmd+'\n++read\n') - except socket.error,msg: + except socket.error as msg: self.close() return False,msg try: msg=self.sock.recv(1024) - except socket.error,msg: + except socket.error as msg: self.close() return False,msg if len(msg)==0: @@ -198,4 +199,4 @@ class CommandLine: - \ No newline at end of file + diff --git a/SRT/Misc/SRTScripts/src/receiversmonitor.py b/SRT/Misc/SRTScripts/src/receiversmonitor.py index c4ff14573..498f18bc1 100755 --- a/SRT/Misc/SRTScripts/src/receiversmonitor.py +++ b/SRT/Misc/SRTScripts/src/receiversmonitor.py @@ -1,4 +1,5 @@ #! /usr/bin/env python +from __future__ import print_function import logging import time @@ -12,8 +13,8 @@ from Acspy.Util.ACSCorba import getManager process = os.path.basename(__file__) # Exit in case the user try to run the script on nuraghe-mng #if 'nuraghe-mng' in os.getenv('HOST'): -# print 'ERROR: you can not execute %s on this machine.' % process -# print 'Please, read the SD manual!' +# print('ERROR: you can not execute %s on this machine.' % process) +# print('Please, read the SD manual!') # sys.exit(0) # Exit in case the process is already running @@ -26,7 +27,7 @@ for line in running_processes.split('\n'): # else: counter += 1 if counter > 1: - print '%s already running, everything is OK' % process + print('%s already running, everything is OK' % process) sys.exit(0) #LOGDIR = os.path.join('service','receivers') @@ -34,7 +35,7 @@ LOGDIR ='/service/receivers' FILENAME = os.path.join(LOGDIR,'receivers.log') dirname=os.path.dirname(LOGDIR) if not os.path.exists(dirname): - print 'ERROR: target folder does not exists, check %s' % LOGDIR + print('ERROR: target folder does not exists, check %s' % LOGDIR) sys.exit(-1) logging.basicConfig( @@ -88,7 +89,7 @@ while True: except KeyboardInterrupt: logging.info('program closed by the user') raise - except Exception, ex: + except Exception as ex: pass finally: try: -- GitLab From 02f45c5f3d8922f3d6db70c7d22308d4f78441a3 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 26 Jul 2022 14:05:10 +0200 Subject: [PATCH 004/150] Fix #720, fixed some socket.recv function --- .../PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py index f900f3c36..51a794157 100644 --- a/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py +++ b/Common/Servers/PyLocalOscillator/src/LocalOscillatorImpl/CommandLine.py @@ -185,7 +185,7 @@ class CommandLine: def query(self,cmd): try: self.sock.sendall(cmd.encode()) - msg = self.sock.recv(1024) + msg = self.sock.recv(1024).decode() print('query:received:',msg) return msg -- GitLab From 25c47227749c7388022163ebc9d68b8897c7f50b Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 27 Jul 2022 14:52:00 +0200 Subject: [PATCH 005/150] Fix #733, updated all TextClients (#734) * Fix #733, updated all TextClients * Fix #733, updated the Client.cpp.template as requested --- .../src/AntennaBossTextClient.cpp | 25 ++++++++----------- .../src/BackendClient.cpp | 25 ++++++++----------- .../src/MinorServoBossTextClient.cpp | 25 ++++++++----------- .../src/ObservatoryTextClient.cpp | 25 ++++++++----------- .../src/ReceiversBossTextClient.cpp | 25 ++++++++----------- .../src/SchedulerTuiClient.cpp | 25 ++++++++----------- .../templates/Client.cpp.template | 25 ++++++++----------- .../src/MedicinaMountTextClient.cpp | 25 ++++++++----------- .../src/SRTMountTextClient.cpp | 24 +++++++----------- 9 files changed, 89 insertions(+), 135 deletions(-) diff --git a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp index 26bfb465c..616ab7337 100644 --- a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp +++ b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp @@ -201,21 +201,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); diff --git a/Common/Clients/GenericBackendTextClient/src/BackendClient.cpp b/Common/Clients/GenericBackendTextClient/src/BackendClient.cpp index 449994f68..41a1b553d 100644 --- a/Common/Clients/GenericBackendTextClient/src/BackendClient.cpp +++ b/Common/Clients/GenericBackendTextClient/src/BackendClient.cpp @@ -237,21 +237,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_COMPONENENT: %s",COMPONENT_NAME)); try { diff --git a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp index b76fb6946..9f490e5ba 100644 --- a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp +++ b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp @@ -216,21 +216,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); try { diff --git a/Common/Clients/ObservatoryTextClient/src/ObservatoryTextClient.cpp b/Common/Clients/ObservatoryTextClient/src/ObservatoryTextClient.cpp index fb9f3cf2f..f5000b561 100644 --- a/Common/Clients/ObservatoryTextClient/src/ObservatoryTextClient.cpp +++ b/Common/Clients/ObservatoryTextClient/src/ObservatoryTextClient.cpp @@ -191,21 +191,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); try { diff --git a/Common/Clients/ReceiversBossTextClient/src/ReceiversBossTextClient.cpp b/Common/Clients/ReceiversBossTextClient/src/ReceiversBossTextClient.cpp index ab6446942..bbc1faa0f 100644 --- a/Common/Clients/ReceiversBossTextClient/src/ReceiversBossTextClient.cpp +++ b/Common/Clients/ReceiversBossTextClient/src/ReceiversBossTextClient.cpp @@ -265,21 +265,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); try { diff --git a/Common/Clients/SchedulerTextClient/src/SchedulerTuiClient.cpp b/Common/Clients/SchedulerTextClient/src/SchedulerTuiClient.cpp index 248b9846b..52618021e 100644 --- a/Common/Clients/SchedulerTextClient/src/SchedulerTuiClient.cpp +++ b/Common/Clients/SchedulerTextClient/src/SchedulerTuiClient.cpp @@ -190,21 +190,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); try { diff --git a/Common/Libraries/TextWindowLibrary/templates/Client.cpp.template b/Common/Libraries/TextWindowLibrary/templates/Client.cpp.template index b5d43cf97..d42cd8c28 100644 --- a/Common/Libraries/TextWindowLibrary/templates/Client.cpp.template +++ b/Common/Libraries/TextWindowLibrary/templates/Client.cpp.template @@ -166,21 +166,16 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_COMPONENENT: %s",COMPONENT_NAME)); try { diff --git a/Medicina/Clients/MedicinaMountTextClient/src/MedicinaMountTextClient.cpp b/Medicina/Clients/MedicinaMountTextClient/src/MedicinaMountTextClient.cpp index ed6a0c9c6..228de7429 100644 --- a/Medicina/Clients/MedicinaMountTextClient/src/MedicinaMountTextClient.cpp +++ b/Medicina/Clients/MedicinaMountTextClient/src/MedicinaMountTextClient.cpp @@ -179,21 +179,16 @@ int main(int argc, char *argv[]) { window.initFrame(); window.setTitle("Mount"); window.setTitleStyle(CStyle(CColorPair::RED_BLACK,CStyle::BOLD|CStyle::UNDERLINE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); + ACS_LOG(LM_SOURCE_INFO,"mountTui::Main()",(LM_INFO,"FRAME_INITIALIZED")); ACS_LOG(LM_SOURCE_INFO,"mountTui::Main()",(LM_INFO,"GET_DEFAULT_COMPONENENT: %s",COMPONENT_INTERFACE_TPYE)); try { diff --git a/SRT/Clients/SRTMountTextClient/src/SRTMountTextClient.cpp b/SRT/Clients/SRTMountTextClient/src/SRTMountTextClient.cpp index 12ab78799..5b7ca6c9d 100644 --- a/SRT/Clients/SRTMountTextClient/src/SRTMountTextClient.cpp +++ b/SRT/Clients/SRTMountTextClient/src/SRTMountTextClient.cpp @@ -235,21 +235,15 @@ int main(int argc, char *argv[]) { // Change the style of the main frame window.setTitleStyle(CStyle(TITLE_COLOR_PAIR,TITLE_STYLE)); - if (window.colorReady()) { - window.defineColor(GRAY_COLOR,255,255,255); - window.defineColorPair(BLUE_GRAY,CColor::BLUE,GRAY_COLOR); - window.defineColorPair(GRAY_BLUE,GRAY_COLOR,CColor::BLUE); - } - else { - window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); - window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); - window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); - window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); - window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); - window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); - window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); - window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE ); - } + window.defineColor(GRAY_COLOR,500,500,500); + window.defineColorPair(BLUE_GRAY,CColor::BLUE,CColor::WHITE); + window.defineColorPair(GRAY_BLUE,CColor::WHITE,CColor::BLUE); + window.defineColorPair(BLACK_RED,CColor::BLACK,CColor::RED); + window.defineColorPair(BLACK_GREEN,CColor::BLACK,CColor::GREEN); + window.defineColorPair(BLACK_YELLOW,CColor::BLACK,CColor::YELLOW); + window.defineColorPair(BLACK_BLUE,CColor::BLACK,CColor::BLUE); + window.defineColorPair(BLACK_MAGENTA,CColor::BLACK,CColor::MAGENTA); + window.defineColorPair(BLACK_WHITE,CColor::BLACK,CColor::WHITE); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::FRAME_INITIALIZED")); ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::GET_COMPONENENT: %s",COMPONENT_INTERFACE_TYPE)); try { -- GitLab From dd48fc55e9d4cfc08c5e8fb9333efebf21a839d0 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 13 Sep 2022 17:04:54 +0200 Subject: [PATCH 006/150] Fix #742, updated the archive directory in CDBs (#743) * Fix #742, updated the `archive` directory in CDBs * Fix #742, fixed typo --- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- Medicina/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml | 14 +++++++------- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- .../CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml | 14 +++++++------- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- Noto/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml | 8 ++++---- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- .../CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml | 8 ++++---- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 8 ++++---- .../alma/MANAGEMENT/CustomLogger/CustomLogger.xml | 4 ++-- .../CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 8 ++++---- 12 files changed, 42 insertions(+), 42 deletions(-) diff --git a/Medicina/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/Medicina/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/Medicina/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/Medicina/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/Medicina/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml b/Medicina/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml index 7e0cc626b..cc2879fe7 100644 --- a/Medicina/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml +++ b/Medicina/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml @@ -7,13 +7,13 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/extraData/" - LogDir="/archive/logs/" - ScheduleReportPath="/archive/report/" - ScheduleBackuptPath="/archive/backup/" - RecordingLockFile="/archive/locks/ScheduleRecording.lck" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/extraData/" + LogDir="/discos-archive/logs/" + ScheduleReportPath="/discos-archive/report/" + ScheduleBackuptPath="/discos-archive/backup/" + RecordingLockFile="/discos-archive/locks/ScheduleRecording.lck" ProceduresLocation="Procedures" DefaultProceduresFile="StationProcedures" RepetitionCacheTime="2000000" diff --git a/Medicina/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/Medicina/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/Medicina/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/Medicina/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/Medicina/Configuration/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml b/Medicina/Configuration/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml index f8fbdca4b..c0f3db4dc 100644 --- a/Medicina/Configuration/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml +++ b/Medicina/Configuration/CDB/alma/MANAGEMENT/Palmiro/Palmiro.xml @@ -7,13 +7,13 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/extraData/" - LogDir="/archive/logs/" - ScheduleReportPath="/archive/report/" - ScheduleBackuptPath="/archive/backup/" - RecordingLockFile="/archive/locks/ScheduleRecording.lck" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/extraData/" + LogDir="/discos-archive/logs/" + ScheduleReportPath="/discos-archive/report/" + ScheduleBackuptPath="/discos-archive/backup/" + RecordingLockFile="/discos-archive/locks/ScheduleRecording.lck" ProceduresLocation="Procedures" DefaultProceduresFile="StationProcedures" RepetitionCacheTime="2000000" diff --git a/Noto/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/Noto/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/Noto/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/Noto/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/Noto/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml b/Noto/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml index 92880148b..54e2907c9 100644 --- a/Noto/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml +++ b/Noto/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml @@ -7,10 +7,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/extraData/" - LogDir="/archive/logs/" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/extraData/" + LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" RecordingLockFile="" diff --git a/Noto/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/Noto/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/Noto/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/Noto/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/Noto/Configuration/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml b/Noto/Configuration/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml index afaed9b51..f092c79cc 100644 --- a/Noto/Configuration/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml +++ b/Noto/Configuration/CDB/alma/MANAGEMENT/Ducezio/Ducezio.xml @@ -7,10 +7,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/extraData/" - LogDir="/archive/logs/" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/extraData/" + LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" RecordingLockFile="" diff --git a/SRT/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/SRT/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/SRT/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/SRT/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 8bf8de487..32d8ca7d9 100644 --- a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -7,10 +7,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/auxiliary/" - LogDir="/archive/logs/" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/auxiliary/" + LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" RecordingLockFile="" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml index eb40ab75b..8027bb2f9 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/CustomLogger/CustomLogger.xml @@ -6,9 +6,9 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DefaultACSLogDir="/archive/events" + DefaultACSLogDir="/discos-archive/events" DefaultACSLogFile="acs.xml" - DefaultCustomLogDir="/archive/logs" + DefaultCustomLogDir="/discos-archive/logs" DefaultCustomLogFile="station.log" LogMaxAgeMillis="60000" > diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 0e7feb798..b41203b74 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -7,10 +7,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SchedDir="/archive/schedules/" - DataDir="/archive/data/" - SystemDataDir="/archive/auxiliary/" - LogDir="/archive/logs/" + SchedDir="/discos-archive/schedules/" + DataDir="/discos-archive/data/" + SystemDataDir="/discos-archive/auxiliary/" + LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" RecordingLockFile="" -- GitLab From 207259dcfc671772c5536b7c3b5ad107c03fc86e Mon Sep 17 00:00:00 2001 From: Marco Buttu <marco.buttu@inaf.it> Date: Wed, 5 Oct 2022 11:11:57 +0000 Subject: [PATCH 007/150] Fix issue 749 --- SRT/Servers/SRTLPBandReceiver/src/ComponentCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SRT/Servers/SRTLPBandReceiver/src/ComponentCore.cpp b/SRT/Servers/SRTLPBandReceiver/src/ComponentCore.cpp index 4c6a81efd..c796e9d81 100755 --- a/SRT/Servers/SRTLPBandReceiver/src/ComponentCore.cpp +++ b/SRT/Servers/SRTLPBandReceiver/src/ComponentCore.cpp @@ -100,7 +100,7 @@ void CComponentCore::getPBandLO(ACS::doubleSeq& lo) baci::ThreadSyncGuard guard(&m_mutex); lo.length(m_configuration.getIFs()); for (WORD i=0; i<m_configuration.getIFs(); i++) { - lo[i] = 0; + lo[i] = m_localOscillatorValue; } } -- GitLab From b5564e190560965aba1c815ab0e18dfdd397f15c Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 6 Oct 2022 14:56:08 +0000 Subject: [PATCH 008/150] Fixed some Python issues with meteoClient Python 3.9.4 raised some compatibility issues/warnings in meteoClient. This commit fixes them. --- Common/Clients/MeteoClient/src/meteoClient.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Common/Clients/MeteoClient/src/meteoClient.py b/Common/Clients/MeteoClient/src/meteoClient.py index aa0d86ff1..265b48c64 100644 --- a/Common/Clients/MeteoClient/src/meteoClient.py +++ b/Common/Clients/MeteoClient/src/meteoClient.py @@ -136,10 +136,11 @@ class SpeedoMeter(Qwt.QwtDial): return self.__label def drawScaleContents(self, painter, center, radius): + radius = int(radius) rect = Qt.QRect(0, 0, 2 * radius, 2 * radius - 10) rect.moveCenter(center.toPoint()) painter.setPen(self.palette().color(Qt.QPalette.Text)) - painter.drawText(rect, Qt.Qt.AlignBottom | Qt.Qt.AlignHCenter, self.__label) + painter.drawText(rect, int(Qt.Qt.AlignBottom | Qt.Qt.AlignHCenter), self.__label) rect = Qt.QRect(-1000, -1000, 2 * radius - 30, 2 * radius - 30) rect.moveCenter(center.toPoint()) @@ -150,11 +151,11 @@ class SpeedoMeter(Qwt.QwtDial): pen.setWidth(8) pen.setColor(Qt.Qt.red) painter.setPen(pen) - painter.drawArc(rect, 16 * -45, 16 * (80 - self.limit) * unit) + painter.drawArc(rect, 16 * -45, int(16 * (80 - self.limit) * unit)) pen.setColor(Qt.Qt.green) painter.setPen(pen) - painter.drawArc(rect, 16 * (-45 + (80 - self.limit) * unit), 16 * self.limit * unit) + painter.drawArc(rect, int(16 * (-45 + (80 - self.limit) * unit)), int(16 * self.limit * unit)) def setVal(self, value=0.): self.setValue(value) @@ -176,8 +177,8 @@ class Background(Qwt.QwtPlotItem): red = Qt.QColor(Qt.Qt.red) yellow = Qt.QColor(Qt.Qt.yellow) - r.setBottom(yMap.transform(self.limit)) - r.setTop(yMap.transform(self.limit)) + r.setBottom(int(yMap.transform(self.limit))) + r.setTop(int(yMap.transform(self.limit))) painter.fillRect(r, red) -- GitLab From 9059811cb4eaacd0170650eed99d5162586e8252 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 18 Oct 2022 10:37:34 +0200 Subject: [PATCH 009/150] Fix #769, update for CGG 8.3.1 (#770) --- Common/Servers/FitsWriter/src/FitsTools.cpp | 2 +- .../src/SRTActiveSurfaceBossSectorThread.cpp | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Common/Servers/FitsWriter/src/FitsTools.cpp b/Common/Servers/FitsWriter/src/FitsTools.cpp index ab541b92d..442cb0f16 100644 --- a/Common/Servers/FitsWriter/src/FitsTools.cpp +++ b/Common/Servers/FitsWriter/src/FitsTools.cpp @@ -60,7 +60,7 @@ CCfits::Table *CFitsTools::createTable(CCfits::FITS *const fits,const IRA::CStri CCfits::Table *table; if (!fits) { errorMessage="fits file is not created"; - return false; + return NULL; } try { table=fits->addTable((const char *)name,0,colName,colForm,colUnit); diff --git a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossSectorThread.cpp b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossSectorThread.cpp index 74702ca37..0d35aed43 100644 --- a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossSectorThread.cpp +++ b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossSectorThread.cpp @@ -58,8 +58,7 @@ void CSRTActiveSurfaceBossSectorThread::onStop() void CSRTActiveSurfaceBossSectorThread::runLoop() { - char serial_usd[23]; - char graf[5], mecc[4]; + std::string serial_usd, graf, mecc; int lanIndex; int circleIndex; int usdCircleIndex; @@ -70,12 +69,12 @@ void CSRTActiveSurfaceBossSectorThread::runLoop() try { - current_usd = m_boss->m_services->getComponent<ActiveSurface::USD>(serial_usd); + current_usd = m_boss->m_services->getComponent<ActiveSurface::USD>(serial_usd.c_str()); } catch (maciErrType::CannotGetComponentExImpl& ex) { _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,std::string(m_thread_name + "::runLoop()").c_str()); - Impl.setComponentName(serial_usd); + Impl.setComponentName(serial_usd.c_str()); Impl.log(LM_DEBUG); } -- GitLab From 0383eb4ca0d34543c66bb8313e1920b8e532402c Mon Sep 17 00:00:00 2001 From: Marco Buttu <marco.buttu@inaf.it> Date: Thu, 15 Dec 2022 11:13:52 +0000 Subject: [PATCH 010/150] Fix issue 785 --- Common/Servers/Scheduler/include/Schedule.h | 4 ++++ Common/Servers/Scheduler/src/Schedule.cpp | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Common/Servers/Scheduler/include/Schedule.h b/Common/Servers/Scheduler/include/Schedule.h index aee7ce884..8f79679e7 100644 --- a/Common/Servers/Scheduler/include/Schedule.h +++ b/Common/Servers/Scheduler/include/Schedule.h @@ -154,6 +154,10 @@ protected: * number of schedule lines */ DWORD m_lines; + /** + * schedule file name (i.e: myschedule.scd) + */ + IRA::CString m_scheduleName; /** * file name */ diff --git a/Common/Servers/Scheduler/src/Schedule.cpp b/Common/Servers/Scheduler/src/Schedule.cpp index 6eff1c0a6..b4c8f4702 100644 --- a/Common/Servers/Scheduler/src/Schedule.cpp +++ b/Common/Servers/Scheduler/src/Schedule.cpp @@ -96,9 +96,10 @@ bool CParser::parse(CBaseSchedule* unit,DWORD& line,IRA::CString& errorMsg) //CBaseSchedule CBaseSchedule::CBaseSchedule(const IRA::CString& path,const IRA::CString& fileName) : m_lines(0), m_fileName(""), - m_filePath(path), m_baseName(""),m_lastError(""),m_config(NULL) + m_scheduleName(""),m_filePath(path), m_baseName(""),m_lastError(""),m_config(NULL) { m_parser=new CParser; + m_scheduleName=fileName; m_fileName=m_filePath+fileName; int pos=fileName.Find('.'); m_baseName=fileName.Mid(0,pos); @@ -112,7 +113,7 @@ CBaseSchedule::~CBaseSchedule() bool CBaseSchedule::readAll(bool check) { IRA::CString err; - if (m_fileName.GetLength()>MAX_SCHED_NAME_LEN) { + if (m_scheduleName.GetLength()>MAX_SCHED_NAME_LEN) { m_lastError.Format("Schedule name exceeds the maximum allowed characters of %d",MAX_SCHED_NAME_LEN); return false; } -- GitLab From 464aeecfd09236d6fbb9836be79d54546df38b40 Mon Sep 17 00:00:00 2001 From: marco-buttu <marco.buttu@gmail.com> Date: Thu, 15 Dec 2022 12:29:11 +0000 Subject: [PATCH 011/150] Check baseName --- Common/Servers/Scheduler/include/Schedule.h | 4 ---- Common/Servers/Scheduler/src/Schedule.cpp | 5 ++--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Common/Servers/Scheduler/include/Schedule.h b/Common/Servers/Scheduler/include/Schedule.h index 8f79679e7..aee7ce884 100644 --- a/Common/Servers/Scheduler/include/Schedule.h +++ b/Common/Servers/Scheduler/include/Schedule.h @@ -154,10 +154,6 @@ protected: * number of schedule lines */ DWORD m_lines; - /** - * schedule file name (i.e: myschedule.scd) - */ - IRA::CString m_scheduleName; /** * file name */ diff --git a/Common/Servers/Scheduler/src/Schedule.cpp b/Common/Servers/Scheduler/src/Schedule.cpp index b4c8f4702..056b3673e 100644 --- a/Common/Servers/Scheduler/src/Schedule.cpp +++ b/Common/Servers/Scheduler/src/Schedule.cpp @@ -96,10 +96,9 @@ bool CParser::parse(CBaseSchedule* unit,DWORD& line,IRA::CString& errorMsg) //CBaseSchedule CBaseSchedule::CBaseSchedule(const IRA::CString& path,const IRA::CString& fileName) : m_lines(0), m_fileName(""), - m_scheduleName(""),m_filePath(path), m_baseName(""),m_lastError(""),m_config(NULL) + m_filePath(path), m_baseName(""),m_lastError(""),m_config(NULL) { m_parser=new CParser; - m_scheduleName=fileName; m_fileName=m_filePath+fileName; int pos=fileName.Find('.'); m_baseName=fileName.Mid(0,pos); @@ -113,7 +112,7 @@ CBaseSchedule::~CBaseSchedule() bool CBaseSchedule::readAll(bool check) { IRA::CString err; - if (m_scheduleName.GetLength()>MAX_SCHED_NAME_LEN) { + if (m_baseName.GetLength()>MAX_SCHED_NAME_LEN) { m_lastError.Format("Schedule name exceeds the maximum allowed characters of %d",MAX_SCHED_NAME_LEN); return false; } -- GitLab From 0cb9a21c63c0815d360feef1cb48c6a3b38002bd Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 21 Jun 2023 09:30:00 +0200 Subject: [PATCH 012/150] Fix #784, added `acsStop` to `discosdown` script (#798) --- Medicina/Misc/MedScripts/src/discosdown | 2 +- Noto/Misc/NotoScripts/src/discosdown | 2 +- SRT/Misc/SRTScripts/src/discosdown | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Medicina/Misc/MedScripts/src/discosdown b/Medicina/Misc/MedScripts/src/discosdown index 5da350bdd..327ed212d 100644 --- a/Medicina/Misc/MedScripts/src/discosdown +++ b/Medicina/Misc/MedScripts/src/discosdown @@ -32,4 +32,4 @@ #MASTERHOST will be replaced by make file @installation time with proper server address -ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && echo ....it is all over'" +ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && acsStop && echo ....it is all over'" diff --git a/Noto/Misc/NotoScripts/src/discosdown b/Noto/Misc/NotoScripts/src/discosdown index 56c7d8a2c..33cb727b8 100644 --- a/Noto/Misc/NotoScripts/src/discosdown +++ b/Noto/Misc/NotoScripts/src/discosdown @@ -32,4 +32,4 @@ #MASTERHOST will be replaced by make file @installation time with proper server address -ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && echo ....it is all over'" +ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && acsStop && echo ....it is all over'" diff --git a/SRT/Misc/SRTScripts/src/discosdown b/SRT/Misc/SRTScripts/src/discosdown index 8574fc21c..a077fc83e 100644 --- a/SRT/Misc/SRTScripts/src/discosdown +++ b/SRT/Misc/SRTScripts/src/discosdown @@ -32,5 +32,5 @@ #MASTERHOST will be replaced by make file @installation time with proper server address -ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && echo ....it is all over'" +ssh -f -l discos MASTERHOST "/bin/bash --login -c 'echo Shutting down.... && killACS && acsStop && echo ....it is all over'" -- GitLab From 2f6589a6c04e632970fe9e8c6661acabbb3702f4 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 7 Dec 2021 17:42:59 +0100 Subject: [PATCH 013/150] Fix #637, implemented the new SRT Minor Servo Command library (#645) The SRTMinorServoCommandLibrary class exposes a handful of static functions used to build the necessary commands to control the new SRT minor servos --- .../include/SRTMinorServoCommandLibrary.h | 72 ++++++++++++++++++ .../SRTMinorServoLibrary/src/Makefile | 8 +- .../src/SRTMinorServoCommandLibrary.cpp | 74 +++++++++++++++++++ 3 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h new file mode 100644 index 000000000..4eb606149 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -0,0 +1,72 @@ +#ifndef _SRTMINORSERVOCOMMANDLIBRARY_H +#define _SRTMINORSERVOCOMMANDLIBRARY_H + +/** + * SRTMinorServoCommandLibrary.h + * 2021/12/07 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <sstream> +#include <vector> +#include <acstimeEpochHelper.h> +#include <IRA> + +/** + * SRT Minor Servo Command Library + * + * This class features static functions used to build commands to be sent to the PON minor servo control unit of the Sardinia Radio Telescope + */ +class SRTMinorServoCommandLibrary +{ +public: + /** + * Builds the command used to ask the status of the MSCU or, eventually, a single servo + * @param servo_id the ID number of the eventual single servo to retrieve the status + * @return the composed message + */ + static std::string status(int servo_id = -1); + + /** + * Builds the command used to configure the telescope for an observation + * @param configuration the desired observing configuration + * @return the composed message + */ + static std::string setup(std::string configuration); + + /* + * Builds the command used to stow a single servo system to a given stow position + * @param servo_id the ID number of the single servo to be stowed + * @param stow_position the position to which the servo have to stow to + * @return the composed message + */ + static std::string stow(unsigned int servo_id, unsigned int stow_position = 0); + + /* + * Builds the command used to stop a single servo system + * @param servo_id the ID number of the single servo to be stopped + * @return the composed message + */ + static std::string stop(unsigned int servo_id); + + /* + * Builds the command used to move a single servo to a given set of coordinates + * @param servo_id the ID number of the single servo to be moved + * @param coordinates a vector containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string preset(unsigned int servo_id, std::vector<double> coordinates); + + /* + * Builds the command used to provide a single tracking set of coordinates to a single servo + * @param servo_id the ID number of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a vector containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory + * @return the composed message + */ + static std::string programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time = -1); +}; + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 494715771..ab438abf3 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -50,15 +50,17 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = hexlib.h +INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoLibrary +LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib -SRTMinorServoLibrary_LIBS = +SRTMinorServoLibrary_LIBS = +SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary +SRTMinorServoCommandLibrary_LIBS = IRALibrary # # <brief description of lllll library> diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp new file mode 100644 index 000000000..a3a937a93 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -0,0 +1,74 @@ +/** + * SRTMinorServoCommandLibrary.cpp + * 2021/12/07 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SRTMinorServoCommandLibrary.h" + +std::string SRTMinorServoCommandLibrary::status(int servo_id) +{ + std::stringstream command; + command << "status"; + if(servo_id >= 0) + { + command << "=" << servo_id; + } + command << std::endl; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::setup(std::string configuration) +{ + std::stringstream command; + command << "setup=" << configuration << std::endl; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::stow(unsigned int servo_id, unsigned int stow_position) +{ + std::stringstream command; + command << "stow=" << servo_id << "," << stow_position << std::endl; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::stop(unsigned int servo_id) +{ + std::stringstream command; + command << "stop=" << servo_id << std::endl; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::preset(unsigned int servo_id, std::vector<double> coordinates) +{ + std::stringstream command; + command << "preset=" << servo_id; + for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) + { + command << "," << coordinates[coordinate]; + } + command << std::endl; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time) +{ + std::stringstream command; + command << "programTrack=" << servo_id << "," << trajectory_id << "," << point_id << ","; + if(start_time > 0) + { + command << std::fixed << std::setprecision(6) << start_time; + } + else + { + command << "*"; + } + + command.unsetf(std::ios_base::floatfield); + for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) + { + command << "," << coordinates[coordinate]; + } + command << std::endl; + return command.str(); +} -- GitLab From 707cdd938d23db6c8a7b42a8038b84a46921cecf Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 13 Dec 2021 12:16:22 +0100 Subject: [PATCH 014/150] Fix #641, added some functions to `IRATools` in order to handle UNIX epochs (#648) --- .../IRALibrary/include/Definitions.h | 1 + .../Libraries/IRALibrary/include/IRATools.h | 18 ++++++++++++++++ Common/Libraries/IRALibrary/src/IRATools.cpp | 21 ++++++++++++++++--- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/Common/Libraries/IRALibrary/include/Definitions.h b/Common/Libraries/IRALibrary/include/Definitions.h index 8d496a1bd..8b7d0cf42 100644 --- a/Common/Libraries/IRALibrary/include/Definitions.h +++ b/Common/Libraries/IRALibrary/include/Definitions.h @@ -50,6 +50,7 @@ #define ABS(X,Y) (X>=Y)?X-Y:Y-X #define LIGHTSPEED_MS 299792458.0 +#define ACSTIME2UNIXEPOCHOFFSET 122192928000000000 /** * Creates an exception diff --git a/Common/Libraries/IRALibrary/include/IRATools.h b/Common/Libraries/IRALibrary/include/IRATools.h index 70c850113..56e7e1f8c 100644 --- a/Common/Libraries/IRALibrary/include/IRATools.h +++ b/Common/Libraries/IRALibrary/include/IRATools.h @@ -30,6 +30,7 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 12/08/2015 Function to check if a file exists or not */ /* Andrea Orlati(aorlati@ira.inaf.it) 19/11/2015 Function timeToStrExtended was added */ /* Andrea Orlati(aorlati@ira.inaf.it) 12/01/2016 reviewed the function skyFrequency in order to address also lower side band during down conversion */ +/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 07/12/2021 added the getUNIXEpoch, ACSTime2UNIXEpoch and UNIXEpoch2ACSTime functions */ #include <time.h> #include <sys/time.h> @@ -136,6 +137,23 @@ public: * @return the ACS::Time variable containing the current time */ static ACS::Time getACSTime(); + /** + * Call this function to get the current UNIX epoch + * @return a double containing the current UNIX epoch + */ + static double getUNIXEpoch(); + /** + * Call this function in order to get the UNIX Epoch of the given ACS::Time + * @param acs_time the given ACS::Time + * @return a double containing the UNIX epoch of the given ACS::Time + */ + static double ACSTime2UNIXEpoch(ACS::Time acs_time); + /** + * Call this function in order to get the ACS::Time of the given UNIX Epoch + * @param unix_epoch the given UNIX Epoch (double) + * @return a ACS::Time object of the given UNIX Epoch + */ + static ACS::Time UNIXEpoch2ACSTime(double unix_epoch); /** * This function performs the copy of an epoch * @param dst destination epoch diff --git a/Common/Libraries/IRALibrary/src/IRATools.cpp b/Common/Libraries/IRALibrary/src/IRATools.cpp index 6e1db34d0..ab893ab51 100644 --- a/Common/Libraries/IRALibrary/src/IRATools.cpp +++ b/Common/Libraries/IRALibrary/src/IRATools.cpp @@ -51,9 +51,24 @@ void CIRATools::getTime(TIMEVALUE& Now) ACS::Time CIRATools::getACSTime() { - TIMEVALUE now; - CIRATools::getTime(now); - return now.value().value; + TIMEVALUE now; + CIRATools::getTime(now); + return now.value().value; +} + +double CIRATools::getUNIXEpoch() +{ + return CIRATools::ACSTime2UNIXEpoch(CIRATools::getACSTime()); +} + +double CIRATools::ACSTime2UNIXEpoch(ACS::Time acs_time) +{ + return double(acs_time - ACSTIME2UNIXEPOCHOFFSET) / 10000000; +} + +ACS::Time CIRATools::UNIXEpoch2ACSTime(double unix_epoch) +{ + return ACS::Time(long(unix_epoch * 10000000) + ACSTIME2UNIXEPOCHOFFSET); } void CIRATools::timeCopy(TIMEVALUE& dst,const TIMEVALUE& src) -- GitLab From b3bbae004f630b6608c11ada3d6497e596045df6 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 17 Feb 2022 14:14:55 +0100 Subject: [PATCH 015/150] Fix #672, fix #637, some improvements for the SRTMinorServoCommandLibrary (#674) Fix #672, wrote all the commands in capital letters Fix #673, added the OFFSET command to the library Also, fixed changed the start_time parameter to be written as an integer --- .../include/SRTMinorServoCommandLibrary.h | 28 +++++++---- .../SRTMinorServoLibrary/src/Makefile | 12 +++-- .../src/SRTMinorServoCommandLibrary.cpp | 46 ++++++++++++------- .../src/TestSRTMinorServoCommandLibrary.cpp | 26 +++++++++++ 4 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 4eb606149..4a766b376 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -22,10 +22,10 @@ class SRTMinorServoCommandLibrary public: /** * Builds the command used to ask the status of the MSCU or, eventually, a single servo - * @param servo_id the ID number of the eventual single servo to retrieve the status + * @param servo_id the ID string of the eventual single servo to retrieve the status * @return the composed message */ - static std::string status(int servo_id = -1); + static std::string status(std::string servo_id = ""); /** * Builds the command used to configure the telescope for an observation @@ -36,37 +36,45 @@ public: /* * Builds the command used to stow a single servo system to a given stow position - * @param servo_id the ID number of the single servo to be stowed + * @param servo_id the ID string of the single servo to be stowed * @param stow_position the position to which the servo have to stow to * @return the composed message */ - static std::string stow(unsigned int servo_id, unsigned int stow_position = 0); + static std::string stow(std::string servo_id, unsigned int stow_position = 0); /* * Builds the command used to stop a single servo system - * @param servo_id the ID number of the single servo to be stopped + * @param servo_id the ID string of the single servo to be stopped * @return the composed message */ - static std::string stop(unsigned int servo_id); + static std::string stop(std::string servo_id); /* * Builds the command used to move a single servo to a given set of coordinates - * @param servo_id the ID number of the single servo to be moved + * @param servo_id the ID string of the single servo to be moved * @param coordinates a vector containing the N coordinates to be sent to the servo * @return the composed message */ - static std::string preset(unsigned int servo_id, std::vector<double> coordinates); + static std::string preset(std::string servo_id, std::vector<double> coordinates); /* * Builds the command used to provide a single tracking set of coordinates to a single servo - * @param servo_id the ID number of the single servo to send the command to + * @param servo_id the ID string of the single servo to send the command to * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to * @param point_id the ID number of the given set of coordinates inside the trajectory * @param coordinates a vector containing the N coordinates the servo have to move to at the given time * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory * @return the composed message */ - static std::string programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time = -1); + static std::string programTrack(std::string servo_id, long unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time = 0); + + /* + * Builds the command used to send a set of offset coordinates + * @param servo_id the ID string of the single servo to send the offsets to + * @param coordinates a vector containing the N offsets to be added the servo coordinates + * @return the composed message + */ + static std::string offset(std::string servo_id, std::vector<double> coordinates); }; #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index ab438abf3..fe6e38e67 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -23,7 +23,7 @@ USER_CFLAGS = -Wall # # additional include and library search paths # USER_INC = /usr/local/include -USER_LIB = -lgsl -lgslcblas -lm +USER_LIB = # # MODULE CODE DESCRIPTION: @@ -35,11 +35,15 @@ USER_LIB = -lgsl -lgslcblas -lm # C programs (public and local) # ----------------------------- EXECUTABLES = -EXECUTABLES_L = +EXECUTABLES_L = TestSRTMinorServoCommandLibrary + +TestSRTMinorServoCommandLibrary_OBJECTS = TestSRTMinorServoCommandLibrary +TestSRTMinorServoCommandLibrary_CFLAGS = -std=c++0x +TestSRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary IRALibrary # # <brief description of xxxxx program> -xxxxx_OBJECTS = +xxxxx_OBJECTS = xxxxx_LDFLAGS = xxxxx_LIBS = @@ -58,7 +62,7 @@ INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib -SRTMinorServoLibrary_LIBS = +SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary SRTMinorServoCommandLibrary_LIBS = IRALibrary diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index a3a937a93..cb2a99419 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -6,69 +6,81 @@ #include "SRTMinorServoCommandLibrary.h" -std::string SRTMinorServoCommandLibrary::status(int servo_id) +std::string SRTMinorServoCommandLibrary::status(std::string servo_id) { std::stringstream command; - command << "status"; - if(servo_id >= 0) + command << "STATUS"; + if(servo_id != "") { command << "=" << servo_id; } - command << std::endl; + command << "\r\n"; return command.str(); } std::string SRTMinorServoCommandLibrary::setup(std::string configuration) { std::stringstream command; - command << "setup=" << configuration << std::endl; + command << "SETUP=" << configuration << "\r\n"; return command.str(); } -std::string SRTMinorServoCommandLibrary::stow(unsigned int servo_id, unsigned int stow_position) +std::string SRTMinorServoCommandLibrary::stow(std::string servo_id, unsigned int stow_position) { std::stringstream command; - command << "stow=" << servo_id << "," << stow_position << std::endl; + command << "STOW=" << servo_id << "," << stow_position << "\r\n"; return command.str(); } -std::string SRTMinorServoCommandLibrary::stop(unsigned int servo_id) +std::string SRTMinorServoCommandLibrary::stop(std::string servo_id) { std::stringstream command; - command << "stop=" << servo_id << std::endl; + command << "STOP=" << servo_id << "\r\n"; return command.str(); } -std::string SRTMinorServoCommandLibrary::preset(unsigned int servo_id, std::vector<double> coordinates) +std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vector<double> coordinates) { std::stringstream command; - command << "preset=" << servo_id; + command << "PRESET=" << servo_id; for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { command << "," << coordinates[coordinate]; } - command << std::endl; + command << "\r\n"; return command.str(); } -std::string SRTMinorServoCommandLibrary::programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time) +std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, long unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time) { std::stringstream command; - command << "programTrack=" << servo_id << "," << trajectory_id << "," << point_id << ","; + command << "PROGRAMTRACK=" << servo_id << "," << trajectory_id << "," << point_id << ","; if(start_time > 0) { - command << std::fixed << std::setprecision(6) << start_time; + long unsigned int start_time_int = (long unsigned int)(start_time * 1000); + command << start_time_int; } else { command << "*"; } - command.unsetf(std::ios_base::floatfield); for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { command << "," << coordinates[coordinate]; } - command << std::endl; + command << "\r\n"; + return command.str(); +} + +std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vector<double> coordinates) +{ + std::stringstream command; + command << "OFFSET=" << servo_id; + for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) + { + command << "," << coordinates[coordinate]; + } + command << "\r\n"; return command.str(); } diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp new file mode 100644 index 000000000..c52f0e975 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp @@ -0,0 +1,26 @@ +#include <iostream> +#include "SRTMinorServoCommandLibrary.h" + +using namespace IRA; + +int main(void) +{ + // Skipping std::endl since the protocol adds a \n already + std::cout << SRTMinorServoCommandLibrary::status(); + std::cout << SRTMinorServoCommandLibrary::status("SRP"); + std::cout << SRTMinorServoCommandLibrary::setup("CCB"); + std::cout << SRTMinorServoCommandLibrary::stow("PFP"); + std::cout << SRTMinorServoCommandLibrary::stow("PFP", 1); + std::cout << SRTMinorServoCommandLibrary::stop("PFP"); + std::cout << SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}); + + double start_time = CIRATools::getUNIXEpoch() + 3; + long unsigned int trajectory_id = (long unsigned int)(start_time * 1000); + std::cout << SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time); + for(unsigned int i = 1; i < 10; i++) + { + std::cout << SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}); + } + + std::cout << SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}); +} -- GitLab From e35b20d0279cfa29ad43063171ae529c54634c49 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 24 Feb 2022 18:08:48 +0100 Subject: [PATCH 016/150] Fix #646, wrote a Python wrapper for the `SRTMinorServoCommandLibrary` (#650) * Fix #646, wrote a Python wrapper for the `SRTMinorServoCommandLibrary` * Fix #646, Added a python module that uses the wrapper library It has been commented in order to replicate the behavior in any future python wrapped C++ library * Fix #646, fixed a few small things regarding some include and the Makefile * Fix #646, added documentation about the Python wrapper Also, fixed some small inconsistencies with the new C++ implementation * Issue #637, removed an unneeded include statement --- .../include/PySRTMinorServoCommandLibrary.h | 85 +++++++++++++++++++ .../include/SRTMinorServoCommandLibrary.h | 4 +- .../SRTMinorServoLibrary/src/Makefile | 10 ++- .../src/PySRTMinorServoCommandLibrary.cpp | 26 ++++++ .../src/SRTMinorServoCommandLibrary/README.md | 18 ++++ .../SRTMinorServoCommandLibrary/__init__.py | 17 ++++ .../src/TestSRTMinorServoCommandLibrary.cpp | 1 + .../test/TestSRTMinorServoCommandLibrary.py | 61 +++++++++++++ 8 files changed, 215 insertions(+), 7 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py create mode 100644 SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h new file mode 100644 index 000000000..b7db8fc41 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h @@ -0,0 +1,85 @@ +#ifndef _PYSRTMINORSERVOCOMMANDLIBRARY_H +#define _PYSRTMINORSERVOCOMMANDLIBRARY_H + +/** + * PySRTMinorServoCommandLibrary.h + * 2021/12/13 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <boost/python.hpp> +#include "SRTMinorServoCommandLibrary.h" + + +/** + * SRT Minor Servo Command Library Python Wrapper + * + * This class wraps the SRTMinorServoCommandLibrary with boost_python in order to grant access to its static functions via Python + */ +class PySRTMinorServoCommandLibrary : public SRTMinorServoCommandLibrary +{ +public: + /* + * Builds the command used to move a single servo to a given set of coordinates + * This is an overload of the original SRTMinorServoCommandLibrary::preset function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string preset(std::string servo_id, boost::python::list& coordinates); + + /* + * Builds the command used to provide a single tracking set of coordinates to a single servo + * This is an overload of the original SRTMinorServoCommandLibrary::programTrack function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a Python list containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory + * @return the composed message + */ + static std::string programTrack(std::string servo_id, unsigned int trajectory_id, unsigned int point_id, boost::python::list& coordinates, double start_time=-1); + + /* + * Builds the command used to provide a set of offsets to a given servo + * This is an overload of the original SRTMinorServoCommandLibrary::offset function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string offset(std::string servo_id, boost::python::list& coordinates); + +private: + /* + * Converts the given Python list into a C++ std::vector object + * @param py_list the given Python list to be converted + * @return the composed C++ std::vector containing doubles + */ + static std::vector<double> pylist2cppvector(boost::python::list& py_list); +}; + +/* + * The following 3 lines of code allow the overloaded functions to ignore the optional parameter and use the default one defined in the original SRTMinorServoCommandLibrary header file + */ +BOOST_PYTHON_FUNCTION_OVERLOADS(status, PySRTMinorServoCommandLibrary::status, 0, 1) +BOOST_PYTHON_FUNCTION_OVERLOADS(stow, PySRTMinorServoCommandLibrary::stow, 1, 2) +BOOST_PYTHON_FUNCTION_OVERLOADS(programTrack, PySRTMinorServoCommandLibrary::programTrack, 4, 5) + +/* + * Python module definition. Since the original SRTMinorServoCommandLibrary only contains static functions, we write the Python module with static functions only, omitting the class + */ +BOOST_PYTHON_MODULE(libPySRTMinorServoCommandLibrary) +{ + using namespace boost::python; + def("status", &PySRTMinorServoCommandLibrary::status, status(arg("servo_id") = "")); + def("setup", &PySRTMinorServoCommandLibrary::setup); + def("stow", &PySRTMinorServoCommandLibrary::stow, stow(arg("stow_position") = 1)); + def("stop", &PySRTMinorServoCommandLibrary::stop); + def("preset", &PySRTMinorServoCommandLibrary::preset); + def("programTrack", &PySRTMinorServoCommandLibrary::programTrack, programTrack(arg("start_time") = -1)); + def("offset", &PySRTMinorServoCommandLibrary::offset); +} +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 4a766b376..db407ab37 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -9,8 +9,6 @@ #include <sstream> #include <vector> -#include <acstimeEpochHelper.h> -#include <IRA> /** * SRT Minor Servo Command Library @@ -40,7 +38,7 @@ public: * @param stow_position the position to which the servo have to stow to * @return the composed message */ - static std::string stow(std::string servo_id, unsigned int stow_position = 0); + static std::string stow(std::string servo_id, unsigned int stow_position = 1); /* * Builds the command used to stop a single servo system diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index fe6e38e67..70ee8cbf4 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -23,7 +23,7 @@ USER_CFLAGS = -Wall # # additional include and library search paths # USER_INC = /usr/local/include -USER_LIB = +# USER_LIB = # # MODULE CODE DESCRIPTION: @@ -59,12 +59,14 @@ INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary +LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary PySRTMinorServoCommandLibrary LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary -SRTMinorServoCommandLibrary_LIBS = IRALibrary +SRTMinorServoCommandLibrary_LIBS = +PySRTMinorServoCommandLibrary_OBJECTS = PySRTMinorServoCommandLibrary +PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python # # <brief description of lllll library> @@ -91,7 +93,7 @@ PY_SCRIPTS_L = PY_MODULES = PY_MODULES_L = -PY_PACKAGES = +PY_PACKAGES = SRTMinorServoCommandLibrary PY_PACKAGES_L = pppppp_MODULES = diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp new file mode 100644 index 000000000..6e06f7b44 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -0,0 +1,26 @@ +#include "PySRTMinorServoCommandLibrary.h" + +std::string PySRTMinorServoCommandLibrary::preset(std::string servo_id, boost::python::list& coordinates) +{ + return SRTMinorServoCommandLibrary::preset(servo_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates)); +} + +std::string PySRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned int trajectory_id, unsigned int point_id, boost::python::list& coordinates, double start_time) +{ + return SRTMinorServoCommandLibrary::programTrack(servo_id, trajectory_id, point_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates), start_time); +} + +std::string PySRTMinorServoCommandLibrary::offset(std::string servo_id, boost::python::list& coordinates) +{ + return SRTMinorServoCommandLibrary::offset(servo_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates)); +} + +std::vector<double> PySRTMinorServoCommandLibrary::pylist2cppvector(boost::python::list& py_list) +{ + std::vector<double> cpp_vector; + for(unsigned int i = 0; i < len(py_list); i++) + { + cpp_vector.push_back(boost::python::extract<double>(py_list[i])); + } + return cpp_vector; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md new file mode 100644 index 000000000..a1877c6f9 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md @@ -0,0 +1,18 @@ +# SRTMinorServoCommandLibrary Python wrapper + +In order to use the SRTMinorServoCommandLibrary python wrapper, it is sufficient to import the SRTCommandLibrary package like this: + +`import SRTMinorServoCommandLibrary` + +The all the functions of the library can be used in the following fashion: + +`SRTMinorServoCommandLibrary.status()` +`SRTMinorServoCommandLibrary.status('PFP')` +`SRTMinorServoCommandLibrary.setup('KKG')` +`SRTMinorServoCommandLibrary.stow('PFP')` +`SRTMinorServoCommandLibrary.stow('PFP', 2)` +`SRTMinorServoCommandLibrary.stop('SRP')` +`SRTMinorServoCommandLibrary.preset('SRP', [0, 1, 2, 3, 4, 5])` +`SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0, 1, 2, 3, 4, 5], <start_time>)` +`SRTMinorServoCommandLibrary.programTrack('PFP', 0, 1, [0, 1, 2, 3, 4, 5])` +`SRTMinorServoCommandLibrary.offset('SRP', [6, 7, 8, 9, 10, 11])` diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py new file mode 100644 index 000000000..87fbbcd2b --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py @@ -0,0 +1,17 @@ +# The following lines will look for the libPySRTMinorServoCommandLibrary in the +# $INTROOT/lib path instead of looking in the $INTROOT/lib/python/site-packages +# path. This is a workaround needed since the said library is a C++ shared +# library and it does not get automatically installed in the correct folder. +# By adding this workaround we're also able to rename the library with the +# module name SRTMinorServoCommandLibrary, trimming the 'libPy' header. I +# suggest to use this approach whenever a Python wrapper is needed. +import os +import sys +# Temporarily add the $INTROOT/lib path to Python libraries path +sys.path.append(os.path.join(os.environ['INTROOT'], 'lib')) +# Import the functions we need +from libPySRTMinorServoCommandLibrary import status, setup, stop, stow, preset, programTrack, offset +# Remove the added path and unused imported modules +sys.path.remove(os.path.join(os.environ['INTROOT'], 'lib')) +del os +del sys diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp index c52f0e975..ad4bd82b1 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp @@ -1,4 +1,5 @@ #include <iostream> +#include <IRA> #include "SRTMinorServoCommandLibrary.h" using namespace IRA; diff --git a/SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py b/SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py new file mode 100644 index 000000000..579dcc862 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python +import unittest +import time +import SRTMinorServoCommandLibrary + +class TestPySRTMinorServoCommandLibrary(unittest.TestCase): + + def test_status(self): + command = SRTMinorServoCommandLibrary.status() + expected_command = 'STATUS\r\n' + self.assertEqual(command, expected_command) + + def test_status_servo(self): + command = SRTMinorServoCommandLibrary.status('PFP') + expected_command = 'STATUS=PFP\r\n' + self.assertEqual(command, expected_command) + + def test_setup(self): + command = SRTMinorServoCommandLibrary.setup('KKG') + expected_command = 'SETUP=KKG\r\n' + self.assertEqual(command, expected_command) + + def test_stow(self): + command = SRTMinorServoCommandLibrary.stow('SRP') + expected_command = 'STOW=SRP,1\r\n' + self.assertEqual(command, expected_command) + + def test_stow_position(self): + command = SRTMinorServoCommandLibrary.stow('SRP', 2) + expected_command = 'STOW=SRP,2\r\n' + self.assertEqual(command, expected_command) + + def test_stop(self): + command = SRTMinorServoCommandLibrary.stop('SRP') + expected_command = 'STOP=SRP\r\n' + self.assertEqual(command, expected_command) + + def test_preset(self): + command = SRTMinorServoCommandLibrary.preset('PFP', [0.1, 1.1, 2.1]) + expected_command = 'PRESET=PFP,0.1,1.1,2.1\r\n' + self.assertEqual(command, expected_command) + + def test_programTrack(self): + now = time.time() + command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0.1, 1.1, 2.1], now) + now = int(now * 1000) + expected_command = 'PROGRAMTRACK=PFP,0,0,%d,0.1,1.1,2.1\r\n' % now + self.assertEqual(command, expected_command) + for i in range(1, 10): + command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, i, [0.1, 1.1, 2.1]) + expected_command = 'PROGRAMTRACK=PFP,0,%d,*,0.1,1.1,2.1\r\n' % i + self.assertEqual(command, expected_command) + + def test_offset(self): + command = SRTMinorServoCommandLibrary.offset('PFP', [0.1, 1.1, 2.1]) + expected_command = 'OFFSET=PFP,0.1,1.1,2.1\r\n' + self.assertEqual(command, expected_command) + + +if __name__ == '__main__': + unittest.main() -- GitLab From 08ac4a9bd60549ba5b5504204ac7712d8e5540ab Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 2 Mar 2022 12:46:16 +0100 Subject: [PATCH 017/150] Fix #684, fixed tests for the SRTMinorServoCommandLibrary and its python wrapper (#685) --- .../SRTMinorServoLibrary/src/Makefile | 8 +- .../src/TestSRTMinorServoCommandLibrary.cpp | 27 ------ .../SRTMinorServoLibrary/tests/.discos | 5 + .../SRTMinorServoLibrary/tests/Makefile | 91 +++++++++++++++++++ .../tests/external/__init__.py | 0 .../tests/functional/__init__.py | 0 .../pyunit/__init__.py} | 0 .../SRTMinorServoLibrary/tests/unittest.cpp | 53 +++++++++++ 8 files changed, 153 insertions(+), 31 deletions(-) delete mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/.discos create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/Makefile create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py rename SRT/Libraries/SRTMinorServoLibrary/{test/TestSRTMinorServoCommandLibrary.py => tests/pyunit/__init__.py} (100%) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 70ee8cbf4..bb2f9a3fd 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -35,11 +35,11 @@ USER_CFLAGS = -Wall # C programs (public and local) # ----------------------------- EXECUTABLES = -EXECUTABLES_L = TestSRTMinorServoCommandLibrary +EXECUTABLES_L = -TestSRTMinorServoCommandLibrary_OBJECTS = TestSRTMinorServoCommandLibrary -TestSRTMinorServoCommandLibrary_CFLAGS = -std=c++0x -TestSRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary IRALibrary +xxxxx_OBJECTS = +xxxxx_CFLAGS = +xxxxx_LIBS = # # <brief description of xxxxx program> diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp deleted file mode 100644 index ad4bd82b1..000000000 --- a/SRT/Libraries/SRTMinorServoLibrary/src/TestSRTMinorServoCommandLibrary.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include <iostream> -#include <IRA> -#include "SRTMinorServoCommandLibrary.h" - -using namespace IRA; - -int main(void) -{ - // Skipping std::endl since the protocol adds a \n already - std::cout << SRTMinorServoCommandLibrary::status(); - std::cout << SRTMinorServoCommandLibrary::status("SRP"); - std::cout << SRTMinorServoCommandLibrary::setup("CCB"); - std::cout << SRTMinorServoCommandLibrary::stow("PFP"); - std::cout << SRTMinorServoCommandLibrary::stow("PFP", 1); - std::cout << SRTMinorServoCommandLibrary::stop("PFP"); - std::cout << SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}); - - double start_time = CIRATools::getUNIXEpoch() + 3; - long unsigned int trajectory_id = (long unsigned int)(start_time * 1000); - std::cout << SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time); - for(unsigned int i = 1; i < 10; i++) - { - std::cout << SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}); - } - - std::cout << SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}); -} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/.discos b/SRT/Libraries/SRTMinorServoLibrary/tests/.discos new file mode 100644 index 000000000..1ada672a9 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/.discos @@ -0,0 +1,5 @@ +This file is here to differentiate between ACS style test directory and discos-style test. + +This is a discos test directory + +DO NOT REMOVE THIS FILE diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile new file mode 100644 index 000000000..b77516f29 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile @@ -0,0 +1,91 @@ +# CPP UNIT TESTING SETUP +#-------------- +GTEST_HOME=/usr/local/include/gtest +GMOCK_HOME=/usr/local/include/gmock +GTEST_LIBS=gtest gtest_main + +USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +EXECUTABLES_L = unittest +unittest_OBJECTS = unittest +unittest_CFLAGS = -std=c++0x +unittest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary +unittest_LDFLAGS = -lstdc++ -lpthread + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py similarity index 100% rename from SRT/Libraries/SRTMinorServoLibrary/test/TestSRTMinorServoCommandLibrary.py rename to SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp new file mode 100644 index 000000000..ed58cd27e --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp @@ -0,0 +1,53 @@ +#include "gtest/gtest.h" +#include <IRA> +#include "SRTMinorServoCommandLibrary.h" + +using namespace IRA; + +TEST(SRTMinorServoCommandLibraryTest, status) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::status(), "STATUS\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::status("PFP"), "STATUS=PFP\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, setup) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::setup("CCB"), "SETUP=CCB\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, stow) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::stow("PFP"), "STOW=PFP,1\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::stow("PFP", 2), "STOW=PFP,2\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, stop) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::stop("PFP"), "STOP=PFP\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, preset) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0,1,2,3,4,5\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, programTrack) +{ + double start_time = CIRATools::getUNIXEpoch() + 3; + unsigned long int trajectory_id = (unsigned long int)(start_time * 1000); + std::stringstream expected_answer; + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << trajectory_id << ",0,1,2,3,4,5\r\n"; + EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time), expected_answer.str()); + + for(unsigned int i = 1; i < 10; i++) + { + expected_answer.str(std::string()); + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0,1,2,3,4,5\r\n"; + EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}), expected_answer.str()); + } +} + +TEST(SRTMinorServoCommandLibraryTest, offset) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0,1,2,3,4,5\r\n"); +} -- GitLab From bf8593447603ec14db5d00d5537f6089ebacb0d0 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 2 Nov 2022 16:31:30 +0100 Subject: [PATCH 018/150] Fix #771, first implementation of parseAnswer and related tests (#772) * Issue #771, first implementation of parseAnswer and related tests Right now the function is not robust, it should check for errors in the answer format * Fix #771, complete implementation of `parseAnswer` function Tests were updated as well --- .../include/PySRTMinorServoCommandLibrary.h | 10 +++ .../include/SRTMinorServoCommandLibrary.h | 9 +++ .../SRTMinorServoLibrary/src/Makefile | 4 +- .../src/PySRTMinorServoCommandLibrary.cpp | 16 ++++ .../src/SRTMinorServoCommandLibrary.cpp | 74 +++++++++++++++++++ .../src/SRTMinorServoCommandLibrary/README.md | 1 + .../SRTMinorServoCommandLibrary/__init__.py | 2 +- .../SRTMinorServoLibrary/tests/Makefile | 2 +- .../tests/pyunit/__init__.py | 42 +++++++++++ .../SRTMinorServoLibrary/tests/unittest.cpp | 46 ++++++++++++ 10 files changed, 203 insertions(+), 3 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h index b7db8fc41..ee32b5877 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h @@ -52,6 +52,15 @@ public: */ static std::string offset(std::string servo_id, boost::python::list& coordinates); + /* + * Parses the received answer by splitting it and synamically populating a std::map + * This is an overload of the original SRTMinorServoCommandLibrary::parseAnswer function + * An overload was needed in order to replace the original std::map object with a boost::python::dict + * @param answer the string containing the answer received from the VBrain proxy + * @return a Python dictionary containing the answer splitted into keys and values. The keys are always strings, the values can either be int, double or strings. + */ + static boost::python::dict parseAnswer(std::string answer); + private: /* * Converts the given Python list into a C++ std::vector object @@ -81,5 +90,6 @@ BOOST_PYTHON_MODULE(libPySRTMinorServoCommandLibrary) def("preset", &PySRTMinorServoCommandLibrary::preset); def("programTrack", &PySRTMinorServoCommandLibrary::programTrack, programTrack(arg("start_time") = -1)); def("offset", &PySRTMinorServoCommandLibrary::offset); + def("parseAnswer", &PySRTMinorServoCommandLibrary::parseAnswer); } #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index db407ab37..f62adb794 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -9,6 +9,8 @@ #include <sstream> #include <vector> +#include <map> +#include <variant> /** * SRT Minor Servo Command Library @@ -73,6 +75,13 @@ public: * @return the composed message */ static std::string offset(std::string servo_id, std::vector<double> coordinates); + + /* + * Parses the received answer by splitting it and synamically populating a std::map + * @param answer the string containing the answer received from the VBrain proxy + * @return a std::map (dictionary) containing the answer splitted into keys and values. The keys are always std::string, the values can either be int, double or std::string. + */ + static std::map<std::string, std::variant<int, double, std::string> > parseAnswer(std::string answer); }; #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index bb2f9a3fd..2a1367b96 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -64,9 +64,11 @@ LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary +SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 SRTMinorServoCommandLibrary_LIBS = PySRTMinorServoCommandLibrary_OBJECTS = PySRTMinorServoCommandLibrary -PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python +PySRTMinorServoCommandLibrary_CFLAGS = -std=c++17 +PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python3 # # <brief description of lllll library> diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp index 6e06f7b44..a9688c6ee 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -24,3 +24,19 @@ std::vector<double> PySRTMinorServoCommandLibrary::pylist2cppvector(boost::pytho } return cpp_vector; } + +boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(std::string answer) +{ + auto args = SRTMinorServoCommandLibrary::parseAnswer(answer); + + boost::python::dict dictionary; + + typename std::map<std::string, std::variant<int, double, std::string> >::iterator iter; + + for(iter = args.begin(); iter != args.end(); ++iter) + { + std::visit([dictionary, iter](const auto& var) mutable { dictionary[iter->first] = var; }, iter->second); + } + + return dictionary; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index cb2a99419..c150421d8 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -6,6 +6,9 @@ #include "SRTMinorServoCommandLibrary.h" +#include <iostream> +#include <algorithm> + std::string SRTMinorServoCommandLibrary::status(std::string servo_id) { std::stringstream command; @@ -84,3 +87,74 @@ std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vecto command << "\r\n"; return command.str(); } + +std::map<std::string, std::variant<int, double, std::string> > SRTMinorServoCommandLibrary::parseAnswer(std::string answer) +{ + // First thing first, standardize the separators + std::replace(answer.begin(), answer.end(), ':', '='); + std::replace(answer.begin(), answer.end(), '|', ','); + + // Create the dictionary + std::map<std::string, std::variant<int, double, std::string> > args; + + std::stringstream ss(answer); + std::string token; + + try + { + // Loop through the tokens + while(std::getline(ss, token, ',')) + { + std::stringstream sss(token); + std::string key, value; + std::getline(sss, key, '='); + std::getline(sss, value); + + // No value, should be the timestamp + if(value.empty()) + { + if(args.find("TIMESTAMP") != args.end()) // Timestamp already found, some other value is missing its key + throw std::invalid_argument(std::string("Missing key for value " + value)); + + value = key; + key = "TIMESTAMP"; + } + + if(key == "OUTPUT") + { + if(value != "GOOD" && value != "BAD") + throw std::invalid_argument(std::string("Unrecognized OUTPUT value: " + value)); + + args[key] = value; + } + else if(key == "TIMESTAMP") + { + size_t last_char; + args[key] = std::stod(value, &last_char); + if(last_char != value.size()) + throw std::invalid_argument(std::string("Wrong TIMESTAMP value: " + value)); + } + else + { + size_t last_char; + args[key] = std::stoi(value, &last_char); + if(last_char != value.size()) + args[key] = std::stod(value); + } + } + + if(args.find("OUTPUT") == args.end()) + throw std::invalid_argument(std::string("Missing OUTPUT value!")); + else if(args.find("TIMESTAMP") == args.end()) + throw std::invalid_argument(std::string("Missing TIMESTAMP value!")); + } + catch(const std::invalid_argument& e) + { + // If we are not able to convert any of the values to the correct type, + // or if OUTPUT and/or TIMESTAMP is missing, we send back an empty dictionary. + // It will be the caller's duty to understand that something was wrong with the answer. + args.clear(); + } + + return args; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md index a1877c6f9..7eb57a028 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md @@ -16,3 +16,4 @@ The all the functions of the library can be used in the following fashion: `SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0, 1, 2, 3, 4, 5], <start_time>)` `SRTMinorServoCommandLibrary.programTrack('PFP', 0, 1, [0, 1, 2, 3, 4, 5])` `SRTMinorServoCommandLibrary.offset('SRP', [6, 7, 8, 9, 10, 11])` +`SRTMinorServoCommandLibrary.parseAnswer('OUTPUT:GOOD,1665757400.123456,PFP_ENABLED=5|PFP_STATUS=44|PFP_BLOCK=7|PFP_WARNING=47|PFP_ROTARY_AXIS_ENABLE=52|PFP_COORD_1=94')` diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py index 87fbbcd2b..f07ae391e 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py @@ -10,7 +10,7 @@ import sys # Temporarily add the $INTROOT/lib path to Python libraries path sys.path.append(os.path.join(os.environ['INTROOT'], 'lib')) # Import the functions we need -from libPySRTMinorServoCommandLibrary import status, setup, stop, stow, preset, programTrack, offset +from libPySRTMinorServoCommandLibrary import status, setup, stop, stow, preset, programTrack, offset, parseAnswer # Remove the added path and unused imported modules sys.path.remove(os.path.join(os.environ['INTROOT'], 'lib')) del os diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile index b77516f29..1af134e84 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile @@ -16,7 +16,7 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) EXECUTABLES_L = unittest unittest_OBJECTS = unittest -unittest_CFLAGS = -std=c++0x +unittest_CFLAGS = -std=c++17 unittest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary unittest_LDFLAGS = -lstdc++ -lpthread diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py index 579dcc862..03d61b9a7 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py @@ -56,6 +56,48 @@ class TestPySRTMinorServoCommandLibrary(unittest.TestCase): expected_command = 'OFFSET=PFP,0.1,1.1,2.1\r\n' self.assertEqual(command, expected_command) + def test_parseAnswer(self): + answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" + args = { + 'OUTPUT': 'GOOD', + 'TIMESTAMP': 1665743366.123456, + 'CURRENT_CONFIG': 21, + 'SIMULATION_ENABLED': 34, + 'PLC_TIME': 78, + 'PLC_VERSION': 69, + 'CONTROL': 14, + 'POWER': 38, + 'EMERGENCY': 69, + 'ENABLED': 51, + 'OPERATIVE_MODE': 94 + } + self.assertEqual( + SRTMinorServoCommandLibrary.parseAnswer(answer), + args + ) + + answer = "OUTPUT:GOOD,1665743366.654321" + args = { + "OUTPUT": "GOOD", + "TIMESTAMP": 1665743366.654321 + } + self.assertEqual( + SRTMinorServoCommandLibrary.parseAnswer(answer), + args + ) + + answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = "OUTPUT:123456" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = "OUTPUT:GOOD,12345,67890" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = "OUTPUT:GOOD,12345.ABCD" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + if __name__ == '__main__': unittest.main() diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp index ed58cd27e..78d74afbc 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp @@ -51,3 +51,49 @@ TEST(SRTMinorServoCommandLibraryTest, offset) { EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0,1,2,3,4,5\r\n"); } + +TEST(SRTMinorServoCommandLibraryTest, parseAnswer) +{ + // Minimal correct answer + std::string answer = "OUTPUT:GOOD,1665743366.654321"; + std::map<std::string, std::variant<int, double, std::string> > args; + args["OUTPUT"] = "GOOD"; + args["TIMESTAMP"] = 1665743366.654321; + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Complete correct answer + answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94"; + args.clear(); + args["OUTPUT"] = "GOOD"; + args["TIMESTAMP"] = 1665743366.123456; + args["CURRENT_CONFIG"] = 21; + args["SIMULATION_ENABLED"] = 34; + args["PLC_TIME"] = 78; + args["PLC_VERSION"] = 69; + args["CONTROL"] = 14; + args["POWER"] = 38; + args["EMERGENCY"] = 69; + args["ENABLED"] = 51; + args["OPERATIVE_MODE"] = 94; + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Missing timestamp + answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Wrong OUTPUT field + answer = "OUTPUT:123456"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Multiple values without key, cannot find the correct timestamp + answer = "OUTPUT:GOOD,12345,67890"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Wrong timestamp format + answer = "OUTPUT:GOOD,12345.ABCD"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); +} -- GitLab From 56330fd39234cc09d9e15ec77ea4246bf172a145 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 2 Dec 2022 14:20:19 +0000 Subject: [PATCH 019/150] Moved old SRT Minor Servos to another directory --- .../config/CDB/schemas/MinorServo.xsd | 0 .../doc/derotator/derotator.pdf | Bin .../doc/derotator/icd.pdf | Bin .../doc/derotator/icd_bus.pdf | Bin .../doc/derotator/sensor.pdf | Bin .../doc/minor_servo/gimbal.pdf | Bin .../doc/minor_servo/minor_servo_system.pdf | Bin .../include/DerotatorImpl.h | 0 .../include/DevIOASConfiguration.h | 0 .../include/DevIOActualSetup.h | 0 .../include/DevIOElevationTrack.h | 0 .../include/DevIOMotionInfo.h | 0 .../include/DevIOParking.h | 0 .../include/DevIOReady.h | 0 .../include/DevIOScanActive.h | 0 .../include/DevIOScanning.h | 0 .../include/DevIOStarting.h | 0 .../include/DevIOTracking.h | 0 .../include/MSBossConfiguration.h | 0 .../include/MSBossPublisher.h | 0 .../include/MSParameters.h | 0 .../include/MinorServoBossImpl.h | 0 .../include/ParkThread.h | 0 .../include/PdoubleSeqDevIO.h | 0 .../include/RequestDispatcher.h | 0 .../include/ScanThread.h | 0 .../include/SetupThread.h | 0 .../include/SocketListener.h | 0 .../include/SubsystemStatusDevIO.h | 0 .../include/SubsystemVStatusDevIO.h | 0 .../include/TrackingThread.h | 0 .../include/WPServoImpl.h | 0 .../include/WPServoSocket.h | 0 .../include/WPServoTalker.h | 0 .../include/WPStatusDevIO.h | 0 .../include/WPStatusUpdater.h | 0 .../include/WPUtils.h | 0 .../include/libCom.h | 0 .../include/macros.def | 0 .../include/utils.h | 0 .../src/MSBossConfiguration.cpp | 0 .../src/MSBossPublisher.cpp | 0 .../src/Makefile | 0 .../src/MinorServoBossImpl.cpp | 0 .../src/ParkThread.cpp | 0 .../src/RequestDispatcher.cpp | 0 .../src/ScanThread.cpp | 0 .../src/SetupThread.cpp | 0 .../src/SocketListener.cpp | 0 .../src/TrackingThread.cpp | 0 .../src/WPServoImpl.cpp | 0 .../src/WPServoSocket.cpp | 0 .../src/WPServoTalker.cpp | 0 .../src/WPStatusUpdater.cpp | 0 .../src/WPUtils.cpp | 0 .../src/libCom.cpp | 0 .../src/utils.cpp | 0 .../test/Makefile | 0 .../test/external/__init__.py | 0 .../test/functional/__init__.py | 0 .../test/functional/test_container_crash.py | 0 .../test/functional/test_failure.py | 0 .../test/functional/test_setup.py | 0 .../functional/test_setup_after_manual_movement.py | 0 .../test/no_auto/Makefile | 0 .../test/no_auto/commissioning/05082013.rst | 0 .../commissioning/SRP_linear/plot_positions.py | 0 .../SRP_linear/test_SRP_linear_movement.py | 0 .../test/no_auto/commissioning/TODO.rst | 0 .../test/no_auto/commissioning/clean_test.py | 0 .../test/no_auto/commissioning/command_input.py | 0 .../getAxesPosition/test_getAxesPosition.py | 0 .../getAxesPosition/test_getAxesPositionSpeed.py | 0 .../getFromHistory/test_getFromHistory.py | 0 .../offsets/testSRP_after_startFocusScan.py | 0 .../offsets/testSRP_before_startFocusScan.py | 0 .../test/no_auto/commissioning/parameters.py | 0 .../test/no_auto/commissioning/plot_positions.py | 0 .../commissioning/property/property_sampler.py | 0 .../sampling_time/test_getstatus_speed.py | 0 .../commissioning/scan/testSRP_checkFocusScan.py | 0 .../scan/testSRP_checkMinPositioninTime.py | 0 .../scan/testSRP_multiple_startFocusScan.py | 0 .../scan/testSRP_pointingDuringScan.py | 0 .../commissioning/scan/testSRP_startFocusScan.py | 0 .../commissioning/scan/testSRP_startFocusScanNow.py | 0 .../no_auto/commissioning/scan/testSRP_stopScan.py | 0 .../commissioning/timed_pos/timed_positions1SRP.py | 0 .../commissioning/timed_pos/timed_positions2PFP.py | 0 .../commissioning/timed_pos/timed_positions2SRP.py | 0 .../tracking/test_SRP_elevation_tracking.py | 0 .../test/no_auto/performances/get_axes_positions.py | 0 .../test/no_auto/real2virtual.c | 0 .../test/no_auto/send_command.py | 0 .../test/no_auto/simple_talk.py | 0 .../test/no_auto/srp_refsystems/hexlib/Makefile | 0 .../test/no_auto/srp_refsystems/hexlib/hexdata.txt | 0 .../test/no_auto/srp_refsystems/hexlib/hexlib.c | 0 .../test/no_auto/srp_refsystems/hexlib/hexlib.h | 0 .../no_auto/srp_refsystems/hexlib/real2virtual.c | 0 .../no_auto/srp_refsystems/hexlib/virtual2real.c | 0 .../test/no_auto/srp_refsystems/srp_refsystems.pyw | 0 .../test/no_auto/virtual2real.c | 0 .../test/no_auto/wpservo_test.py | 0 .../test/pyunit/__init__.py | 0 .../test/unittest.cpp | 0 106 files changed, 0 insertions(+), 0 deletions(-) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/config/CDB/schemas/MinorServo.xsd (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/derotator.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/icd.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/icd_bus.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/sensor.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/minor_servo/gimbal.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/minor_servo/minor_servo_system.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DerotatorImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOASConfiguration.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOActualSetup.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOElevationTrack.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOMotionInfo.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOParking.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOReady.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOScanActive.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOScanning.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOStarting.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOTracking.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSBossConfiguration.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSBossPublisher.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSParameters.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MinorServoBossImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/ParkThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/PdoubleSeqDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/RequestDispatcher.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/ScanThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SetupThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SocketListener.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SubsystemStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SubsystemVStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/TrackingThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoSocket.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoTalker.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPStatusUpdater.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPUtils.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/libCom.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/macros.def (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/utils.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MSBossConfiguration.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MSBossPublisher.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MinorServoBossImpl.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/ParkThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/RequestDispatcher.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/ScanThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/SetupThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/SocketListener.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/TrackingThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoImpl.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoSocket.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoTalker.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPStatusUpdater.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPUtils.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/libCom.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/utils.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/external/__init__.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/__init__.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_container_crash.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_failure.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_setup.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_setup_after_manual_movement.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/05082013.rst (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/SRP_linear/plot_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/TODO.rst (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/clean_test.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/command_input.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/parameters.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/plot_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/property/property_sampler.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_stopScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/performances/get_axes_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/real2virtual.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/send_command.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/simple_talk.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexdata.txt (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexlib.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexlib.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/real2virtual.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/virtual2real.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/srp_refsystems.pyw (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/virtual2real.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/wpservo_test.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/pyunit/__init__.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/unittest.cpp (100%) diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/MinorServo.xsd b/SRT/Servers/SRTOldMinorServo/config/CDB/schemas/MinorServo.xsd similarity index 100% rename from SRT/Servers/SRTMinorServo/config/CDB/schemas/MinorServo.xsd rename to SRT/Servers/SRTOldMinorServo/config/CDB/schemas/MinorServo.xsd diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/derotator.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/derotator.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/derotator.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/derotator.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/icd.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/icd.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/icd.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/icd.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/icd_bus.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/icd_bus.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/icd_bus.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/icd_bus.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/sensor.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/sensor.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/sensor.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/sensor.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/minor_servo/gimbal.pdf b/SRT/Servers/SRTOldMinorServo/doc/minor_servo/gimbal.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/minor_servo/gimbal.pdf rename to SRT/Servers/SRTOldMinorServo/doc/minor_servo/gimbal.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/minor_servo/minor_servo_system.pdf b/SRT/Servers/SRTOldMinorServo/doc/minor_servo/minor_servo_system.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/minor_servo/minor_servo_system.pdf rename to SRT/Servers/SRTOldMinorServo/doc/minor_servo/minor_servo_system.pdf diff --git a/SRT/Servers/SRTMinorServo/include/DerotatorImpl.h b/SRT/Servers/SRTOldMinorServo/include/DerotatorImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DerotatorImpl.h rename to SRT/Servers/SRTOldMinorServo/include/DerotatorImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOASConfiguration.h b/SRT/Servers/SRTOldMinorServo/include/DevIOASConfiguration.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOASConfiguration.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOASConfiguration.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOActualSetup.h b/SRT/Servers/SRTOldMinorServo/include/DevIOActualSetup.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOActualSetup.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOActualSetup.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOElevationTrack.h b/SRT/Servers/SRTOldMinorServo/include/DevIOElevationTrack.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOElevationTrack.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOElevationTrack.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOMotionInfo.h b/SRT/Servers/SRTOldMinorServo/include/DevIOMotionInfo.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOMotionInfo.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOMotionInfo.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOParking.h b/SRT/Servers/SRTOldMinorServo/include/DevIOParking.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOParking.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOParking.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOReady.h b/SRT/Servers/SRTOldMinorServo/include/DevIOReady.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOReady.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOReady.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOScanActive.h b/SRT/Servers/SRTOldMinorServo/include/DevIOScanActive.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOScanActive.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOScanActive.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOScanning.h b/SRT/Servers/SRTOldMinorServo/include/DevIOScanning.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOScanning.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOScanning.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOStarting.h b/SRT/Servers/SRTOldMinorServo/include/DevIOStarting.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOStarting.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOStarting.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOTracking.h b/SRT/Servers/SRTOldMinorServo/include/DevIOTracking.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOTracking.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOTracking.h diff --git a/SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h b/SRT/Servers/SRTOldMinorServo/include/MSBossConfiguration.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h rename to SRT/Servers/SRTOldMinorServo/include/MSBossConfiguration.h diff --git a/SRT/Servers/SRTMinorServo/include/MSBossPublisher.h b/SRT/Servers/SRTOldMinorServo/include/MSBossPublisher.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSBossPublisher.h rename to SRT/Servers/SRTOldMinorServo/include/MSBossPublisher.h diff --git a/SRT/Servers/SRTMinorServo/include/MSParameters.h b/SRT/Servers/SRTOldMinorServo/include/MSParameters.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSParameters.h rename to SRT/Servers/SRTOldMinorServo/include/MSParameters.h diff --git a/SRT/Servers/SRTMinorServo/include/MinorServoBossImpl.h b/SRT/Servers/SRTOldMinorServo/include/MinorServoBossImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MinorServoBossImpl.h rename to SRT/Servers/SRTOldMinorServo/include/MinorServoBossImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/ParkThread.h b/SRT/Servers/SRTOldMinorServo/include/ParkThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/ParkThread.h rename to SRT/Servers/SRTOldMinorServo/include/ParkThread.h diff --git a/SRT/Servers/SRTMinorServo/include/PdoubleSeqDevIO.h b/SRT/Servers/SRTOldMinorServo/include/PdoubleSeqDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/PdoubleSeqDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/PdoubleSeqDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/RequestDispatcher.h b/SRT/Servers/SRTOldMinorServo/include/RequestDispatcher.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/RequestDispatcher.h rename to SRT/Servers/SRTOldMinorServo/include/RequestDispatcher.h diff --git a/SRT/Servers/SRTMinorServo/include/ScanThread.h b/SRT/Servers/SRTOldMinorServo/include/ScanThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/ScanThread.h rename to SRT/Servers/SRTOldMinorServo/include/ScanThread.h diff --git a/SRT/Servers/SRTMinorServo/include/SetupThread.h b/SRT/Servers/SRTOldMinorServo/include/SetupThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SetupThread.h rename to SRT/Servers/SRTOldMinorServo/include/SetupThread.h diff --git a/SRT/Servers/SRTMinorServo/include/SocketListener.h b/SRT/Servers/SRTOldMinorServo/include/SocketListener.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SocketListener.h rename to SRT/Servers/SRTOldMinorServo/include/SocketListener.h diff --git a/SRT/Servers/SRTMinorServo/include/SubsystemStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/SubsystemStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SubsystemStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/SubsystemStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/SubsystemVStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/SubsystemVStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SubsystemVStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/SubsystemVStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/TrackingThread.h b/SRT/Servers/SRTOldMinorServo/include/TrackingThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/TrackingThread.h rename to SRT/Servers/SRTOldMinorServo/include/TrackingThread.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoImpl.h b/SRT/Servers/SRTOldMinorServo/include/WPServoImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoImpl.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoSocket.h b/SRT/Servers/SRTOldMinorServo/include/WPServoSocket.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoSocket.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoSocket.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoTalker.h b/SRT/Servers/SRTOldMinorServo/include/WPServoTalker.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoTalker.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoTalker.h diff --git a/SRT/Servers/SRTMinorServo/include/WPStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/WPStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/WPStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/WPStatusUpdater.h b/SRT/Servers/SRTOldMinorServo/include/WPStatusUpdater.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPStatusUpdater.h rename to SRT/Servers/SRTOldMinorServo/include/WPStatusUpdater.h diff --git a/SRT/Servers/SRTMinorServo/include/WPUtils.h b/SRT/Servers/SRTOldMinorServo/include/WPUtils.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPUtils.h rename to SRT/Servers/SRTOldMinorServo/include/WPUtils.h diff --git a/SRT/Servers/SRTMinorServo/include/libCom.h b/SRT/Servers/SRTOldMinorServo/include/libCom.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/libCom.h rename to SRT/Servers/SRTOldMinorServo/include/libCom.h diff --git a/SRT/Servers/SRTMinorServo/include/macros.def b/SRT/Servers/SRTOldMinorServo/include/macros.def similarity index 100% rename from SRT/Servers/SRTMinorServo/include/macros.def rename to SRT/Servers/SRTOldMinorServo/include/macros.def diff --git a/SRT/Servers/SRTMinorServo/include/utils.h b/SRT/Servers/SRTOldMinorServo/include/utils.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/utils.h rename to SRT/Servers/SRTOldMinorServo/include/utils.h diff --git a/SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp b/SRT/Servers/SRTOldMinorServo/src/MSBossConfiguration.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp rename to SRT/Servers/SRTOldMinorServo/src/MSBossConfiguration.cpp diff --git a/SRT/Servers/SRTMinorServo/src/MSBossPublisher.cpp b/SRT/Servers/SRTOldMinorServo/src/MSBossPublisher.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MSBossPublisher.cpp rename to SRT/Servers/SRTOldMinorServo/src/MSBossPublisher.cpp diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTOldMinorServo/src/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/src/Makefile rename to SRT/Servers/SRTOldMinorServo/src/Makefile diff --git a/SRT/Servers/SRTMinorServo/src/MinorServoBossImpl.cpp b/SRT/Servers/SRTOldMinorServo/src/MinorServoBossImpl.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MinorServoBossImpl.cpp rename to SRT/Servers/SRTOldMinorServo/src/MinorServoBossImpl.cpp diff --git a/SRT/Servers/SRTMinorServo/src/ParkThread.cpp b/SRT/Servers/SRTOldMinorServo/src/ParkThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/ParkThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/ParkThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/RequestDispatcher.cpp b/SRT/Servers/SRTOldMinorServo/src/RequestDispatcher.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/RequestDispatcher.cpp rename to SRT/Servers/SRTOldMinorServo/src/RequestDispatcher.cpp diff --git a/SRT/Servers/SRTMinorServo/src/ScanThread.cpp b/SRT/Servers/SRTOldMinorServo/src/ScanThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/ScanThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/ScanThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/SetupThread.cpp b/SRT/Servers/SRTOldMinorServo/src/SetupThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/SetupThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/SetupThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/SocketListener.cpp b/SRT/Servers/SRTOldMinorServo/src/SocketListener.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/SocketListener.cpp rename to SRT/Servers/SRTOldMinorServo/src/SocketListener.cpp diff --git a/SRT/Servers/SRTMinorServo/src/TrackingThread.cpp b/SRT/Servers/SRTOldMinorServo/src/TrackingThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/TrackingThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/TrackingThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoImpl.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoImpl.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoImpl.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoImpl.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoSocket.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoSocket.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoSocket.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoSocket.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoTalker.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoTalker.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoTalker.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoTalker.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPStatusUpdater.cpp b/SRT/Servers/SRTOldMinorServo/src/WPStatusUpdater.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPStatusUpdater.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPStatusUpdater.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPUtils.cpp b/SRT/Servers/SRTOldMinorServo/src/WPUtils.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPUtils.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPUtils.cpp diff --git a/SRT/Servers/SRTMinorServo/src/libCom.cpp b/SRT/Servers/SRTOldMinorServo/src/libCom.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/libCom.cpp rename to SRT/Servers/SRTOldMinorServo/src/libCom.cpp diff --git a/SRT/Servers/SRTMinorServo/src/utils.cpp b/SRT/Servers/SRTOldMinorServo/src/utils.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/utils.cpp rename to SRT/Servers/SRTOldMinorServo/src/utils.cpp diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTOldMinorServo/test/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/test/Makefile rename to SRT/Servers/SRTOldMinorServo/test/Makefile diff --git a/SRT/Servers/SRTMinorServo/test/external/__init__.py b/SRT/Servers/SRTOldMinorServo/test/external/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/external/__init__.py rename to SRT/Servers/SRTOldMinorServo/test/external/__init__.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/__init__.py b/SRT/Servers/SRTOldMinorServo/test/functional/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/__init__.py rename to SRT/Servers/SRTOldMinorServo/test/functional/__init__.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_container_crash.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_container_crash.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_container_crash.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_container_crash.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_failure.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_failure.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_failure.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_failure.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_setup.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_setup.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_setup.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_setup.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_setup_after_manual_movement.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_setup_after_manual_movement.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_setup_after_manual_movement.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_setup_after_manual_movement.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/Makefile b/SRT/Servers/SRTOldMinorServo/test/no_auto/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/Makefile rename to SRT/Servers/SRTOldMinorServo/test/no_auto/Makefile diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/05082013.rst b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/05082013.rst similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/05082013.rst rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/05082013.rst diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/TODO.rst b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/TODO.rst similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/TODO.rst rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/TODO.rst diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/clean_test.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/clean_test.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/clean_test.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/clean_test.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/command_input.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/command_input.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/command_input.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/command_input.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/parameters.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/parameters.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/parameters.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/parameters.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/plot_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/plot_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/plot_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/plot_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/property/property_sampler.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/property/property_sampler.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/property/property_sampler.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/property/property_sampler.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/performances/get_axes_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/performances/get_axes_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/performances/get_axes_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/performances/get_axes_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/real2virtual.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/real2virtual.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/real2virtual.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/real2virtual.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/send_command.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/send_command.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/send_command.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/send_command.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/simple_talk.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/simple_talk.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/simple_talk.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/simple_talk.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/virtual2real.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/virtual2real.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/virtual2real.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/virtual2real.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/wpservo_test.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/wpservo_test.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/wpservo_test.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/wpservo_test.py diff --git a/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py b/SRT/Servers/SRTOldMinorServo/test/pyunit/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/pyunit/__init__.py rename to SRT/Servers/SRTOldMinorServo/test/pyunit/__init__.py diff --git a/SRT/Servers/SRTMinorServo/test/unittest.cpp b/SRT/Servers/SRTOldMinorServo/test/unittest.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/test/unittest.cpp rename to SRT/Servers/SRTOldMinorServo/test/unittest.cpp -- GitLab From 24de1ddacf9b30edbe3944426b53e034bdca851b Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 24 Feb 2023 19:53:09 +0100 Subject: [PATCH 020/150] Fix #782, wrote a singleton socket class for SRT new minor servos (#783) * Fix #782, wrote a singleton socket class for SRT new minor servos This is the first implementation, connection checks for the socket should be added in order to avoid some disconnection errors * Fix #782, improved SRT MS singleton socket and tests The socket is now set to non-blocking, therefore some checks were added in order to accomodate to this change. Fixed a wrong behavior regarding the singleton design pattern. Previously it was possible to call the getInstance(ip_address, port) method multiple times with multiple addresses, but only the first instance was returned, meaning that only the first instance was actually opened to the correct IP address and port. Now if the user tries to open a second socket on a different IP address and port an exception is raised. --- .../include/SRTMinorServoCommandLibrary.h | 2 + .../src/SRTMinorServoCommandLibrary.cpp | 17 ++- .../include/SRTMinorServoSocket.h | 107 ++++++++++++++ SRT/Servers/SRTMinorServo/src/Makefile | 61 ++++++++ .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 130 ++++++++++++++++++ SRT/Servers/SRTMinorServo/test/Makefile | 91 ++++++++++++ .../SRTMinorServo/test/external/__init__.py | 0 .../SRTMinorServo/test/functional/__init__.py | 0 .../SRTMinorServo/test/pyunit/__init__.py | 0 SRT/Servers/SRTMinorServo/test/unittest.cpp | 126 +++++++++++++++++ 10 files changed, 525 insertions(+), 9 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h create mode 100644 SRT/Servers/SRTMinorServo/src/Makefile create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/Makefile create mode 100644 SRT/Servers/SRTMinorServo/test/external/__init__.py create mode 100644 SRT/Servers/SRTMinorServo/test/functional/__init__.py create mode 100644 SRT/Servers/SRTMinorServo/test/pyunit/__init__.py create mode 100644 SRT/Servers/SRTMinorServo/test/unittest.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index f62adb794..8a6631316 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -12,6 +12,8 @@ #include <map> #include <variant> +#define CLOSER std::string("\r\n") + /** * SRT Minor Servo Command Library * diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index c150421d8..81dc5404d 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -4,10 +4,9 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommandLibrary.h" - #include <iostream> #include <algorithm> +#include "SRTMinorServoCommandLibrary.h" std::string SRTMinorServoCommandLibrary::status(std::string servo_id) { @@ -17,28 +16,28 @@ std::string SRTMinorServoCommandLibrary::status(std::string servo_id) { command << "=" << servo_id; } - command << "\r\n"; + command << CLOSER; return command.str(); } std::string SRTMinorServoCommandLibrary::setup(std::string configuration) { std::stringstream command; - command << "SETUP=" << configuration << "\r\n"; + command << "SETUP=" << configuration << CLOSER; return command.str(); } std::string SRTMinorServoCommandLibrary::stow(std::string servo_id, unsigned int stow_position) { std::stringstream command; - command << "STOW=" << servo_id << "," << stow_position << "\r\n"; + command << "STOW=" << servo_id << "," << stow_position << CLOSER; return command.str(); } std::string SRTMinorServoCommandLibrary::stop(std::string servo_id) { std::stringstream command; - command << "STOP=" << servo_id << "\r\n"; + command << "STOP=" << servo_id << CLOSER; return command.str(); } @@ -50,7 +49,7 @@ std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vecto { command << "," << coordinates[coordinate]; } - command << "\r\n"; + command << CLOSER; return command.str(); } @@ -72,7 +71,7 @@ std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, long { command << "," << coordinates[coordinate]; } - command << "\r\n"; + command << CLOSER; return command.str(); } @@ -84,7 +83,7 @@ std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vecto { command << "," << coordinates[coordinate]; } - command << "\r\n"; + command << CLOSER; return command.str(); } diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h new file mode 100644 index 000000000..cfe5615c9 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -0,0 +1,107 @@ +#ifndef __SRTMINORSERVOSOCKET_H__ +#define __SRTMINORSERVOSOCKET_H__ + +/** + * SRTMinorServoSocketLibrary.h + * 2023/02/23 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <mutex> +#include <IRA> +#include <ComponentErrors.h> +#include "SRTMinorServoCommandLibrary.h" + +#define TIMEOUT 0.1 + +using namespace IRA; + +// Definition of test class. It is re-defined in the unittest.cpp file. +class SRTMinorServoSocketTest; + +class SRTMinorServoSocket: public IRA::CSocket +{ +// Declare the SRTMinorServoSocketTest class as friend in order for it to have access to destroyInstance for testing purposes +friend class SRTMinorServoSocketTest; + +public: + /** + * Calls the constructor and returns the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + * @return the singleton socket instance, connected to the given IP address and port, by reference + * @throw ComponentErrors::SocketErrorExImpl when the user calls this method a second time with different IP address and port arguments + */ + static SRTMinorServoSocket& getInstance(std::string ip_address, int port); + + /** + * Returns the previously generated singleton socket instance + * @return the singleton socket instance, by reference + * @throw ComponentErrors::SocketErrorExImpl when the user calls this method when the instance has not been generated yet + */ + static SRTMinorServoSocket& getInstance(); + + /** + * Sends a command on the socket and returns the received answer, if any + * @param command the command to be sent over the socket + * @return the received answer to the given command + */ + std::string sendCommand(std::string command); + + /** + * Copy constructor operator disabled by default + */ + SRTMinorServoSocket(SRTMinorServoSocket const&) = delete; + + /** + * Copy assignment operator disabled by default + */ + void operator=(SRTMinorServoSocket const&) = delete; + +protected: + /* + * Force the destruction of the singleton socket object. Only used in tests + */ + static void destroyInstance(); + +private: + /* + * Constructor method. Generates the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + */ + SRTMinorServoSocket(std::string ip_address, int port); + + /* + * Destructor method. Closes the socket upon destruction + */ + ~SRTMinorServoSocket(); + + /* + * Instance of the socket. By default it gets initialized to a null pointer + */ + inline static SRTMinorServoSocket* m_instance = nullptr; + + /* + * IP address and port of the socket. Being object members their values only exist when a singleton socket object is created correctly + */ + std::string m_address; + int m_port; + + /* + * Mutex object used to syncronize communications and prevent collisions between multiple threads + */ + std::mutex m_mutex; + + /* + * Socket status enumerator + */ + enum socket_status { READY, NOTRDY, BROKEN, TOUT, BUSY } m_socket_status; + + /* + * Socket error variable. This stores an error condition in case it arises + */ + IRA::CError m_error; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile new file mode 100644 index 000000000..6cca032de --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -0,0 +1,61 @@ +#******************************************** +#-------------------------------------------- +# Giuseppe Carboni <giuseppe.carboni@inaf.it> +#-------------------------------------------- +#******************************************** +# +# C programs (public and local) +# ----------------------------- +EXECUTABLES = +EXECUTABLES_L = + +# On-Line Database Files +# ---------------------- +CDB_SCHEMAS = + +# ---------------------------- +# Libraries (public and local) +# ---------------------------- +LIBRARIES = SRTMinorServoSocket + +SRTMinorServoSocket_OBJECTS = SRTMinorServoSocket +SRTMinorServoSocket_CFLAGS = -std=c++17 +SRTMinorServoSocket_LIBS = IRALibrary ComponentErrors SRTMinorServoCommandLibrary + + +# ---------------------------------------------------------------------- +# List of all possible C-sources (used to create automatic dependencies) +# ---------------------------------------------------------------------- +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + + +# ----------------- +# Include Standards +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + + +# TARGETS +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + @echo " . . . clean done" + +clean_dist : clean clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + +#___oOo___ diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp new file mode 100644 index 000000000..ad3a53ca2 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp @@ -0,0 +1,130 @@ +#include "SRTMinorServoSocket.h" + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port) +{ + if(m_instance != nullptr) + { + if(m_instance->m_address != ip_address && m_instance->m_port != port) + { + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::getInstance(std::string, int)"); + exImpl.addData("Reason", "Socket already open on '" + m_instance->m_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object."); + throw exImpl; + } + } + else + { + m_instance = new SRTMinorServoSocket(ip_address, port); + } + return *m_instance; +} + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance() +{ + if(m_instance == nullptr) + { + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::getInstance()"); + exImpl.addData("Reason", "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + throw exImpl; + } + return *m_instance; +} + +void SRTMinorServoSocket::destroyInstance() +{ + if(m_instance != nullptr) + { + delete m_instance; + m_instance = nullptr; + } +} + +SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port) +{ + if(Create(m_error, STREAM) == FAIL) + { + Close(m_error); + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); + exImpl.addData("Reason", "Cannot create the socket."); + throw exImpl; + } + + if(Connect(m_error, ip_address.c_str(), port) == FAIL) + { + m_socket_status = TOUT; + Close(m_error); + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); + exImpl.addData("Reason", "Cannot connect the socket."); + throw exImpl; + } + + if(setSockMode(m_error, NONBLOCKING) != SUCCESS) + { + m_socket_status = NOTRDY; + Close(m_error); + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); + exImpl.addData("Reason", "Cannot set the socket to non-blocking."); + throw exImpl; + } + + m_address = ip_address; + m_port = port; +} + +SRTMinorServoSocket::~SRTMinorServoSocket() +{ + std::lock_guard<std::mutex> guard(m_mutex); + Close(m_error); +} + +std::string SRTMinorServoSocket::sendCommand(std::string command) +{ + std::lock_guard<std::mutex> guard(m_mutex); + + double start_time = CIRATools::getUNIXEpoch(); + size_t sent_bytes = 0; + + while(sent_bytes < command.size()) + { + size_t sent_now = Send(m_error, command.substr(sent_bytes, command.size() - sent_bytes).c_str(), command.size() - sent_bytes); + sent_bytes += sent_now; + + if(sent_now > 0) + { + // Reset the timer + start_time = CIRATools::getUNIXEpoch(); + } + else if(CIRATools::getUNIXEpoch() - start_time >= TIMEOUT) + { + m_socket_status = TOUT; + Close(m_error); + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); + exImpl.addData("Reason", "Timeout when sending command."); + throw exImpl; + } + } + + start_time = CIRATools::getUNIXEpoch(); + std::string answer; + + while(answer.size() < 2 || !(answer.rfind(CLOSER) == answer.size() - CLOSER.size())) + { + char buf; + if(Receive(m_error, &buf, 1) == 1) + { + answer += buf; + + // Reset the timer + start_time = CIRATools::getUNIXEpoch(); + } + else if(CIRATools::getUNIXEpoch() - start_time >= TIMEOUT) + { + m_socket_status = TOUT; + Close(m_error); + ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); + exImpl.addData("Reason", "Timeout when receiving answer."); + throw exImpl; + } + } + + return answer; +} diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile new file mode 100644 index 000000000..6419faf13 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -0,0 +1,91 @@ +# CPP UNIT TESTING SETUP +#-------------- +GTEST_HOME=/usr/local/include/gtest +GMOCK_HOME=/usr/local/include/gmock +GTEST_LIBS=gtest gtest_main + +USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +EXECUTABLES_L = unittest +unittest_OBJECTS = unittest +unittest_CFLAGS = -std=c++17 +unittest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary +unittest_LDFLAGS = -lstdc++ -lpthread + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Servers/SRTMinorServo/test/external/__init__.py b/SRT/Servers/SRTMinorServo/test/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTMinorServo/test/functional/__init__.py b/SRT/Servers/SRTMinorServo/test/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py b/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTMinorServo/test/unittest.cpp b/SRT/Servers/SRTMinorServo/test/unittest.cpp new file mode 100644 index 000000000..de7bd9c37 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/unittest.cpp @@ -0,0 +1,126 @@ +/* These tests require a running simulator and were designed * + * to test the thread-safeness and singleton design pattern of the * + * SRTMinorServoSocket class. */ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 + +class SRTMinorServoSocketTest : public ::testing::Test +{ +protected: + std::vector<std::string> commands; + std::vector<std::thread> threads; + + void SetUp() override + { + std::cout << std::fixed << std::setprecision(6); + + // The following commands yield an articulated answer in return + commands.push_back(SRTMinorServoCommandLibrary::status()); + commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); + commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); + } + + void TearDown() override + { + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); + + SRTMinorServoSocket::destroyInstance(); + } +}; + +// This test passes the already created instance to some threads +TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + for(auto command : this->commands) + { + this->threads.push_back(std::thread([command, &socket]() + { + auto args = SRTMinorServoCommandLibrary::parseAnswer(socket.sendCommand(command)); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); + })); + } +} + +// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it +TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) +{ + for(auto command : this->commands) + { + this->threads.push_back(std::thread([command]() + { + auto args = SRTMinorServoCommandLibrary::parseAnswer(SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command)); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); + })); + } +} + +// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails +TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) +{ + // First let's open the socket with the chosen ADDRESS and PORT + SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + try + { + // Let's try to instance another socket on a different port + SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + } +} + +// This test tries to retrieve an instance which has not been generated yet, failing +TEST_F(SRTMinorServoSocketTest, try_open_without_args) +{ + try + { + SRTMinorServoSocket::getInstance(); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); + } +} + +// This test tries to generate an instance using a pair of address and port on which the socket fails to open +TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) +{ + try + { + // The exception is raised only if the given port is wrong + SRTMinorServoSocket::getInstance(ADDRESS, 0); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Cannot connect the socket.").c_str()); + } +} -- GitLab From ade9e053684258b729a85c08773f2c123a684937 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 23 Mar 2023 09:18:08 +0000 Subject: [PATCH 021/150] Updated the SRTMinorServoCommandLibrary --- .../include/SRTMinorServoCommandLibrary.h | 4 +++- .../src/PySRTMinorServoCommandLibrary.cpp | 2 +- .../src/SRTMinorServoCommandLibrary.cpp | 8 +++++--- .../SRTMinorServoLibrary/tests/unittest.cpp | 14 +++++++------- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 8a6631316..603263fbf 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -14,6 +14,8 @@ #define CLOSER std::string("\r\n") +using SRTMinorServoAnswerMap = std::map<std::string, std::variant<int, double, std::string> >; + /** * SRT Minor Servo Command Library * @@ -83,7 +85,7 @@ public: * @param answer the string containing the answer received from the VBrain proxy * @return a std::map (dictionary) containing the answer splitted into keys and values. The keys are always std::string, the values can either be int, double or std::string. */ - static std::map<std::string, std::variant<int, double, std::string> > parseAnswer(std::string answer); + static SRTMinorServoAnswerMap parseAnswer(std::string answer); }; #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp index a9688c6ee..ed66a79ba 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -31,7 +31,7 @@ boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(std::string answe boost::python::dict dictionary; - typename std::map<std::string, std::variant<int, double, std::string> >::iterator iter; + SRTMinorServoAnswerMap::iterator iter; for(iter = args.begin(); iter != args.end(); ++iter) { diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index 81dc5404d..53cdd8302 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -87,14 +87,16 @@ std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vecto return command.str(); } -std::map<std::string, std::variant<int, double, std::string> > SRTMinorServoCommandLibrary::parseAnswer(std::string answer) +SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answer) { - // First thing first, standardize the separators + // First thing first, standardize the separators and remove the newline/carriage return characters std::replace(answer.begin(), answer.end(), ':', '='); std::replace(answer.begin(), answer.end(), '|', ','); + answer.erase(std::remove(answer.begin(), answer.end(), '\n'), answer.end()); + answer.erase(std::remove(answer.begin(), answer.end(), '\r'), answer.end()); // Create the dictionary - std::map<std::string, std::variant<int, double, std::string> > args; + SRTMinorServoAnswerMap args; std::stringstream ss(answer); std::string token; diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp index 78d74afbc..9ebdcf668 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp @@ -55,14 +55,14 @@ TEST(SRTMinorServoCommandLibraryTest, offset) TEST(SRTMinorServoCommandLibraryTest, parseAnswer) { // Minimal correct answer - std::string answer = "OUTPUT:GOOD,1665743366.654321"; - std::map<std::string, std::variant<int, double, std::string> > args; + std::string answer = "OUTPUT:GOOD,1665743366.654321\r\n"; + SRTMinorServoAnswerMap args; args["OUTPUT"] = "GOOD"; args["TIMESTAMP"] = 1665743366.654321; EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Complete correct answer - answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94"; + answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; args.clear(); args["OUTPUT"] = "GOOD"; args["TIMESTAMP"] = 1665743366.123456; @@ -78,22 +78,22 @@ TEST(SRTMinorServoCommandLibraryTest, parseAnswer) EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Missing timestamp - answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94"; + answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; args.clear(); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Wrong OUTPUT field - answer = "OUTPUT:123456"; + answer = "OUTPUT:123456\r\n"; args.clear(); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Multiple values without key, cannot find the correct timestamp - answer = "OUTPUT:GOOD,12345,67890"; + answer = "OUTPUT:GOOD,12345,67890\r\n"; args.clear(); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Wrong timestamp format - answer = "OUTPUT:GOOD,12345.ABCD"; + answer = "OUTPUT:GOOD,12345.ABCD\r\n"; args.clear(); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); } -- GitLab From 749441dd548088c5822e3b41df6cceb1823d0105 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 24 Mar 2023 12:54:52 +0000 Subject: [PATCH 022/150] Added a test for SRP Program Track --- .../include/SRTMinorServoSocket.h | 24 +- .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 21 +- SRT/Servers/SRTMinorServo/test/Makefile | 19 +- .../test/SRPProgramTrackTest.cpp | 213 ++++++++++++++++++ .../test/SRTMinorServoSocketTest.cpp | 187 +++++++++++++++ SRT/Servers/SRTMinorServo/test/unittest.cpp | 126 ----------- 6 files changed, 444 insertions(+), 146 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp delete mode 100644 SRT/Servers/SRTMinorServo/test/unittest.cpp diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index cfe5615c9..fcf71eb12 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -2,7 +2,7 @@ #define __SRTMINORSERVOSOCKET_H__ /** - * SRTMinorServoSocketLibrary.h + * SRTMinorServoSocket.h * 2023/02/23 * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ @@ -16,23 +16,22 @@ using namespace IRA; -// Definition of test class. It is re-defined in the unittest.cpp file. -class SRTMinorServoSocketTest; - class SRTMinorServoSocket: public IRA::CSocket { // Declare the SRTMinorServoSocketTest class as friend in order for it to have access to destroyInstance for testing purposes friend class SRTMinorServoSocketTest; +friend class SRPProgramTrackTest; public: /** * Calls the constructor and returns the singleton socket instance * @param ip_address the IP address to which the socket will connect * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed * @return the singleton socket instance, connected to the given IP address and port, by reference * @throw ComponentErrors::SocketErrorExImpl when the user calls this method a second time with different IP address and port arguments */ - static SRTMinorServoSocket& getInstance(std::string ip_address, int port); + static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=TIMEOUT); /** * Returns the previously generated singleton socket instance @@ -46,7 +45,7 @@ public: * @param command the command to be sent over the socket * @return the received answer to the given command */ - std::string sendCommand(std::string command); + SRTMinorServoAnswerMap sendCommand(std::string command); /** * Copy constructor operator disabled by default @@ -69,8 +68,9 @@ private: * Constructor method. Generates the singleton socket instance * @param ip_address the IP address to which the socket will connect * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed */ - SRTMinorServoSocket(std::string ip_address, int port); + SRTMinorServoSocket(std::string ip_address, int port, double timeout); /* * Destructor method. Closes the socket upon destruction @@ -88,11 +88,21 @@ private: std::string m_address; int m_port; + /* + * Timeout for communication operations + */ + double m_timeout; + /* * Mutex object used to syncronize communications and prevent collisions between multiple threads */ std::mutex m_mutex; + /* + * Library mutex, used only to synchronize the getInstance methods + */ + static std::mutex c_mutex; + /* * Socket status enumerator */ diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp index ad3a53ca2..acdebca2a 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp @@ -1,7 +1,11 @@ #include "SRTMinorServoSocket.h" -SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port) +std::mutex SRTMinorServoSocket::c_mutex; + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port, double timeout) { + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + if(m_instance != nullptr) { if(m_instance->m_address != ip_address && m_instance->m_port != port) @@ -13,13 +17,15 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, in } else { - m_instance = new SRTMinorServoSocket(ip_address, port); + m_instance = new SRTMinorServoSocket(ip_address, port, timeout); } return *m_instance; } SRTMinorServoSocket& SRTMinorServoSocket::getInstance() { + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + if(m_instance == nullptr) { ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::getInstance()"); @@ -38,7 +44,7 @@ void SRTMinorServoSocket::destroyInstance() } } -SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port) +SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, double timeout) { if(Create(m_error, STREAM) == FAIL) { @@ -68,6 +74,7 @@ SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port) m_address = ip_address; m_port = port; + m_timeout = timeout; } SRTMinorServoSocket::~SRTMinorServoSocket() @@ -76,7 +83,7 @@ SRTMinorServoSocket::~SRTMinorServoSocket() Close(m_error); } -std::string SRTMinorServoSocket::sendCommand(std::string command) +SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) { std::lock_guard<std::mutex> guard(m_mutex); @@ -93,7 +100,7 @@ std::string SRTMinorServoSocket::sendCommand(std::string command) // Reset the timer start_time = CIRATools::getUNIXEpoch(); } - else if(CIRATools::getUNIXEpoch() - start_time >= TIMEOUT) + else if(CIRATools::getUNIXEpoch() - start_time >= m_timeout) { m_socket_status = TOUT; Close(m_error); @@ -116,7 +123,7 @@ std::string SRTMinorServoSocket::sendCommand(std::string command) // Reset the timer start_time = CIRATools::getUNIXEpoch(); } - else if(CIRATools::getUNIXEpoch() - start_time >= TIMEOUT) + else if(CIRATools::getUNIXEpoch() - start_time >= m_timeout) { m_socket_status = TOUT; Close(m_error); @@ -126,5 +133,5 @@ std::string SRTMinorServoSocket::sendCommand(std::string command) } } - return answer; + return SRTMinorServoCommandLibrary::parseAnswer(answer); } diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 6419faf13..9d3a94f5d 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,11 +14,17 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = unittest -unittest_OBJECTS = unittest -unittest_CFLAGS = -std=c++17 -unittest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary -unittest_LDFLAGS = -lstdc++ -lpthread +EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest + +SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest +SRTMinorServoSocketTest_CFLAGS = -std=c++17 +SRTMinorServoSocketTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors +SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread + +SRPProgramTrackTest_OBJECTS = SRPProgramTrackTest +SRPProgramTrackTest_CFLAGS = -std=c++17 +SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors +SRPProgramTrackTest_LDFLAGS = -lstdc++ -lpthread # END OF CUSTOMIZATION # do not edit below this line @@ -40,7 +46,8 @@ endif do_unit: all @echo "running cpp unit tests" - ../bin/unittest --gtest_output=xml:results/cppunittest.xml + ../bin/SRTMinorServoSocketTest --gtest_output=xml:results/cppSRTMinorServoSocketTest.xml + ../bin/SRPProgramTrackTest --gtest_output=xml:results/cppSRPProgramTrackTest.xml do_pyunit: @echo "running python unit tests" diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp new file mode 100644 index 000000000..f514cb821 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -0,0 +1,213 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 +#define TIMEOUT 0.1 +#define NOISE_THRESHOLD 0.2 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 5 + + +std::atomic<bool> terminate = false; + +void sigintHandler(int sig_num) +{ + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; +} + +std::string serializeStatus(SRTMinorServoAnswerMap map) +{ + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + stream << std::get<double>(map["TIMESTAMP"]); + stream << "\t" << std::get<double>(map["SRP_TX"]); + stream << "\t" << std::get<double>(map["SRP_TY"]); + stream << "\t" << std::get<double>(map["SRP_TZ"]); + stream << "\t" << std::get<double>(map["SRP_RX"]); + stream << "\t" << std::get<double>(map["SRP_RY"]); + stream << "\t" << std::get<double>(map["SRP_RZ"]); + return stream.str(); +} + +std::string serializeProgramTrack(double timestamp, std::vector<double> coordinates) +{ + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + { + stream << "\t" << coordinate; + } + return stream.str(); +} + +class SRPProgramTrackTest : public ::testing::Test +{ +protected: + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentCoordinates; + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TX"])); + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TY"])); + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TZ"])); + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RX"])); + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RY"])); + currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RZ"])); + return currentCoordinates; + } + + static bool compareCoordinates(std::vector<double> first, std::vector<double> second) + { + if(first.size() != second.size()) + { + return false; + } + + for(size_t i = 0; i < first.size(); i++) + { + if(first[i] != second[i]) + { + return false; + } + } + + return true; + } + + static void addNoiseToCoordinates(std::vector<double> &coordinates) + { + for(size_t i = 0; i < coordinates.size(); i++) + { + coordinates[i] += std::max(-1, std::min(1, rand() % 5 - 2)) * (double(rand() % 100) / 100) * NOISE_THRESHOLD; + } + } + + void SetUp() override + { + signal(SIGINT, sigintHandler); + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, TIMEOUT); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + } + else + { + FAIL() << "Unexpected failure." << std::endl; + } + } + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + } +}; + +TEST_F(SRPProgramTrackTest, z_axis_translation) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap::iterator iterator; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<int>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<int>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<int>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<int>(MSStatus["ENABLED"]), 1); + + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<int>(SRPStatus["SRP_ENABLED"]), 1); + EXPECT_EQ(std::get<int>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<int>(SRPStatus["SRP_BLOCK"]), 2); + + /*for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + + std::vector<double> startingCoordinates = {0, 0, 0, 0, 0, 0}; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<int>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + } + while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); + + std::thread t([]() + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream statusFile; + statusFile.open("SRPStatus.txt", ios::out); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + statusFile << serializeStatus(SRPStatus) << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + + statusFile.close(); + }); + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<int>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open("SRPTrajectory.txt", ios::out); + programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + std::cout << next_expected_time << std::endl; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + addNoiseToCoordinates(programTrackCoordinates); + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + programTrackFile << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + t.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp b/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp new file mode 100644 index 000000000..72399f6f7 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp @@ -0,0 +1,187 @@ +/* These tests require a running simulator and were designed * + * to test the thread-safeness and singleton design pattern of the * + * SRTMinorServoSocket class. */ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 + + +class SRTMinorServoSocketTest : public ::testing::Test +{ +protected: + std::vector<std::string> commands; + std::vector<std::thread> threads; + + void SetUp() override + { + std::cout << std::fixed << std::setprecision(6); + + // The following commands yield an articulated answer in return + commands.push_back(SRTMinorServoCommandLibrary::status()); + commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); + commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + } +}; + +// This test passes the already created instance to some threads +TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) +{ + try + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + for(auto command : this->commands) + { + this->threads.push_back(std::thread([command, &socket]() + { + auto args = socket.sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); + })); + } + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + } + else + { + FAIL() << "Unexpected failure." << std::endl; + } + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); +} + +// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it +TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) +{ + std::string error = ""; + + for(auto command : this->commands) + { + std::mutex mutex; + + this->threads.push_back(std::thread([command, &error, &mutex]() + { + try + { + auto args = SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + std::lock_guard<std::mutex> guard(mutex); + + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + { + error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; + } + else + { + error = "Unexpected failure."; + } + } + })); + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); + + if(error != "") + { + FAIL() << error << std::endl; + } +} + +// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails +TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) +{ + try + { + // First let's open the socket with the chosen ADDRESS and PORT + SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + // Let's try to instance another socket on a different port + SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + } + } +} + +// This test tries to retrieve an instance which has not been generated yet, failing +TEST_F(SRTMinorServoSocketTest, try_open_without_args) +{ + try + { + SRTMinorServoSocket::getInstance(); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); + } + } +} + +// This test tries to generate an instance using a pair of address and port on which the socket fails to open +TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) +{ + try + { + // The exception is raised only if the given port is wrong + SRTMinorServoSocket::getInstance(ADDRESS, 0); + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + // Check if we got the correct exception + EXPECT_EQ(ex.getData("Reason"), std::string("Cannot connect the socket.").c_str()); + } +} diff --git a/SRT/Servers/SRTMinorServo/test/unittest.cpp b/SRT/Servers/SRTMinorServo/test/unittest.cpp deleted file mode 100644 index de7bd9c37..000000000 --- a/SRT/Servers/SRTMinorServo/test/unittest.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* These tests require a running simulator and were designed * - * to test the thread-safeness and singleton design pattern of the * - * SRTMinorServoSocket class. */ -#include "gtest/gtest.h" -#include <iostream> -#include <thread> -#include "SRTMinorServoSocket.h" -#include "SRTMinorServoCommandLibrary.h" - -// This address and port are the ones set in the simulator -// In order for the test to properly be executed, the simulator should be launched with the following command: -// discos-simulator -s minor_servo start & -#define ADDRESS std::string("127.0.0.1") -#define PORT 12800 - -class SRTMinorServoSocketTest : public ::testing::Test -{ -protected: - std::vector<std::string> commands; - std::vector<std::thread> threads; - - void SetUp() override - { - std::cout << std::fixed << std::setprecision(6); - - // The following commands yield an articulated answer in return - commands.push_back(SRTMinorServoCommandLibrary::status()); - commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); - commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); - commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); - commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); - } - - void TearDown() override - { - std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) - { - t.join(); - }); - - SRTMinorServoSocket::destroyInstance(); - } -}; - -// This test passes the already created instance to some threads -TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) -{ - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); - - for(auto command : this->commands) - { - this->threads.push_back(std::thread([command, &socket]() - { - auto args = SRTMinorServoCommandLibrary::parseAnswer(socket.sendCommand(command)); - // By testing if the command was received correctly we also test if the socket is working properly - // and if the answer was received correctly without being interleaved with the answer from another thread - EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); - })); - } -} - -// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it -TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) -{ - for(auto command : this->commands) - { - this->threads.push_back(std::thread([command]() - { - auto args = SRTMinorServoCommandLibrary::parseAnswer(SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command)); - // By testing if the command was received correctly we also test if the socket is working properly - // and if the answer was received correctly without being interleaved with the answer from another thread - EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); - })); - } -} - -// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails -TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) -{ - // First let's open the socket with the chosen ADDRESS and PORT - SRTMinorServoSocket::getInstance(ADDRESS, PORT); - - try - { - // Let's try to instance another socket on a different port - SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); - } -} - -// This test tries to retrieve an instance which has not been generated yet, failing -TEST_F(SRTMinorServoSocketTest, try_open_without_args) -{ - try - { - SRTMinorServoSocket::getInstance(); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); - } -} - -// This test tries to generate an instance using a pair of address and port on which the socket fails to open -TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) -{ - try - { - // The exception is raised only if the given port is wrong - SRTMinorServoSocket::getInstance(ADDRESS, 0); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Cannot connect the socket.").c_str()); - } -} -- GitLab From ca6a805819ecc04435efcbb652b96e9573bd6acd Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 28 Mar 2023 09:28:10 +0000 Subject: [PATCH 023/150] Some minor fixes for the SRTMinorServoCommandLibrary --- .../include/SRTMinorServoCommandLibrary.h | 2 +- .../src/SRTMinorServoCommandLibrary.cpp | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 603263fbf..8649d5c0c 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -14,7 +14,7 @@ #define CLOSER std::string("\r\n") -using SRTMinorServoAnswerMap = std::map<std::string, std::variant<int, double, std::string> >; +using SRTMinorServoAnswerMap = std::map<std::string, std::variant<long, double, std::string> >; /** * SRT Minor Servo Command Library diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index 53cdd8302..04350ed59 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -111,14 +111,18 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ std::getline(sss, key, '='); std::getline(sss, value); - // No value, should be the timestamp + // No value, could be the timestamp if(value.empty()) { - if(args.find("TIMESTAMP") != args.end()) // Timestamp already found, some other value is missing its key - throw std::invalid_argument(std::string("Missing key for value " + value)); - - value = key; - key = "TIMESTAMP"; + if(args.find("TIMESTAMP") != args.end()) // Timestamp already found, some other value is missing + { + value = "0"; + } + else + { + value = key; + key = "TIMESTAMP"; + } } if(key == "OUTPUT") @@ -138,7 +142,7 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ else { size_t last_char; - args[key] = std::stoi(value, &last_char); + args[key] = std::stol(value, &last_char); if(last_char != value.size()) args[key] = std::stod(value); } -- GitLab From 15c6b60a62033dc9986d7a7533b7b9b6017d1825 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 28 Mar 2023 13:48:56 +0000 Subject: [PATCH 024/150] Updated SRPProgramTrackTest --- .../test/SRPProgramTrackTest.cpp | 128 +++++++++++++----- 1 file changed, 96 insertions(+), 32 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index f514cb821..d91dbdb09 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -8,12 +8,15 @@ // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & +//#define ADDRESS std::string("192.168.200.13") +//#define PORT 4758 #define ADDRESS std::string("127.0.0.1") #define PORT 12800 -#define TIMEOUT 0.1 -#define NOISE_THRESHOLD 0.2 +#define SOCKET_TIMEOUT 0.1 +#define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 -#define ADVANCE_TIMEGAP 5 +#define ADVANCE_TIMEGAP 5 +#define EPSILON 0.001 std::atomic<bool> terminate = false; @@ -29,12 +32,23 @@ std::string serializeStatus(SRTMinorServoAnswerMap map) std::stringstream stream; stream << std::fixed << std::setprecision(6); stream << std::get<double>(map["TIMESTAMP"]); - stream << "\t" << std::get<double>(map["SRP_TX"]); - stream << "\t" << std::get<double>(map["SRP_TY"]); - stream << "\t" << std::get<double>(map["SRP_TZ"]); - stream << "\t" << std::get<double>(map["SRP_RX"]); - stream << "\t" << std::get<double>(map["SRP_RY"]); - stream << "\t" << std::get<double>(map["SRP_RZ"]); + std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; + + for(std::string coordinate : coordinates) + { + double value; + + try + { + value = std::get<double>(map[coordinate]); + } + catch(...) + { + value = (double)std::get<long>(map[coordinate]); + } + + stream << "\t" << value; + } return stream.str(); } @@ -55,12 +69,24 @@ protected: static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus) { std::vector<double> currentCoordinates; - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TX"])); - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TY"])); - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_TZ"])); - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RX"])); - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RY"])); - currentCoordinates.push_back(std::get<double>(SRPStatus["SRP_RZ"])); + std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; + + for(std::string coordinate : coordinates) + { + double value; + + try + { + value = std::get<double>(SRPStatus[coordinate]); + } + catch(...) + { + value = (double)std::get<long>(SRPStatus[coordinate]); + } + + currentCoordinates.push_back(value); + } + return currentCoordinates; } @@ -73,7 +99,8 @@ protected: for(size_t i = 0; i < first.size(); i++) { - if(first[i] != second[i]) + double diff = fabs(first[i] - second[i]); + if(diff > EPSILON) { return false; } @@ -84,7 +111,7 @@ protected: static void addNoiseToCoordinates(std::vector<double> &coordinates) { - for(size_t i = 0; i < coordinates.size(); i++) + for(size_t i = 0; i < 3; i++) { coordinates[i] += std::max(-1, std::min(1, rand() % 5 - 2)) * (double(rand() % 100) / 100) * NOISE_THRESHOLD; } @@ -92,13 +119,13 @@ protected: void SetUp() override { - signal(SIGINT, sigintHandler); srand((int)CIRATools::getUNIXEpoch()); std::cout << std::fixed << std::setprecision(6); try { - SRTMinorServoSocket::getInstance(ADDRESS, PORT, TIMEOUT); + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; } catch(ComponentErrors::SocketErrorExImpl& ex) { @@ -124,35 +151,65 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); SRTMinorServoAnswerMap::iterator iterator; + std::cout << "Sending MS STATUS command..."; + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + + /*SRTMinorServoAnswerMap::iterator iter; + + for(iter = MSStatus.begin(); iter != MSStatus.end(); ++iter) + { + std::visit([iter](const auto& var) mutable { std::cout << iter->first << ": " << var << std::endl; }, iter->second); + }*/ + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<int>(MSStatus["CONTROL"]), 1); - EXPECT_EQ(std::get<int>(MSStatus["POWER"]), 1); - EXPECT_EQ(std::get<int>(MSStatus["EMERGENCY"]), 2); - EXPECT_EQ(std::get<int>(MSStatus["ENABLED"]), 1); + //EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + //EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + //EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + //EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + + std::cout << "OK." << std::endl; + std::cout << "Sending initial SRP STATUS command..."; SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<int>(SRPStatus["SRP_ENABLED"]), 1); - EXPECT_EQ(std::get<int>(SRPStatus["SRP_STATUS"]), 1); - EXPECT_EQ(std::get<int>(SRPStatus["SRP_BLOCK"]), 2); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + - /*for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + /*SRTMinorServoAnswerMap::iterator iter; + + for(iter = SRPStatus.begin(); iter != SRPStatus.end(); ++iter) { - std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + std::visit([iter](const auto& var) mutable { std::cout << iter->first << ": " << var << std::endl; }, iter->second); }*/ + std::cout << "OK." << std::endl; + std::cout << "Sending PRESET command..."; + std::vector<double> startingCoordinates = {0, 0, 0, 0, 0, 0}; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + std::cout << "OK." << std::endl; + + signal(SIGINT, sigintHandler); + do { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<int>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + + std::cout << serializeStatus(SRPStatus) << std::endl; + + if(terminate) + { + return; + } } while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); @@ -164,10 +221,17 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) ofstream statusFile; statusFile.open("SRPStatus.txt", ios::out); + long unsigned int counter = 0; + while(!terminate) { SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); statusFile << serializeStatus(SRPStatus) << std::endl; + if(counter % 10 == 0) + { + std::cout << serializeStatus(SRPStatus) << std::endl; + } + counter++; std::this_thread::sleep_for(std::chrono::milliseconds(10)); } @@ -175,6 +239,7 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) }); double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; long unsigned int trajectory_id = int(start_time); unsigned int point_id = 0; std::vector<double> programTrackCoordinates = startingCoordinates; @@ -186,7 +251,7 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<int>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); ofstream programTrackFile; programTrackFile.open("SRPTrajectory.txt", ios::out); @@ -197,7 +262,6 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) while(!terminate) { next_expected_time += TIMEGAP; - std::cout << next_expected_time << std::endl; std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; -- GitLab From 4bfce05954ae59f779312bdc64e6dac773109856 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 30 Mar 2023 14:47:22 +0000 Subject: [PATCH 025/150] Improved SRP tests --- SRT/Servers/SRTMinorServo/test/Makefile | 2 +- .../test/SRPProgramTrackTest.cpp | 212 ++++++++++++++---- 2 files changed, 173 insertions(+), 41 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 9d3a94f5d..d8d695cbe 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -23,7 +23,7 @@ SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread SRPProgramTrackTest_OBJECTS = SRPProgramTrackTest SRPProgramTrackTest_CFLAGS = -std=c++17 -SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors +SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem SRPProgramTrackTest_LDFLAGS = -lstdc++ -lpthread # END OF CUSTOMIZATION diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index d91dbdb09..9859e037d 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -2,6 +2,8 @@ #include <iostream> #include <thread> #include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> #include "SRTMinorServoSocket.h" #include "SRTMinorServoCommandLibrary.h" @@ -17,6 +19,7 @@ #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 5 #define EPSILON 0.001 +#define MAX_RANGES std::vector<double>{40, 100, 40, 0.2, 0.2, 0.2} std::atomic<bool> terminate = false; @@ -57,9 +60,7 @@ std::string serializeProgramTrack(double timestamp, std::vector<double> coordina std::stringstream stream; stream << std::fixed << std::setprecision(6) << timestamp; for(double coordinate : coordinates) - { stream << "\t" << coordinate; - } return stream.str(); } @@ -93,17 +94,13 @@ protected: static bool compareCoordinates(std::vector<double> first, std::vector<double> second) { if(first.size() != second.size()) - { return false; - } for(size_t i = 0; i < first.size(); i++) { double diff = fabs(first[i] - second[i]); if(diff > EPSILON) - { return false; - } } return true; @@ -112,9 +109,18 @@ protected: static void addNoiseToCoordinates(std::vector<double> &coordinates) { for(size_t i = 0; i < 3; i++) - { coordinates[i] += std::max(-1, std::min(1, rand() % 5 - 2)) * (double(rand() % 100) / 100) * NOISE_THRESHOLD; - } + } + + static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + sign = sign / abs(sign); + double offset_to_add; + axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 1.0; + coordinates[axis_to_move] += sign * offset_to_add; + if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + return true; + return false; } void SetUp() override @@ -130,13 +136,9 @@ protected: catch(ComponentErrors::SocketErrorExImpl& ex) { if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) - { FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - } else - { FAIL() << "Unexpected failure." << std::endl; - } } } @@ -146,7 +148,7 @@ protected: } }; -TEST_F(SRPProgramTrackTest, z_axis_translation) +TEST_F(SRPProgramTrackTest, noise_translation) { SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); SRTMinorServoAnswerMap::iterator iterator; @@ -155,18 +157,11 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); - /*SRTMinorServoAnswerMap::iterator iter; - - for(iter = MSStatus.begin(); iter != MSStatus.end(); ++iter) - { - std::visit([iter](const auto& var) mutable { std::cout << iter->first << ": " << var << std::endl; }, iter->second); - }*/ - EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); - //EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); - //EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); - //EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); - //EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); std::cout << "OK." << std::endl; std::cout << "Sending initial SRP STATUS command..."; @@ -176,14 +171,6 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); - - /*SRTMinorServoAnswerMap::iterator iter; - - for(iter = SRPStatus.begin(); iter != SRPStatus.end(); ++iter) - { - std::visit([iter](const auto& var) mutable { std::cout << iter->first << ": " << var << std::endl; }, iter->second); - }*/ - std::cout << "OK." << std::endl; std::cout << "Sending PRESET command..."; @@ -207,32 +194,39 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) std::cout << serializeStatus(SRPStatus) << std::endl; if(terminate) - { return; - } } while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); - std::thread t([]() + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "NoiseTranslationTest-" << 1900 + now->tm_year << std::setfill('0') << std::setw(2) << now->tm_mon + 1 << now->tm_mday << "-" << now->tm_hour << now->tm_min << now->tm_sec; + std::string directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + std::thread t([directory]() { SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; ofstream statusFile; - statusFile.open("SRPStatus.txt", ios::out); + statusFile.open(directory + "/status.txt", ios::out); long unsigned int counter = 0; + double tn = CIRATools::getUNIXEpoch(); + while(!terminate) { SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); statusFile << serializeStatus(SRPStatus) << std::endl; if(counter % 10 == 0) - { std::cout << serializeStatus(SRPStatus) << std::endl; - } counter++; - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + + tn += 0.01; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); } statusFile.close(); @@ -254,7 +248,7 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); ofstream programTrackFile; - programTrackFile.open("SRPTrajectory.txt", ios::out); + programTrackFile.open(directory + "/trajectory.txt", ios::out); programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; @@ -275,3 +269,141 @@ TEST_F(SRPProgramTrackTest, z_axis_translation) programTrackFile.close(); t.join(); } + +TEST_F(SRPProgramTrackTest, cycle_movement) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap::iterator iterator; + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + + std::cout << "OK." << std::endl; + std::cout << "Sending initial SRP STATUS command..."; + + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + + std::cout << "OK." << std::endl; + std::cout << "Sending all axes to 0..."; + + std::vector<double> startingCoordinates = {0, 0, 0, 0, 0, 0}; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + std::cout << "OK." << std::endl; + + signal(SIGINT, sigintHandler); + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + + std::cout << serializeStatus(SRPStatus) << std::endl; + + if(terminate) + return; + } + while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "CycleMovementTest-" << 1900 + now->tm_year << std::setfill('0') << std::setw(2) << now->tm_mon + 1 << now->tm_mday << "-" << now->tm_hour << now->tm_min << now->tm_sec; + std::string directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + std::thread t([directory]() + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream statusFile; + statusFile.open(directory + "/status.txt", ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + statusFile << serializeStatus(SRPStatus) << std::endl; + if(counter % 10 == 0) + std::cout << serializeStatus(SRPStatus) << std::endl; + counter++; + + tn += 0.01; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + }); + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + unsigned int axis_to_move = 3; + int sign = 1; + + while(!terminate) + { + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + sign = sign * -1; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + //std::cout << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + + if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + break; + } + } + + axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; + } + + programTrackFile.close(); + t.join(); +} -- GitLab From 207d1f480baab74da95a1d55b51e482032001b85 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 3 Apr 2023 20:11:02 +0000 Subject: [PATCH 026/150] Updated SRPProgramTrackTest --- .../test/SRPProgramTrackTest.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index 9859e037d..73c783f40 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -145,6 +145,7 @@ protected: void TearDown() override { SRTMinorServoSocket::destroyInstance(); + terminate = false; } }; @@ -374,8 +375,10 @@ TEST_F(SRPProgramTrackTest, cycle_movement) programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; - unsigned int axis_to_move = 3; + unsigned int axis_to_move = 0; int sign = 1; + unsigned int idle_count = 0; + bool idle = false; while(!terminate) { @@ -386,8 +389,20 @@ TEST_F(SRPProgramTrackTest, cycle_movement) std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; - if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + if(idle) + { + idle_count++; + if(idle_count == 5) + { + idle_count = 0; + idle = false; + } + } + else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { sign = sign * -1; + idle = true; + } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); -- GitLab From 94a3e593124afc4dd001dca981f67b257fdf1a5d Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 5 Apr 2023 08:40:03 +0000 Subject: [PATCH 027/150] Updated SRPProgramTrackTest Added a script to plot trajectories --- .../test/SRPProgramTrackTest.cpp | 311 +++++++----------- .../SRTMinorServo/test/plotTrajectories.py | 88 +++++ 2 files changed, 216 insertions(+), 183 deletions(-) create mode 100755 SRT/Servers/SRTMinorServo/test/plotTrajectories.py diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index 73c783f40..14fa0484b 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -10,63 +10,93 @@ // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & -//#define ADDRESS std::string("192.168.200.13") -//#define PORT 4758 #define ADDRESS std::string("127.0.0.1") #define PORT 12800 -#define SOCKET_TIMEOUT 0.1 +//#define ADDRESS std::string("192.168.200.13") +//#define PORT 4758 +#define SOCKET_TIMEOUT 0.5 #define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 5 -#define EPSILON 0.001 -#define MAX_RANGES std::vector<double>{40, 100, 40, 0.2, 0.2, 0.2} - +#define EPSILON 0.00001 +#define MAX_RANGES std::vector<double>{ 40, 100, 40, 0.2, 0.2, 0.2 } +#define STATUS_PERIOD 0.01 std::atomic<bool> terminate = false; -void sigintHandler(int sig_num) -{ - std::cout << std::endl << "Terminating..." << std::endl; - terminate = true; -} -std::string serializeStatus(SRTMinorServoAnswerMap map) +class SRPProgramTrackTest : public ::testing::Test { - std::stringstream stream; - stream << std::fixed << std::setprecision(6); - stream << std::get<double>(map["TIMESTAMP"]); - std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; +protected: + std::vector<double> startingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; - for(std::string coordinate : coordinates) + static void printStatus(std::string filename) { - double value; + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; - try + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) { - value = std::get<double>(map[coordinate]); + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + statusFile << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + if(counter % 10 == 0) + std::cout << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); } - catch(...) + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeStatus(SRTMinorServoAnswerMap map) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + stream << std::get<double>(map["TIMESTAMP"]); + std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; + + for(std::string coordinate : coordinates) { - value = (double)std::get<long>(map[coordinate]); - } + double value; + + try + { + value = std::get<double>(map[coordinate]); + } + catch(...) + { + value = (double)std::get<long>(map[coordinate]); + } - stream << "\t" << value; + stream << "\t" << value; + } + return stream.str(); } - return stream.str(); -} -std::string serializeProgramTrack(double timestamp, std::vector<double> coordinates) -{ - std::stringstream stream; - stream << std::fixed << std::setprecision(6) << timestamp; - for(double coordinate : coordinates) - stream << "\t" << coordinate; - return stream.str(); -} + static std::string serializeProgramTrack(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } -class SRPProgramTrackTest : public ::testing::Test -{ -protected: static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus) { std::vector<double> currentCoordinates; @@ -140,65 +170,74 @@ protected: else FAIL() << "Unexpected failure." << std::endl; } - } - void TearDown() override - { - SRTMinorServoSocket::destroyInstance(); - terminate = false; - } -}; + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); -TEST_F(SRPProgramTrackTest, noise_translation) -{ - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); - SRTMinorServoAnswerMap::iterator iterator; + std::cout << "Sending MS STATUS command..."; - std::cout << "Sending MS STATUS command..."; + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "OK." << std::endl; - SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } - EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); - EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "Sending initial SRP STATUS command..."; - std::cout << "OK." << std::endl; - std::cout << "Sending initial SRP STATUS command..."; + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + std::cout << "OK." << std::endl; - SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } - std::cout << "OK." << std::endl; - std::cout << "Sending PRESET command..."; + std::cout << "Sending all axes to 0..."; - std::vector<double> startingCoordinates = {0, 0, 0, 0, 0, 0}; - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - std::cout << "OK." << std::endl; + signal(SIGINT, SRPProgramTrackTest::sigintHandler); - signal(SIGINT, sigintHandler); + while(true) + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); - do - { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + if(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))) + std::cout << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + else + break; - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } - std::cout << serializeStatus(SRPStatus) << std::endl; + std::cout << "OK." << std::endl; + } - if(terminate) - return; + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; } - while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); +}; +TEST_F(SRPProgramTrackTest, noise_translation) +{ std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; @@ -206,32 +245,7 @@ TEST_F(SRPProgramTrackTest, noise_translation) std::string directory = directory_ss.str(); boost::filesystem::create_directory(directory); - std::thread t([directory]() - { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); - SRTMinorServoAnswerMap SRPStatus; - - ofstream statusFile; - statusFile.open(directory + "/status.txt", ios::out); - - long unsigned int counter = 0; - - double tn = CIRATools::getUNIXEpoch(); - - while(!terminate) - { - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - statusFile << serializeStatus(SRPStatus) << std::endl; - if(counter % 10 == 0) - std::cout << serializeStatus(SRPStatus) << std::endl; - counter++; - - tn += 0.01; - std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); - } - - statusFile.close(); - }); + std::thread t(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; @@ -239,6 +253,8 @@ TEST_F(SRPProgramTrackTest, noise_translation) unsigned int point_id = 0; std::vector<double> programTrackCoordinates = startingCoordinates; + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -250,7 +266,7 @@ TEST_F(SRPProgramTrackTest, noise_translation) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; @@ -264,7 +280,7 @@ TEST_F(SRPProgramTrackTest, noise_translation) addNoiseToCoordinates(programTrackCoordinates); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - programTrackFile << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; } programTrackFile.close(); @@ -273,54 +289,6 @@ TEST_F(SRPProgramTrackTest, noise_translation) TEST_F(SRPProgramTrackTest, cycle_movement) { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); - SRTMinorServoAnswerMap::iterator iterator; - - std::cout << "Sending MS STATUS command..."; - - SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); - - EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); - EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); - - std::cout << "OK." << std::endl; - std::cout << "Sending initial SRP STATUS command..."; - - SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); - - std::cout << "OK." << std::endl; - std::cout << "Sending all axes to 0..."; - - std::vector<double> startingCoordinates = {0, 0, 0, 0, 0, 0}; - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - - std::cout << "OK." << std::endl; - - signal(SIGINT, sigintHandler); - - do - { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); - - std::cout << serializeStatus(SRPStatus) << std::endl; - - if(terminate) - return; - } - while(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))); - std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; @@ -328,32 +296,7 @@ TEST_F(SRPProgramTrackTest, cycle_movement) std::string directory = directory_ss.str(); boost::filesystem::create_directory(directory); - std::thread t([directory]() - { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); - SRTMinorServoAnswerMap SRPStatus; - - ofstream statusFile; - statusFile.open(directory + "/status.txt", ios::out); - - long unsigned int counter = 0; - - double tn = CIRATools::getUNIXEpoch(); - - while(!terminate) - { - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - statusFile << serializeStatus(SRPStatus) << std::endl; - if(counter % 10 == 0) - std::cout << serializeStatus(SRPStatus) << std::endl; - counter++; - - tn += 0.01; - std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); - } - - statusFile.close(); - }); + std::thread t(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; @@ -361,6 +304,8 @@ TEST_F(SRPProgramTrackTest, cycle_movement) unsigned int point_id = 0; std::vector<double> programTrackCoordinates = startingCoordinates; + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -372,7 +317,7 @@ TEST_F(SRPProgramTrackTest, cycle_movement) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - programTrackFile << serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; unsigned int axis_to_move = 0; @@ -406,8 +351,8 @@ TEST_F(SRPProgramTrackTest, cycle_movement) SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - //std::cout << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; - programTrackFile << serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + //std::cout << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) { diff --git a/SRT/Servers/SRTMinorServo/test/plotTrajectories.py b/SRT/Servers/SRTMinorServo/test/plotTrajectories.py new file mode 100755 index 000000000..d55b0ae4c --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/plotTrajectories.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +status_time = [] +status_tx = [] +status_ty = [] +status_tz = [] +status_rx = [] +status_ry = [] +status_rz = [] +starttime = None + +with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + status_time.append(float(args[0]) - starttime) + status_tx.append(float(args[1])) + status_ty.append(float(args[2])) + status_tz.append(float(args[3])) + status_rx.append(float(args[4])) + status_ry.append(float(args[5])) + status_rz.append(float(args[6])) + +trajectory_time = [] +trajectory_tx = [] +trajectory_ty = [] +trajectory_tz = [] +trajectory_rx = [] +trajectory_ry = [] +trajectory_rz = [] + +with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_tx.append(float(args[1])) + trajectory_ty.append(float(args[2])) + trajectory_tz.append(float(args[3])) + trajectory_rx.append(float(args[4])) + trajectory_ry.append(float(args[5])) + trajectory_rz.append(float(args[6])) + +fig = plt.figure() +fig.canvas.manager.set_window_title('SRP Positions') +fig.suptitle('SRP Positions') +gs = fig.add_gridspec(3, 2, hspace=0) +((tx, rx), (ty, ry), (tz, rz)) = gs.subplots(sharex=True, sharey='col') +tx.plot(status_time, status_tx, 'r') +tx.plot(trajectory_time, trajectory_tx, 'b') +tx.set_ylabel('tx (mm)') + +ty.plot(status_time, status_ty, 'r') +ty.plot(trajectory_time, trajectory_ty, 'b') +ty.set_ylabel('ty (mm)') + +tz.plot(status_time, status_tz, 'r') +tz.plot(trajectory_time, trajectory_tz, 'b') +tz.set_xlabel('time (s)') +tz.set_ylabel('tz (mm)') + +rx.plot(status_time, status_rx, 'r') +rx.plot(trajectory_time, trajectory_rx, 'b') +rx.set_ylabel('rx (deg)') + +ry.plot(status_time, status_ry, 'r') +ry.plot(trajectory_time, trajectory_ry, 'b') +ry.set_ylabel('ry (deg)') + +rz.plot(status_time, status_rz, 'r') +rz.plot(trajectory_time, trajectory_rz, 'b') +rz.set_xlabel('time (s)') +rz.set_ylabel('rz (deg)') + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +plt.show() -- GitLab From b1188aacb2df2b11f71975deace44e6ded970927 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 5 Apr 2023 08:44:12 +0000 Subject: [PATCH 028/150] Added .gitignore in order to ignore test folders --- SRT/Servers/SRTMinorServo/test/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 SRT/Servers/SRTMinorServo/test/.gitignore diff --git a/SRT/Servers/SRTMinorServo/test/.gitignore b/SRT/Servers/SRTMinorServo/test/.gitignore new file mode 100644 index 000000000..be36a6cef --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/.gitignore @@ -0,0 +1,2 @@ +CycleMovementTest* +NoiseTranslationTest* -- GitLab From a3ea22fadcbc1dbc686988afa58aea44ce96cbd0 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 5 Apr 2023 14:54:12 +0000 Subject: [PATCH 029/150] Updated SRPProgramTrackTest Added a separate trajectories test --- SRT/Servers/SRTMinorServo/test/.gitignore | 3 +- .../test/SRPProgramTrackTest.cpp | 124 ++++++++++++++---- 2 files changed, 103 insertions(+), 24 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/.gitignore b/SRT/Servers/SRTMinorServo/test/.gitignore index be36a6cef..cbb54b0a8 100644 --- a/SRT/Servers/SRTMinorServo/test/.gitignore +++ b/SRT/Servers/SRTMinorServo/test/.gitignore @@ -1,2 +1,3 @@ -CycleMovementTest* NoiseTranslationTest* +ContinuousMovementTest* +SeparateMovementTest* diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index 14fa0484b..5355123ea 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -29,6 +29,8 @@ class SRPProgramTrackTest : public ::testing::Test { protected: std::vector<double> startingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + std::string directory; + std::thread statusThread; static void printStatus(std::string filename) { @@ -227,6 +229,23 @@ protected: } std::cout << "OK." << std::endl; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + statusThread = std::thread(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); } void TearDown() override @@ -236,17 +255,8 @@ protected: } }; -TEST_F(SRPProgramTrackTest, noise_translation) +TEST_F(SRPProgramTrackTest, NoiseTranslationTest) { - std::time_t tn = std::time(0); - std::tm* now = std::localtime(&tn); - std::stringstream directory_ss; - directory_ss << "NoiseTranslationTest-" << 1900 + now->tm_year << std::setfill('0') << std::setw(2) << now->tm_mon + 1 << now->tm_mday << "-" << now->tm_hour << now->tm_min << now->tm_sec; - std::string directory = directory_ss.str(); - boost::filesystem::create_directory(directory); - - std::thread t(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); - double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; long unsigned int trajectory_id = int(start_time); @@ -284,20 +294,11 @@ TEST_F(SRPProgramTrackTest, noise_translation) } programTrackFile.close(); - t.join(); + statusThread.join(); } -TEST_F(SRPProgramTrackTest, cycle_movement) +TEST_F(SRPProgramTrackTest, ContinuousMovementTest) { - std::time_t tn = std::time(0); - std::tm* now = std::localtime(&tn); - std::stringstream directory_ss; - directory_ss << "CycleMovementTest-" << 1900 + now->tm_year << std::setfill('0') << std::setw(2) << now->tm_mon + 1 << now->tm_mday << "-" << now->tm_hour << now->tm_min << now->tm_sec; - std::string directory = directory_ss.str(); - boost::filesystem::create_directory(directory); - - std::thread t(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); - double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; long unsigned int trajectory_id = int(start_time); @@ -345,7 +346,7 @@ TEST_F(SRPProgramTrackTest, cycle_movement) } else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) { - sign = sign * -1; + sign *= -1; idle = true; } @@ -365,5 +366,82 @@ TEST_F(SRPProgramTrackTest, cycle_movement) } programTrackFile.close(); - t.join(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, SeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 25) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + else if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); } -- GitLab From 1e62629ec21d40a4c99b072029c4a8090b811693 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 13 Apr 2023 10:16:35 +0000 Subject: [PATCH 030/150] Updated SRPProgramTrackTest.cpp --- .../test/SRPProgramTrackTest.cpp | 131 ++++++++++++------ 1 file changed, 92 insertions(+), 39 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index 5355123ea..beb943d15 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -47,9 +47,11 @@ protected: while(!terminate) { SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - statusFile << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + std::string status = serializeStatus(SRPStatus); + + statusFile << status << std::endl; if(counter % 10 == 0) - std::cout << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + std::cout << status << std::endl; counter++; tn += STATUS_PERIOD; @@ -67,30 +69,10 @@ protected: static std::string serializeStatus(SRTMinorServoAnswerMap map) { - std::stringstream stream; - stream << std::fixed << std::setprecision(6); - stream << std::get<double>(map["TIMESTAMP"]); - std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; - - for(std::string coordinate : coordinates) - { - double value; - - try - { - value = std::get<double>(map[coordinate]); - } - catch(...) - { - value = (double)std::get<long>(map[coordinate]); - } - - stream << "\t" << value; - } - return stream.str(); + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); } - static std::string serializeProgramTrack(double timestamp, std::vector<double> coordinates) + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) { std::stringstream stream; stream << std::fixed << std::setprecision(6) << timestamp; @@ -106,18 +88,17 @@ protected: for(std::string coordinate : coordinates) { - double value; + auto value = SRPStatus[coordinate]; try { - value = std::get<double>(SRPStatus[coordinate]); + currentCoordinates.push_back(std::get<double>(value)); } - catch(...) + catch(std::bad_variant_access const& ex) { - value = (double)std::get<long>(SRPStatus[coordinate]); + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); } - - currentCoordinates.push_back(value); } return currentCoordinates; @@ -220,7 +201,7 @@ protected: EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); if(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))) - std::cout << SRPProgramTrackTest::serializeStatus(SRPStatus) << std::endl; + std::cout << serializeStatus(SRPStatus) << std::endl; else break; @@ -276,7 +257,7 @@ TEST_F(SRPProgramTrackTest, NoiseTranslationTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; @@ -290,7 +271,7 @@ TEST_F(SRPProgramTrackTest, NoiseTranslationTest) addNoiseToCoordinates(programTrackCoordinates); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } programTrackFile.close(); @@ -318,7 +299,7 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; unsigned int axis_to_move = 0; @@ -352,8 +333,8 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - //std::cout << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) { @@ -394,7 +375,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(start_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(20)); @@ -437,8 +418,80 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); } - //std::cout << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; - programTrackFile << SRPProgramTrackTest::serializeProgramTrack(next_expected_time, programTrackCoordinates) << std::endl; + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 2; //Always Z + int sign = -1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + + while(!terminate) + { + std::vector<double> programTrackCoordinates = startingCoordinates; + programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 25) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } } -- GitLab From 58c24354a70412ef6bcb153d3b2a023ec6ef3324 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 29 May 2023 09:21:52 +0000 Subject: [PATCH 031/150] Fix SRTMinorServoCommandLibrary programTrack start_time issue --- .../src/SRTMinorServoCommandLibrary.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index 04350ed59..fce0e1b48 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -5,6 +5,7 @@ */ #include <iostream> +#include <iomanip> #include <algorithm> #include "SRTMinorServoCommandLibrary.h" @@ -47,7 +48,7 @@ std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vecto command << "PRESET=" << servo_id; for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { - command << "," << coordinates[coordinate]; + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; } command << CLOSER; return command.str(); @@ -59,8 +60,7 @@ std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, long command << "PROGRAMTRACK=" << servo_id << "," << trajectory_id << "," << point_id << ","; if(start_time > 0) { - long unsigned int start_time_int = (long unsigned int)(start_time * 1000); - command << start_time_int; + command << std::fixed << std::setprecision(6) << start_time; } else { @@ -69,7 +69,7 @@ std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, long for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { - command << "," << coordinates[coordinate]; + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; } command << CLOSER; return command.str(); @@ -81,7 +81,7 @@ std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vecto command << "OFFSET=" << servo_id; for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { - command << "," << coordinates[coordinate]; + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; } command << CLOSER; return command.str(); -- GitLab From ca7c75615fc6287103cd9bd967b33c2f767da687 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 7 Jun 2023 12:55:02 +0000 Subject: [PATCH 032/150] Minor fixes for SRTMinorServoCommandLibrary --- .../src/SRTMinorServoCommandLibrary.cpp | 12 +++----- .../SRTMinorServoLibrary/tests/unittest.cpp | 29 ++++++++++--------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index fce0e1b48..ba0e1fb6c 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -115,14 +115,10 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ if(value.empty()) { if(args.find("TIMESTAMP") != args.end()) // Timestamp already found, some other value is missing - { - value = "0"; - } - else - { - value = key; - key = "TIMESTAMP"; - } + throw std::invalid_argument(std::string("Missing key for value " + value)); + + value = key; + key = "TIMESTAMP"; } if(key == "OUTPUT") diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp index 9ebdcf668..4b54b64bc 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp @@ -28,28 +28,29 @@ TEST(SRTMinorServoCommandLibraryTest, stop) TEST(SRTMinorServoCommandLibraryTest, preset) { - EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0,1,2,3,4,5\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"); } TEST(SRTMinorServoCommandLibraryTest, programTrack) { double start_time = CIRATools::getUNIXEpoch() + 3; - unsigned long int trajectory_id = (unsigned long int)(start_time * 1000); + unsigned long int trajectory_id = (unsigned long int)start_time; std::stringstream expected_answer; - expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << trajectory_id << ",0,1,2,3,4,5\r\n"; + expected_answer << std::fixed << std::setprecision(6); + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << start_time << ",0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"; EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time), expected_answer.str()); for(unsigned int i = 1; i < 10; i++) { expected_answer.str(std::string()); - expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0,1,2,3,4,5\r\n"; + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"; EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}), expected_answer.str()); } } TEST(SRTMinorServoCommandLibraryTest, offset) { - EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0,1,2,3,4,5\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"); } TEST(SRTMinorServoCommandLibraryTest, parseAnswer) @@ -66,15 +67,15 @@ TEST(SRTMinorServoCommandLibraryTest, parseAnswer) args.clear(); args["OUTPUT"] = "GOOD"; args["TIMESTAMP"] = 1665743366.123456; - args["CURRENT_CONFIG"] = 21; - args["SIMULATION_ENABLED"] = 34; - args["PLC_TIME"] = 78; - args["PLC_VERSION"] = 69; - args["CONTROL"] = 14; - args["POWER"] = 38; - args["EMERGENCY"] = 69; - args["ENABLED"] = 51; - args["OPERATIVE_MODE"] = 94; + args["CURRENT_CONFIG"] = (long)21; + args["SIMULATION_ENABLED"] = (long)34; + args["PLC_TIME"] = (long)78; + args["PLC_VERSION"] = (long)69; + args["CONTROL"] = (long)14; + args["POWER"] = (long)38; + args["EMERGENCY"] = (long)69; + args["ENABLED"] = (long)51; + args["OPERATIVE_MODE"] = (long)94; EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Missing timestamp -- GitLab From 41f8e45ecc552cd8256b9d2af8cc33afd48a82e7 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 7 Jun 2023 13:01:56 +0000 Subject: [PATCH 033/150] Updated SRP and Derotator programTrack tests --- .../include/SRTMinorServoSocket.h | 1 + .../test/DerotatorProgramTrackTest.cpp | 452 ++++++++++++++++++ SRT/Servers/SRTMinorServo/test/Makefile | 8 +- .../test/SRPProgramTrackTest.cpp | 89 ++-- .../test/plotDerotatorTrajectory.py | 44 ++ ...Trajectories.py => plotSRPTrajectories.py} | 40 +- 6 files changed, 579 insertions(+), 55 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp create mode 100755 SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py rename SRT/Servers/SRTMinorServo/test/{plotTrajectories.py => plotSRPTrajectories.py} (71%) diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index fcf71eb12..45b31ad12 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -21,6 +21,7 @@ class SRTMinorServoSocket: public IRA::CSocket // Declare the SRTMinorServoSocketTest class as friend in order for it to have access to destroyInstance for testing purposes friend class SRTMinorServoSocketTest; friend class SRPProgramTrackTest; +friend class DerotatorProgramTrackTest; public: /** diff --git a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp new file mode 100644 index 000000000..5c57c064d --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp @@ -0,0 +1,452 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 +//#define ADDRESS std::string("192.168.200.13") +//#define PORT 4758 +#define SOCKET_TIMEOUT 0.5 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 5 +#define EPSILON 0.00001 +#define MAX_RANGES std::vector<double>{ 220 } +#define STATUS_PERIOD 0.01 +#define DEROTATOR std::string("GFR1") + +std::atomic<bool> terminate = false; + + +class DerotatorProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> startingCoordinates = { 0.0 }; + std::string directory; + std::thread statusThread; + + static void printStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string status = serializeStatus(DerotatorStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap DerotatorStatus) + { + std::vector<double> currentCoordinates; + std::vector<std::string> coordinates = { DEROTATOR + "_ROTATION" }; + + for(std::string coordinate : coordinates) + { + auto value = DerotatorStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static bool compareCoordinates(std::vector<double> first, std::vector<double> second) + { + if(first.size() != second.size()) + return false; + + for(size_t i = 0; i < first.size(); i++) + { + double diff = fabs(first[i] - second[i]); + if(diff > EPSILON) + return false; + } + + return true; + } + + static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + sign = sign / abs(sign); + double offset_to_add = 3.3 / 5; + coordinates[axis_to_move] += sign * offset_to_add; + if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + { + sign = coordinates[axis_to_move] / fabs(coordinates[axis_to_move]); + coordinates[axis_to_move] = MAX_RANGES[axis_to_move] * sign; + return true; + } + return false; + } + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "OK." << std::endl; + + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending initial Derotator STATUS command..."; + + SRTMinorServoAnswerMap DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_STATUS"]), 1); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_BLOCK"]), 2); + std::cout << "OK." << std::endl; + + for(iterator = DerotatorStatus.begin(); iterator != DerotatorStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending derotator to 0..."; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("Derotatore" + DEROTATOR, startingCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + signal(SIGINT, DerotatorProgramTrackTest::sigintHandler); + + while(true) + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); + + if(!compareCoordinates(startingCoordinates, getCoordinates(DerotatorStatus))) + std::cout << serializeStatus(DerotatorStatus) << std::endl; + else + break; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + + std::cout << "OK." << std::endl; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "Derotator"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + statusThread = std::thread(&DerotatorProgramTrackTest::printStatus, directory + "/status.txt"); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + std::string command = SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time); + std::cout << command << std::endl; + DerotatorStatus = socket.sendCommand(command); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + while(!terminate) + { + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 5) + { + idle_count = 0; + idle = false; + } + } + else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + break; + } + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 25) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; //Always Rotation + int sign = -1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + + while(!terminate) + { + std::vector<double> programTrackCoordinates = startingCoordinates; + programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 25) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index d8d695cbe..4fc791f23 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,7 +14,7 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest +EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest SRTMinorServoSocketTest_CFLAGS = -std=c++17 @@ -26,6 +26,11 @@ SRPProgramTrackTest_CFLAGS = -std=c++17 SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem SRPProgramTrackTest_LDFLAGS = -lstdc++ -lpthread +DerotatorProgramTrackTest_OBJECTS = DerotatorProgramTrackTest +DerotatorProgramTrackTest_CFLAGS = -std=c++17 +DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +DerotatorProgramTrackTest_LDFLAGS = -lstdc++ -lpthread + # END OF CUSTOMIZATION # do not edit below this line #---------------------------- @@ -48,6 +53,7 @@ do_unit: all @echo "running cpp unit tests" ../bin/SRTMinorServoSocketTest --gtest_output=xml:results/cppSRTMinorServoSocketTest.xml ../bin/SRPProgramTrackTest --gtest_output=xml:results/cppSRPProgramTrackTest.xml + ../bin/DerotatorProgramTrackTest --gtest_output=xml:results/cppDerotatorProgramTrackTest.xml do_pyunit: @echo "running python unit tests" diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index beb943d15..dba2afa9f 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -69,7 +69,9 @@ protected: static std::string serializeStatus(SRTMinorServoAnswerMap map) { - return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + status += serializeElongations(getElongations(map)); + return status; } static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) @@ -81,6 +83,15 @@ protected: return stream.str(); } + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus) { std::vector<double> currentCoordinates; @@ -104,6 +115,29 @@ protected: return currentCoordinates; } + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + auto value = SRPStatus[elongation]; + + try + { + currentElongations.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentElongations.push_back(10000.0); + } + } + + return currentElongations; + } + static bool compareCoordinates(std::vector<double> first, std::vector<double> second) { if(first.size() != second.size()) @@ -119,17 +153,11 @@ protected: return true; } - static void addNoiseToCoordinates(std::vector<double> &coordinates) - { - for(size_t i = 0; i < 3; i++) - coordinates[i] += std::max(-1, std::min(1, rand() % 5 - 2)) * (double(rand() % 100) / 100) * NOISE_THRESHOLD; - } - static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) { sign = sign / abs(sign); double offset_to_add; - axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 1.0; + axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 0.8; coordinates[axis_to_move] += sign * offset_to_add; if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) return true; @@ -214,6 +242,9 @@ protected: std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; + directory_ss << "SRP"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); directory_ss << "-"; directory_ss << 1900 + now->tm_year; @@ -236,48 +267,6 @@ protected: } }; -TEST_F(SRPProgramTrackTest, NoiseTranslationTest) -{ - double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; - std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; - long unsigned int trajectory_id = int(start_time); - unsigned int point_id = 0; - std::vector<double> programTrackCoordinates = startingCoordinates; - - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); - SRTMinorServoAnswerMap SRPStatus; - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - - std::this_thread::sleep_for(std::chrono::milliseconds(20)); - - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); - - ofstream programTrackFile; - programTrackFile.open(directory + "/trajectory.txt", ios::out); - programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - - double next_expected_time = start_time; - - while(!terminate) - { - next_expected_time += TIMEGAP; - - std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); - point_id++; - - addNoiseToCoordinates(programTrackCoordinates); - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - } - - programTrackFile.close(); - statusThread.join(); -} - TEST_F(SRPProgramTrackTest, ContinuousMovementTest) { double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; diff --git a/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py b/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py new file mode 100755 index 000000000..8c959f9e5 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +status_time = [] +status_rotation = [] +starttime = None + +with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + status_time.append(float(args[0]) - starttime) + status_rotation.append(float(args[1])) + +trajectory_time = [] +trajectory_rotation = [] + +with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_rotation.append(float(args[1])) + +#plt.canvas.manager.set_window_title('Derotator positions') +plt.suptitle('Derotator positions') +plt.plot(status_time, status_rotation, 'r') +plt.plot(trajectory_time, trajectory_rotation, 'b') +plt.ylabel('rot (deg)') +plt.xlabel('time (sec)') + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +plt.show() diff --git a/SRT/Servers/SRTMinorServo/test/plotTrajectories.py b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py similarity index 71% rename from SRT/Servers/SRTMinorServo/test/plotTrajectories.py rename to SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py index d55b0ae4c..e55eb7e53 100755 --- a/SRT/Servers/SRTMinorServo/test/plotTrajectories.py +++ b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py @@ -19,6 +19,12 @@ status_tz = [] status_rx = [] status_ry = [] status_rz = [] +status_ez1 = [] +status_ez2 = [] +status_ez3 = [] +status_ey1 = [] +status_ey2 = [] +status_ex1 = [] starttime = None with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: @@ -33,6 +39,12 @@ with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: status_rx.append(float(args[4])) status_ry.append(float(args[5])) status_rz.append(float(args[6])) + status_ez1.append(float(args[7])) + status_ez2.append(float(args[8])) + status_ez3.append(float(args[9])) + status_ey1.append(float(args[10])) + status_ey2.append(float(args[11])) + status_ex1.append(float(args[12])) trajectory_time = [] trajectory_tx = [] @@ -56,8 +68,8 @@ with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajector fig = plt.figure() fig.canvas.manager.set_window_title('SRP Positions') fig.suptitle('SRP Positions') -gs = fig.add_gridspec(3, 2, hspace=0) -((tx, rx), (ty, ry), (tz, rz)) = gs.subplots(sharex=True, sharey='col') +gs = fig.add_gridspec(6, 2, hspace=0) +((tx, rx), (ty, ry), (tz, rz), (ez1, ey1), (ez2, ey2), (ez3, ex1)) = gs.subplots(sharex=True, sharey='col') tx.plot(status_time, status_tx, 'r') tx.plot(trajectory_time, trajectory_tx, 'b') tx.set_ylabel('tx (mm)') @@ -68,9 +80,19 @@ ty.set_ylabel('ty (mm)') tz.plot(status_time, status_tz, 'r') tz.plot(trajectory_time, trajectory_tz, 'b') -tz.set_xlabel('time (s)') tz.set_ylabel('tz (mm)') +ez1.plot(status_time, status_ez1, 'b') +ez1.set_ylabel('ez1 (mm)') + +ez2.plot(status_time, status_ez2, 'b') +ez2.set_ylabel('ez2 (mm)') + +ez3.plot(status_time, status_ez3, 'b') +ez3.set_ylabel('ez3 (mm)') +ez3.set_xlabel('time (s)') + + rx.plot(status_time, status_rx, 'r') rx.plot(trajectory_time, trajectory_rx, 'b') rx.set_ylabel('rx (deg)') @@ -81,8 +103,18 @@ ry.set_ylabel('ry (deg)') rz.plot(status_time, status_rz, 'r') rz.plot(trajectory_time, trajectory_rz, 'b') -rz.set_xlabel('time (s)') rz.set_ylabel('rz (deg)') +ey1.plot(status_time, status_ey1, 'b') +ey1.set_ylabel('ey1 (mm)') + +ey2.plot(status_time, status_ey2, 'b') +ey2.set_ylabel('ey2 (mm)') + +ex1.plot(status_time, status_ex1, 'b') +ex1.set_ylabel('ex1 (mm)') +ex1.set_xlabel('time (s)') + + plt.get_current_fig_manager().window.attributes('-zoomed', True) plt.show() -- GitLab From 2273761ff160a79681497682399bacc51e6ac052 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 7 Jun 2023 13:25:34 +0000 Subject: [PATCH 034/150] Small update for plotting scripts --- SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py | 5 ++++- SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py b/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py index 8c959f9e5..649ae367a 100755 --- a/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py +++ b/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py @@ -41,4 +41,7 @@ plt.ylabel('rot (deg)') plt.xlabel('time (sec)') plt.get_current_fig_manager().window.attributes('-zoomed', True) -plt.show() +try: + plt.show() +except KeyboardInterrupt: + pass diff --git a/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py index e55eb7e53..75a5550a5 100755 --- a/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py +++ b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py @@ -117,4 +117,7 @@ ex1.set_xlabel('time (s)') plt.get_current_fig_manager().window.attributes('-zoomed', True) -plt.show() +try: + plt.show() +except KeyboardInterrupt: + pass -- GitLab From 86d6e849b33347302baf0101ac3f1ef56f3ee7cd Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 20 Jun 2023 12:45:42 +0000 Subject: [PATCH 035/150] Updated SRPProgramTrackTest.cpp --- SRT/Servers/SRTMinorServo/test/.gitignore | 5 +-- .../test/SRPProgramTrackTest.cpp | 10 ++--- .../SRTMinorServo/test/plotSRPTrajectories.py | 45 ++++++++++++------- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/.gitignore b/SRT/Servers/SRTMinorServo/test/.gitignore index cbb54b0a8..764e4f7bc 100644 --- a/SRT/Servers/SRTMinorServo/test/.gitignore +++ b/SRT/Servers/SRTMinorServo/test/.gitignore @@ -1,3 +1,2 @@ -NoiseTranslationTest* -ContinuousMovementTest* -SeparateMovementTest* +SRP/* +Derotator/* diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index dba2afa9f..e546e7ff9 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -280,7 +280,7 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -366,7 +366,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -382,7 +382,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) if(idle) { idle_count++; - if(idle_count == 25) + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) { idle_count = 0; idle = false; @@ -445,7 +445,7 @@ TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -461,7 +461,7 @@ TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) if(idle) { idle_count++; - if(idle_count == 25) + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) { idle_count = 0; idle = false; diff --git a/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py index 75a5550a5..e2f39fe77 100755 --- a/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py +++ b/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py @@ -68,53 +68,64 @@ with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajector fig = plt.figure() fig.canvas.manager.set_window_title('SRP Positions') fig.suptitle('SRP Positions') + gs = fig.add_gridspec(6, 2, hspace=0) -((tx, rx), (ty, ry), (tz, rz), (ez1, ey1), (ez2, ey2), (ez3, ex1)) = gs.subplots(sharex=True, sharey='col') +((tx, ex1), (ty, ey1), (tz, ey2), (rx, ez1), (ry, ez2), (rz, ez3)) = gs.subplots(sharex=True) + tx.plot(status_time, status_tx, 'r') tx.plot(trajectory_time, trajectory_tx, 'b') tx.set_ylabel('tx (mm)') +tx.sharey(ty) ty.plot(status_time, status_ty, 'r') ty.plot(trajectory_time, trajectory_ty, 'b') ty.set_ylabel('ty (mm)') +ty.sharey(tz) tz.plot(status_time, status_tz, 'r') tz.plot(trajectory_time, trajectory_tz, 'b') tz.set_ylabel('tz (mm)') - -ez1.plot(status_time, status_ez1, 'b') -ez1.set_ylabel('ez1 (mm)') - -ez2.plot(status_time, status_ez2, 'b') -ez2.set_ylabel('ez2 (mm)') - -ez3.plot(status_time, status_ez3, 'b') -ez3.set_ylabel('ez3 (mm)') -ez3.set_xlabel('time (s)') - +tz.sharey(ex1) rx.plot(status_time, status_rx, 'r') rx.plot(trajectory_time, trajectory_rx, 'b') rx.set_ylabel('rx (deg)') +rx.sharey(ry) ry.plot(status_time, status_ry, 'r') ry.plot(trajectory_time, trajectory_ry, 'b') ry.set_ylabel('ry (deg)') +ry.sharey(rz) rz.plot(status_time, status_rz, 'r') rz.plot(trajectory_time, trajectory_rz, 'b') rz.set_ylabel('rz (deg)') +rz.set_xlabel('time (s)') -ey1.plot(status_time, status_ey1, 'b') + +ex1.plot(status_time, status_ex1, 'g') +ex1.set_ylabel('ex1 (mm)') +ex1.sharey(ey1) + +ey1.plot(status_time, status_ey1, 'g') ey1.set_ylabel('ey1 (mm)') +ey1.sharey(ey2) -ey2.plot(status_time, status_ey2, 'b') +ey2.plot(status_time, status_ey2, 'g') ey2.set_ylabel('ey2 (mm)') +ey2.sharey(ez1) -ex1.plot(status_time, status_ex1, 'b') -ex1.set_ylabel('ex1 (mm)') -ex1.set_xlabel('time (s)') +ez1.plot(status_time, status_ez1, 'g') +ez1.set_ylabel('ez1 (mm)') +ez1.sharey(ez2) +ez2.plot(status_time, status_ez2, 'g') +ez2.set_ylabel('ez2 (mm)') +ez2.sharey(ez3) + +ez3.plot(status_time, status_ez3, 'g') +ez3.set_ylabel('ez3 (mm)') +ez3.set_xlabel('time (s)') plt.get_current_fig_manager().window.attributes('-zoomed', True) try: -- GitLab From d8b74c409e48d839725f34cc43d43cdb8f88ee8d Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 3 Jul 2023 11:37:48 +0000 Subject: [PATCH 036/150] First skeleton of combined SRP and Derotator tests --- .../include/SRTMinorServoSocket.h | 1 + .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 3 + SRT/Servers/SRTMinorServo/test/.gitignore | 5 +- .../test/CombinedProgramTrackTest.cpp | 426 ++++++++++++++++++ .../test/DerotatorProgramTrackTest.cpp | 2 +- SRT/Servers/SRTMinorServo/test/Makefile | 8 +- .../test/SRPProgramTrackTest.cpp | 2 +- .../{ => TESTS}/plotDerotatorTrajectory.py | 0 .../test/{ => TESTS}/plotSRPTrajectories.py | 0 .../SRTMinorServo/test/external/__init__.py | 0 .../SRTMinorServo/test/functional/__init__.py | 0 .../SRTMinorServo/test/pyunit/__init__.py | 0 12 files changed, 442 insertions(+), 5 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp rename SRT/Servers/SRTMinorServo/test/{ => TESTS}/plotDerotatorTrajectory.py (100%) rename SRT/Servers/SRTMinorServo/test/{ => TESTS}/plotSRPTrajectories.py (100%) delete mode 100644 SRT/Servers/SRTMinorServo/test/external/__init__.py delete mode 100644 SRT/Servers/SRTMinorServo/test/functional/__init__.py delete mode 100644 SRT/Servers/SRTMinorServo/test/pyunit/__init__.py diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index 45b31ad12..660457797 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -22,6 +22,7 @@ class SRTMinorServoSocket: public IRA::CSocket friend class SRTMinorServoSocketTest; friend class SRPProgramTrackTest; friend class DerotatorProgramTrackTest; +friend class CombinedProgramTrackTest; public: /** diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp index acdebca2a..a66fa5e0a 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp @@ -1,4 +1,5 @@ #include "SRTMinorServoSocket.h" +#include <iostream> std::mutex SRTMinorServoSocket::c_mutex; @@ -106,6 +107,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) Close(m_error); ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); exImpl.addData("Reason", "Timeout when sending command."); + std::cout << "Timeout sending command" << std::endl; throw exImpl; } } @@ -129,6 +131,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) Close(m_error); ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); exImpl.addData("Reason", "Timeout when receiving answer."); + std::cout << "Timeout receiving answer" << std::endl; throw exImpl; } } diff --git a/SRT/Servers/SRTMinorServo/test/.gitignore b/SRT/Servers/SRTMinorServo/test/.gitignore index 764e4f7bc..d3a2a1447 100644 --- a/SRT/Servers/SRTMinorServo/test/.gitignore +++ b/SRT/Servers/SRTMinorServo/test/.gitignore @@ -1,2 +1,3 @@ -SRP/* -Derotator/* +TESTS/SRP/* +TESTS/COMBINED/* +TESTS/DEROTATOR* diff --git a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp new file mode 100644 index 000000000..e0e06a2ae --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp @@ -0,0 +1,426 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif + +#define SOCKET_TIMEOUT 0.5 +#define NOISE_THRESHOLD 1 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 5 +#define STATUS_PERIOD 0.01 +#define EPSILON 0.00001 + +#define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } +#define SRP_MAX_RANGES std::vector<double>{ 40, 100, 40, 0.2, 0.2, 0.2 } + +#define DEROTATOR std::string("GFR1") +#define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } +#define DEROTATOR_MAX_RANGES std::vector<double>{ 220 } + + +std::atomic<bool> terminate = false; + + +class CombinedProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> SRPStartingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + std::vector<double> DerotatorStartingCoordinates = { 0.0 }; + std::string directory; + std::thread SRPStatusThread; + std::thread DerotatorStatusThread; + + static void printSRPStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + std::string status = serializeSRPStatus(SRPStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void printDerotatorStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string status = serializeDerotatorStatus(DerotatorStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeSRPStatus(SRTMinorServoAnswerMap map) + { + std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, SRP_COORDINATES)); + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeDerotatorStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, DEROTATOR_COORDINATES)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus, std::vector<std::string> coordinates) + { + std::vector<double> currentCoordinates; + + for(std::string coordinate : coordinates) + { + auto value = SRPStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + auto value = SRPStatus[elongation]; + + try + { + currentElongations.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentElongations.push_back(10000.0); + } + } + + return currentElongations; + } + + static bool compareCoordinates(std::vector<double> first, std::vector<double> second) + { + if(first.size() != second.size()) + return false; + + for(size_t i = 0; i < first.size(); i++) + { + double diff = fabs(first[i] - second[i]); + if(diff > EPSILON) + return false; + } + + return true; + } + + /*static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + sign = sign / abs(sign); + double offset_to_add; + axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 0.8; + coordinates[axis_to_move] += sign * offset_to_add; + if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + return true; + return false; + }*/ + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "OK." << std::endl; + + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending initial SRP STATUS command..."; + + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + std::cout << "OK." << std::endl; + + for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + SRTMinorServoAnswerMap DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_STATUS"]), 1); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_BLOCK"]), 2); + + for(iterator = DerotatorStatus.begin(); iterator != DerotatorStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "OK." << std::endl; + std::cout << "Sending all axes to 0..." << std::endl; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", SRPStartingCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("Derotatore" + DEROTATOR, DerotatorStartingCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + signal(SIGINT, CombinedProgramTrackTest::sigintHandler); + + bool SRPReady = false, DerotatorReady = false; + + while(true) + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + std::cout << serializeSRPStatus(SRPStatus) << std::endl; + + if(compareCoordinates(SRPStartingCoordinates, getCoordinates(SRPStatus, SRP_COORDINATES))) + SRPReady = true; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); + std::cout << serializeDerotatorStatus(DerotatorStatus) << std::endl; + + if(compareCoordinates(DerotatorStartingCoordinates, getCoordinates(DerotatorStatus, DEROTATOR_COORDINATES))) + DerotatorReady = true; + + if(SRPReady && DerotatorReady) + break; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + + std::cout << "OK." << std::endl; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/COMBINED"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + boost::filesystem::create_directory(directory + "/SRP"); + boost::filesystem::create_directory(directory + "/DEROTATOR"); + + SRPStatusThread = std::thread(&CombinedProgramTrackTest::printSRPStatus, directory + "/SRP/status.txt"); + DerotatorStatusThread = std::thread(&CombinedProgramTrackTest::printDerotatorStatus, directory + "/DEROTATOR/status.txt"); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(CombinedProgramTrackTest, CombinedProgramTrackTest) +{ + std::this_thread::sleep_for(std::chrono::seconds(5)); + terminate = true; + SRPStatusThread.join(); + DerotatorStatusThread.join(); + return; + + /*SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + programTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + else if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join();*/ +} diff --git a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp index 5c57c064d..bfa61a851 100644 --- a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp @@ -211,7 +211,7 @@ protected: std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; - directory_ss << "Derotator"; + directory_ss << "TESTS/DEROTATOR"; boost::filesystem::create_directory(directory_ss.str()); directory_ss << "/"; directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 4fc791f23..7493b4c96 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,7 +14,7 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest +EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest CombinedProgramTrackTest SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest SRTMinorServoSocketTest_CFLAGS = -std=c++17 @@ -31,6 +31,11 @@ DerotatorProgramTrackTest_CFLAGS = -std=c++17 DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem DerotatorProgramTrackTest_LDFLAGS = -lstdc++ -lpthread +CombinedProgramTrackTest_OBJECTS = CombinedProgramTrackTest +CombinedProgramTrackTest_CFLAGS = -std=c++17 +CombinedProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +CombinedProgramTrackTest_LDFLAGS = -lstdc++ -lpthread + # END OF CUSTOMIZATION # do not edit below this line #---------------------------- @@ -54,6 +59,7 @@ do_unit: all ../bin/SRTMinorServoSocketTest --gtest_output=xml:results/cppSRTMinorServoSocketTest.xml ../bin/SRPProgramTrackTest --gtest_output=xml:results/cppSRPProgramTrackTest.xml ../bin/DerotatorProgramTrackTest --gtest_output=xml:results/cppDerotatorProgramTrackTest.xml + ../bin/CombinedProgramTrackTest --gtest_output=xml:results/cppCombinedProgramTrackTest.xml do_pyunit: @echo "running python unit tests" diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index e546e7ff9..f0ea71a5f 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -242,7 +242,7 @@ protected: std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; - directory_ss << "SRP"; + directory_ss << "TESTS/SRP"; boost::filesystem::create_directory(directory_ss.str()); directory_ss << "/"; directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); diff --git a/SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/plotDerotatorTrajectory.py rename to SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py diff --git a/SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/plotSRPTrajectories.py rename to SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py diff --git a/SRT/Servers/SRTMinorServo/test/external/__init__.py b/SRT/Servers/SRTMinorServo/test/external/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/SRT/Servers/SRTMinorServo/test/functional/__init__.py b/SRT/Servers/SRTMinorServo/test/functional/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py b/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py deleted file mode 100644 index e69de29bb..000000000 -- GitLab From d054c778e4fbe89055a3e61f99295217670179e4 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 12 Jul 2023 09:09:51 +0000 Subject: [PATCH 037/150] Added sine wave tests --- .../test/DerotatorProgramTrackTest.cpp | 120 ++++++++---- .../test/SRPProgramTrackTest.cpp | 180 +++++++++++++++--- 2 files changed, 228 insertions(+), 72 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp index bfa61a851..65133c073 100644 --- a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp @@ -10,16 +10,20 @@ // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & -#define ADDRESS std::string("127.0.0.1") -#define PORT 12800 -//#define ADDRESS std::string("192.168.200.13") -//#define PORT 4758 +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif #define SOCKET_TIMEOUT 0.5 #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 5 #define EPSILON 0.00001 -#define MAX_RANGES std::vector<double>{ 220 } #define STATUS_PERIOD 0.01 +#define RANGES std::vector<double>{ 10.0, 50.0 } #define DEROTATOR std::string("GFR1") std::atomic<bool> terminate = false; @@ -28,7 +32,7 @@ std::atomic<bool> terminate = false; class DerotatorProgramTrackTest : public ::testing::Test { protected: - std::vector<double> startingCoordinates = { 0.0 }; + std::vector<double> startingCoordinates = { RANGES[0] }; std::string directory; std::thread statusThread; @@ -104,32 +108,21 @@ protected: return currentCoordinates; } - static bool compareCoordinates(std::vector<double> first, std::vector<double> second) - { - if(first.size() != second.size()) - return false; - - for(size_t i = 0; i < first.size(); i++) - { - double diff = fabs(first[i] - second[i]); - if(diff > EPSILON) - return false; - } - - return true; - } - static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) { sign = sign / abs(sign); double offset_to_add = 3.3 / 5; coordinates[axis_to_move] += sign * offset_to_add; - if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + if(sign > 0) { - sign = coordinates[axis_to_move] / fabs(coordinates[axis_to_move]); - coordinates[axis_to_move] = MAX_RANGES[axis_to_move] * sign; - return true; + coordinates[axis_to_move] = std::min(RANGES[1], coordinates[axis_to_move]); + } + else + { + coordinates[axis_to_move] = std::max(RANGES[0], coordinates[axis_to_move]); } + if(coordinates[axis_to_move] == RANGES[0] || coordinates[axis_to_move] == RANGES[1]) + return true; return false; } @@ -189,22 +182,20 @@ protected: signal(SIGINT, DerotatorProgramTrackTest::sigintHandler); - while(true) + + do { std::this_thread::sleep_for(std::chrono::milliseconds(100)); - DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); - if(!compareCoordinates(startingCoordinates, getCoordinates(DerotatorStatus))) - std::cout << serializeStatus(DerotatorStatus) << std::endl; - else - break; + std::cout << serializeStatus(DerotatorStatus) << std::endl; if(terminate) FAIL() << "Aborting test..." << std::endl; } + while(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]) != 40); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); std::cout << "OK." << std::endl; @@ -262,7 +253,6 @@ TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; double next_expected_time = start_time; - unsigned int axis_to_move = 0; int sign = 1; unsigned int idle_count = 0; bool idle = false; @@ -285,7 +275,7 @@ TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) idle = false; } } - else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + else if(moveAxis(programTrackCoordinates, 0, sign)) { sign *= -1; idle = true; @@ -296,9 +286,9 @@ TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + if(round(programTrackCoordinates[0] * 100) == 10 && sign == 1) { - programTrackCoordinates[axis_to_move] = 0.0; + programTrackCoordinates[0] = RANGES[0]; break; } } @@ -308,6 +298,56 @@ TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) statusThread.join(); } +TEST_F(DerotatorProgramTrackTest, SineWaveMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + double phase_shift = (double)std::rand() / RAND_MAX * 60; + double amplitude = (RANGES[1] - RANGES[0]) / 2; + double center = (RANGES[0] + RANGES[1]) / 2; + programTrackCoordinates[0] = center + amplitude * sin(phase_shift * 2 * M_PI / 60); + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + programTrackCoordinates[0] = center + amplitude * sin((time_delta + phase_shift) * 2 * M_PI / 60); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + statusThread.join(); +} + TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) { SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); @@ -316,7 +356,6 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - unsigned int axis_to_move = 0; int sign = 1; unsigned int idle_count = 0; bool idle = false; @@ -360,7 +399,7 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) } else { - if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + if(moveAxis(programTrackCoordinates, 0, sign)) { sign *= -1; idle = true; @@ -387,7 +426,6 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - unsigned int axis_to_move = 0; //Always Rotation int sign = -1; unsigned int idle_count = 0; bool idle = false; @@ -397,7 +435,7 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) while(!terminate) { std::vector<double> programTrackCoordinates = startingCoordinates; - programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + programTrackCoordinates[0] = 25.0; double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; long unsigned int trajectory_id = int(start_time); @@ -433,7 +471,7 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) } else { - if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + if(moveAxis(programTrackCoordinates, 0, sign)) { idle = true; } diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index f0ea71a5f..750972051 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -10,16 +10,19 @@ // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & -#define ADDRESS std::string("127.0.0.1") -#define PORT 12800 -//#define ADDRESS std::string("192.168.200.13") -//#define PORT 4758 +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif #define SOCKET_TIMEOUT 0.5 #define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 5 -#define EPSILON 0.00001 -#define MAX_RANGES std::vector<double>{ 40, 100, 40, 0.2, 0.2, 0.2 } +#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } #define STATUS_PERIOD 0.01 std::atomic<bool> terminate = false; @@ -138,29 +141,17 @@ protected: return currentElongations; } - static bool compareCoordinates(std::vector<double> first, std::vector<double> second) - { - if(first.size() != second.size()) - return false; - - for(size_t i = 0; i < first.size(); i++) - { - double diff = fabs(first[i] - second[i]); - if(diff > EPSILON) - return false; - } - - return true; - } - static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) { sign = sign / abs(sign); double offset_to_add; - axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 0.8; + axis_to_move >= 3 ? offset_to_add = 0.076 : offset_to_add = 0.8; coordinates[axis_to_move] += sign * offset_to_add; if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + { + coordinates[axis_to_move] = sign * MAX_RANGES[axis_to_move]; return true; + } return false; } @@ -213,32 +204,30 @@ protected: std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); } - std::cout << "Sending all axes to 0..."; + std::cout << "Sending all axes to the starting position..." << std::endl; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); signal(SIGINT, SRPProgramTrackTest::sigintHandler); - while(true) + do { std::this_thread::sleep_for(std::chrono::milliseconds(100)); - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); - - if(!compareCoordinates(startingCoordinates, getCoordinates(SRPStatus))) - std::cout << serializeStatus(SRPStatus) << std::endl; - else - break; + std::cout << serializeStatus(SRPStatus) << std::endl; if(terminate) FAIL() << "Aborting test..." << std::endl; } + while(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]) != 40); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); std::cout << "OK." << std::endl; + startingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + std::time_t tn = std::time(0); std::tm* now = std::localtime(&tn); std::stringstream directory_ss; @@ -339,6 +328,135 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) statusThread.join(); } +TEST_F(SRPProgramTrackTest, AllAxesMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + std::vector<int> sign = { 1, 1, 1 }; + std::vector<unsigned int> idle_count = { 0, 0, 0 }; + std::vector<bool> idle = { false, false, false }; + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + if(!idle[axis]) + { + if(moveAxis(programTrackCoordinates, axis, sign[axis])) + { + sign[axis] *= -1; + idle[axis] = true; + } + } + else + { + idle_count[axis]++; + if(idle_count[axis] == 5) + { + idle_count[axis] = 0; + idle[axis] = false; + } + } + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + for(size_t axis = 0; axis < 3; axis++) + { + if(round(programTrackCoordinates[axis] * 100) == 0 && sign[axis] == 1) + { + programTrackCoordinates[axis] = 0.0; + } + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, SineWaveMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + std::vector<double> phase_shift; + for(size_t axis = 0; axis < 3; axis++) + { + phase_shift.push_back((double)std::rand() / RAND_MAX * 60); + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); + } + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + statusThread.join(); +} + TEST_F(SRPProgramTrackTest, SeparateMovementTest) { SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); -- GitLab From c7a31211a33109fcfd75400e5cd4b9889dff52b7 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 12 Jul 2023 09:55:28 +0000 Subject: [PATCH 038/150] Added combined test and plotting script --- .../test/CombinedProgramTrackTest.cpp | 83 +++++++++++-- .../SRTMinorServo/test/TESTS/plotCombined.py | 112 ++++++++++++++++++ 2 files changed, 188 insertions(+), 7 deletions(-) create mode 100755 SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py diff --git a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp index e0e06a2ae..ffe65f60e 100644 --- a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp @@ -27,11 +27,11 @@ #define EPSILON 0.00001 #define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } -#define SRP_MAX_RANGES std::vector<double>{ 40, 100, 40, 0.2, 0.2, 0.2 } +#define SRP_MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } #define DEROTATOR std::string("GFR1") #define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } -#define DEROTATOR_MAX_RANGES std::vector<double>{ 220 } +#define DEROTATOR_RANGES std::vector<double>{ 10.0, 50.0 } std::atomic<bool> terminate = false; @@ -342,15 +342,84 @@ protected: } }; -TEST_F(CombinedProgramTrackTest, CombinedProgramTrackTest) +TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) { - std::this_thread::sleep_for(std::chrono::seconds(5)); - terminate = true; + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> SRPCoordinates = SRPStartingCoordinates; + std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; + + std::vector<double> phase_shift; + for(size_t axis = 0; axis < 3; axis++) + { + phase_shift.push_back((double)std::rand() / RAND_MAX * 60); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); + } + + phase_shift.push_back((double)std::rand() / RAND_MAX * 60); + double derotator_amplitude = (DEROTATOR_RANGES[1] - DEROTATOR_RANGES[0]) / 2; + double derotator_center = (DEROTATOR_RANGES[0] + DEROTATOR_RANGES[1]) / 2; + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[3] * 2 * M_PI / 60); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream SRPProgramTrackFile; + SRPProgramTrackFile.open(directory + "/SRP/trajectory.txt", ios::out); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, SRPCoordinates) << std::endl; + + ofstream DerotatorProgramTrackFile; + DerotatorProgramTrackFile.open(directory + "/DEROTATOR/trajectory.txt", ios::out); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, DerotatorCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); + } + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[3]) * 2 * M_PI / 60); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, SRPCoordinates) << std::endl; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, DerotatorCoordinates) << std::endl; + } + + SRPProgramTrackFile.close(); + DerotatorProgramTrackFile.close(); SRPStatusThread.join(); DerotatorStatusThread.join(); - return; - /*SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + /* SRTMinorServoAnswerMap SRPStatus; ofstream programTrackFile; diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py new file mode 100755 index 000000000..90ae79f00 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +srp_status_time = [] +derotator_status_time = [] +status_tx = [] +status_ty = [] +status_tz = [] +status_rx = [] +status_ry = [] +status_rz = [] +status_rotation = [] +starttime = None + +with open(os.path.join(arguments.directory, 'SRP', 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + srp_status_time.append(float(args[0]) - starttime) + status_tx.append(float(args[1])) + status_ty.append(float(args[2])) + status_tz.append(float(args[3])) + status_rx.append(float(args[4])) + status_ry.append(float(args[5])) + status_rz.append(float(args[6])) + +with open(os.path.join(arguments.directory, 'DEROTATOR', 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + derotator_status_time.append(float(args[0]) - starttime) + status_rotation.append(float(args[1])) + +trajectory_time = [] +trajectory_tx = [] +trajectory_ty = [] +trajectory_tz = [] +trajectory_rx = [] +trajectory_ry = [] +trajectory_rz = [] +trajectory_rotation = [] + +with open(os.path.join(arguments.directory, 'SRP', 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_tx.append(float(args[1])) + trajectory_ty.append(float(args[2])) + trajectory_tz.append(float(args[3])) + trajectory_rx.append(float(args[4])) + trajectory_ry.append(float(args[5])) + trajectory_rz.append(float(args[6])) + +with open(os.path.join(arguments.directory, 'DEROTATOR', 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_rotation.append(float(args[1])) + +fig, axs = plt.subplots(7) +fig.canvas.manager.set_window_title('Program Track Positions') +fig.suptitle('Program Track Positions') + +axs[0].plot(srp_status_time, status_tx, 'r') +axs[0].plot(trajectory_time, trajectory_tx, 'b') +axs[0].set_ylabel('tx (mm)') +axs[0].sharey(axs[1]) + +axs[1].plot(srp_status_time, status_ty, 'r') +axs[1].plot(trajectory_time, trajectory_ty, 'b') +axs[1].set_ylabel('ty (mm)') +axs[1].sharey(axs[2]) + +axs[2].plot(srp_status_time, status_tz, 'r') +axs[2].plot(trajectory_time, trajectory_tz, 'b') +axs[2].set_ylabel('tz (mm)') + +axs[3].plot(srp_status_time, status_rx, 'r') +axs[3].plot(trajectory_time, trajectory_rx, 'b') +axs[3].set_ylabel('rx (deg)') +axs[3].sharey(axs[4]) + +axs[4].plot(srp_status_time, status_ry, 'r') +axs[4].plot(trajectory_time, trajectory_ry, 'b') +axs[4].set_ylabel('ry (deg)') +axs[4].sharey(axs[5]) + +axs[5].plot(srp_status_time, status_rz, 'r') +axs[5].plot(trajectory_time, trajectory_rz, 'b') +axs[5].set_ylabel('rz (deg)') + +axs[6].plot(derotator_status_time, status_rotation, 'r') +axs[6].plot(trajectory_time, trajectory_rotation, 'b') +axs[6].set_ylabel('derot (deg)') +axs[6].set_xlabel('time (s)') + + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +try: + plt.show() +except KeyboardInterrupt: + pass -- GitLab From 2da5baf48c0b0e58109c802e9775bac3408ae7d7 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 12 Jul 2023 10:16:03 +0000 Subject: [PATCH 039/150] Included rotations in sine wave tests --- .../test/CombinedProgramTrackTest.cpp | 78 +------------------ .../test/SRPProgramTrackTest.cpp | 5 +- 2 files changed, 4 insertions(+), 79 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp index ffe65f60e..0e5ce51fd 100644 --- a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp @@ -355,7 +355,7 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; std::vector<double> phase_shift; - for(size_t axis = 0; axis < 3; axis++) + for(size_t axis = 0; axis < 6; axis++) { phase_shift.push_back((double)std::rand() / RAND_MAX * 60); SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); @@ -399,7 +399,7 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; - for(size_t axis = 0; axis < 3; axis++) + for(size_t axis = 0; axis < 6; axis++) { SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); } @@ -418,78 +418,4 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) DerotatorProgramTrackFile.close(); SRPStatusThread.join(); DerotatorStatusThread.join(); - - /* - SRTMinorServoAnswerMap SRPStatus; - - ofstream programTrackFile; - programTrackFile.open(directory + "/trajectory.txt", ios::out); - - unsigned int axis_to_move = 0; - int sign = 1; - unsigned int idle_count = 0; - bool idle = false; - - std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; - std::vector<double> programTrackCoordinates = startingCoordinates; - - while(!terminate) - { - double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; - long unsigned int trajectory_id = int(start_time); - double next_expected_time = start_time; - unsigned int point_id = 0; - - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - programTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); - - while(!terminate) - { - next_expected_time += TIMEGAP; - - std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); - point_id++; - - if(idle) - { - idle_count++; - if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) - { - idle_count = 0; - idle = false; - break; - } - } - else - { - if(moveAxis(programTrackCoordinates, axis_to_move, sign)) - { - sign *= -1; - idle = true; - } - else if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) - { - programTrackCoordinates[axis_to_move] = 0.0; - axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; - idle = true; - } - - SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - } - - //std::cout << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - programTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - } - } - - programTrackFile.close(); - statusThread.join();*/ } diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index 750972051..d66bca9de 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -411,7 +411,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) std::vector<double> programTrackCoordinates = startingCoordinates; std::vector<double> phase_shift; - for(size_t axis = 0; axis < 3; axis++) + for(size_t axis = 0; axis < 6; axis++) { phase_shift.push_back((double)std::rand() / RAND_MAX * 60); programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); @@ -442,14 +442,13 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; - for(size_t axis = 0; axis < 3; axis++) + for(size_t axis = 0; axis < 6; axis++) { programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } -- GitLab From 8bdc922d911203a9638a48c52ed7f5ead6f6ac77 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 4 Sep 2023 14:44:52 +0000 Subject: [PATCH 040/150] Updated new minor servos tests --- .../include/SRTMinorServoSocket.h | 1 + .../test/CombinedProgramTrackTest.cpp | 187 ++++++++++++--- .../test/DerotatorProgramTrackTest.cpp | 29 ++- SRT/Servers/SRTMinorServo/test/Makefile | 8 +- .../SRTMinorServo/test/ReadStatusOnlyTest.cpp | 216 ++++++++++++++++++ .../test/SRPProgramTrackTest.cpp | 58 +++-- .../SRTMinorServo/test/TESTS/plotCombined.py | 2 +- 7 files changed, 434 insertions(+), 67 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index 660457797..e00f63cb7 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -23,6 +23,7 @@ friend class SRTMinorServoSocketTest; friend class SRPProgramTrackTest; friend class DerotatorProgramTrackTest; friend class CombinedProgramTrackTest; +friend class ReadStatusOnlyTest; public: /** diff --git a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp index 0e5ce51fd..d53245b9f 100644 --- a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp @@ -27,11 +27,13 @@ #define EPSILON 0.00001 #define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } -#define SRP_MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } +#define SRP_MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } +#define SRP_MAX_SPEED std::vector<double>{ 4.0, 4.0, 4.0, 0.04, 0.04, 0.04 } #define DEROTATOR std::string("GFR1") #define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } -#define DEROTATOR_RANGES std::vector<double>{ 10.0, 50.0 } +#define DEROTATOR_RANGES std::vector<double>{ 10.0, 100.0 } +#define DEROTATOR_MAX_SPEED std::vector<double>{ 3.3 } std::atomic<bool> terminate = false; @@ -41,10 +43,46 @@ class CombinedProgramTrackTest : public ::testing::Test { protected: std::vector<double> SRPStartingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; - std::vector<double> DerotatorStartingCoordinates = { 0.0 }; + std::vector<double> DerotatorStartingCoordinates = { 10.0 }; std::string directory; - std::thread SRPStatusThread; - std::thread DerotatorStatusThread; + std::thread statusThread; + + static void printStatus(std::string directory) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPStatusFile, DerotatorStatusFile; + SRPStatusFile.open(directory + "/SRP/status.txt", ios::out); + DerotatorStatusFile.open(directory + "/DEROTATOR/status.txt", ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string SRPStringStatus = serializeSRPStatus(SRPStatus); + std::string DerotatorStringStatus = serializeDerotatorStatus(DerotatorStatus); + + SRPStatusFile << SRPStringStatus << std::endl; + DerotatorStatusFile << DerotatorStringStatus << std::endl; + if(counter % 10 == 0) + { + std::cout << SRPStringStatus << std::endl; + std::cout << DerotatorStringStatus << std::endl; + } + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + SRPStatusFile.close(); + DerotatorStatusFile.close(); + } static void printSRPStatus(std::string filename) { @@ -200,17 +238,6 @@ protected: return true; } - /*static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) - { - sign = sign / abs(sign); - double offset_to_add; - axis_to_move >= 3 ? offset_to_add = 0.05 : offset_to_add = 0.8; - coordinates[axis_to_move] += sign * offset_to_add; - if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) - return true; - return false; - }*/ - void SetUp() override { srand((int)CIRATools::getUNIXEpoch()); @@ -282,32 +309,26 @@ protected: bool SRPReady = false, DerotatorReady = false; - while(true) + do { std::this_thread::sleep_for(std::chrono::milliseconds(100)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); std::cout << serializeSRPStatus(SRPStatus) << std::endl; - - if(compareCoordinates(SRPStartingCoordinates, getCoordinates(SRPStatus, SRP_COORDINATES))) - SRPReady = true; + SRPReady = std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]) == 40 ? true : false; DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); std::cout << serializeDerotatorStatus(DerotatorStatus) << std::endl; - - if(compareCoordinates(DerotatorStartingCoordinates, getCoordinates(DerotatorStatus, DEROTATOR_COORDINATES))) - DerotatorReady = true; - - if(SRPReady && DerotatorReady) - break; + DerotatorReady = std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]) == 40 ? true : false; if(terminate) FAIL() << "Aborting test..." << std::endl; } + while(!SRPReady || !DerotatorReady); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); std::cout << "OK." << std::endl; @@ -331,8 +352,7 @@ protected: boost::filesystem::create_directory(directory + "/SRP"); boost::filesystem::create_directory(directory + "/DEROTATOR"); - SRPStatusThread = std::thread(&CombinedProgramTrackTest::printSRPStatus, directory + "/SRP/status.txt"); - DerotatorStatusThread = std::thread(&CombinedProgramTrackTest::printDerotatorStatus, directory + "/DEROTATOR/status.txt"); + statusThread = std::thread(&CombinedProgramTrackTest::printStatus, directory); } void TearDown() override @@ -355,16 +375,20 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; std::vector<double> phase_shift; + std::vector<double> period; for(size_t axis = 0; axis < 6; axis++) { - phase_shift.push_back((double)std::rand() / RAND_MAX * 60); - SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); + period.push_back(SRP_MAX_RANGES[axis] / SRP_MAX_SPEED[axis] * 4); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); } - phase_shift.push_back((double)std::rand() / RAND_MAX * 60); double derotator_amplitude = (DEROTATOR_RANGES[1] - DEROTATOR_RANGES[0]) / 2; double derotator_center = (DEROTATOR_RANGES[0] + DEROTATOR_RANGES[1]) / 2; - DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[3] * 2 * M_PI / 60); + // Derotator period + period.push_back(80); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[6]); + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[6] * 2 * M_PI / period[6]); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates, start_time)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -401,9 +425,9 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) for(size_t axis = 0; axis < 6; axis++) { - SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); } - DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[3]) * 2 * M_PI / 60); + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[6]) * 2 * M_PI / period[6]); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates)); EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); @@ -416,6 +440,93 @@ TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) SRPProgramTrackFile.close(); DerotatorProgramTrackFile.close(); - SRPStatusThread.join(); - DerotatorStatusThread.join(); + statusThread.join(); +} + +TEST_F(CombinedProgramTrackTest, SineWaveSeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPProgramTrackFile; + SRPProgramTrackFile.open(directory + "/SRP/trajectory.txt", ios::out); + + ofstream DerotatorProgramTrackFile; + DerotatorProgramTrackFile.open(directory + "/DEROTATOR/trajectory.txt", ios::out); + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "Starting new trajectory with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> SRPCoordinates = SRPStartingCoordinates; + std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; + + std::vector<double> phase_shift; + std::vector<double> period; + for(size_t axis = 0; axis < 6; axis++) + { + period.push_back(SRP_MAX_RANGES[axis] / SRP_MAX_SPEED[axis] * 4); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); + } + + double derotator_amplitude = (DEROTATOR_RANGES[1] - DEROTATOR_RANGES[0]) / 2; + double derotator_center = (DEROTATOR_RANGES[0] + DEROTATOR_RANGES[1]) / 2; + // Derotator period + period.push_back(80); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[6]); + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[6] * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, SRPCoordinates) << std::endl; + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, DerotatorCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 6; axis++) + { + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); + } + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[6]) * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, SRPCoordinates) << std::endl; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, DerotatorCoordinates) << std::endl; + + if(point_id == 1000) + break; + } + } + + SRPProgramTrackFile.close(); + DerotatorProgramTrackFile.close(); + statusThread.join(); } diff --git a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp index 65133c073..6f5f719da 100644 --- a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp @@ -54,7 +54,7 @@ protected: std::string status = serializeStatus(DerotatorStatus); statusFile << status << std::endl; - if(counter % 10 == 0) + if(counter % (long unsigned int)(0.1 / STATUS_PERIOD) == 0) std::cout << status << std::endl; counter++; @@ -111,7 +111,7 @@ protected: static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) { sign = sign / abs(sign); - double offset_to_add = 3.3 / 5; + double offset_to_add = 3.3 * TIMEGAP; coordinates[axis_to_move] += sign * offset_to_add; if(sign > 0) { @@ -175,14 +175,13 @@ protected: std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); } - std::cout << "Sending derotator to 0..."; + std::cout << "Sending derotator to the initial position..." << std::endl; DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("Derotatore" + DEROTATOR, startingCoordinates)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); signal(SIGINT, DerotatorProgramTrackTest::sigintHandler); - do { std::this_thread::sleep_for(std::chrono::milliseconds(100)); @@ -242,7 +241,7 @@ TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) DerotatorStatus = socket.sendCommand(command); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); @@ -309,7 +308,8 @@ TEST_F(DerotatorProgramTrackTest, SineWaveMovementTest) double phase_shift = (double)std::rand() / RAND_MAX * 60; double amplitude = (RANGES[1] - RANGES[0]) / 2; double center = (RANGES[0] + RANGES[1]) / 2; - programTrackCoordinates[0] = center + amplitude * sin(phase_shift * 2 * M_PI / 60); + double period = 80; + programTrackCoordinates[0] = center + amplitude * sin(phase_shift * 2 * M_PI / period); SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); SRTMinorServoAnswerMap DerotatorStatus; @@ -336,7 +336,7 @@ TEST_F(DerotatorProgramTrackTest, SineWaveMovementTest) std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; - programTrackCoordinates[0] = center + amplitude * sin((time_delta + phase_shift) * 2 * M_PI / 60); + programTrackCoordinates[0] = center + amplitude * sin((time_delta + phase_shift) * 2 * M_PI / period); DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); @@ -363,6 +363,8 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; std::vector<double> programTrackCoordinates = startingCoordinates; + bool immediate = true; + while(!terminate) { double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; @@ -374,7 +376,7 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); @@ -390,7 +392,8 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) if(idle) { idle_count++; - if(idle_count == 25) + //if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP || immediate) { idle_count = 0; idle = false; @@ -412,6 +415,8 @@ TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } + + //immediate = immediate ? false : true; } programTrackFile.close(); @@ -435,7 +440,7 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) while(!terminate) { std::vector<double> programTrackCoordinates = startingCoordinates; - programTrackCoordinates[0] = 25.0; + programTrackCoordinates[0] = RANGES[1]; double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; long unsigned int trajectory_id = int(start_time); @@ -446,7 +451,7 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); @@ -462,7 +467,7 @@ TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) if(idle) { idle_count++; - if(idle_count == 25) + if(idle_count == (ADVANCE_TIMEGAP * 2) / TIMEGAP) { idle_count = 0; idle = false; diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 7493b4c96..035f03688 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,7 +14,7 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest CombinedProgramTrackTest +EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest SRTMinorServoSocketTest_CFLAGS = -std=c++17 @@ -36,6 +36,11 @@ CombinedProgramTrackTest_CFLAGS = -std=c++17 CombinedProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem CombinedProgramTrackTest_LDFLAGS = -lstdc++ -lpthread +ReadStatusOnlyTest_OBJECTS = ReadStatusOnlyTest +ReadStatusOnlyTest_CFLAGS = -std=c++17 +ReadStatusOnlyTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +ReadStatusOnlyTest_LDFLAGS = -lstdc++ -lpthread + # END OF CUSTOMIZATION # do not edit below this line #---------------------------- @@ -60,6 +65,7 @@ do_unit: all ../bin/SRPProgramTrackTest --gtest_output=xml:results/cppSRPProgramTrackTest.xml ../bin/DerotatorProgramTrackTest --gtest_output=xml:results/cppDerotatorProgramTrackTest.xml ../bin/CombinedProgramTrackTest --gtest_output=xml:results/cppCombinedProgramTrackTest.xml + ../bin/ReadStatusOnlyTest --gtest_output=xml:results/cppReadStatusOnlyTest.xml do_pyunit: @echo "running python unit tests" diff --git a/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp b/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp new file mode 100644 index 000000000..833348bba --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp @@ -0,0 +1,216 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +//#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif + +#define SOCKET_TIMEOUT 0.5 +#define STATUS_PERIOD 0.1 +#define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } +#define DEROTATOR std::string("GFR1") +#define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } + + +std::atomic<bool> terminate = false; + + +class ReadStatusOnlyTest : public ::testing::Test +{ +protected: + std::string directory; + + static void printStatus(std::string directory, bool timestamp_only=false) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPStatusFile, DerotatorStatusFile; + SRPStatusFile.open(directory + "/SRP/status.txt", ios::out); + SRPStatusFile << std::fixed << std::setprecision(6); + DerotatorStatusFile.open(directory + "/DEROTATOR/status.txt", ios::out); + DerotatorStatusFile << std::fixed << std::setprecision(6); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string SRPStringStatus = serializeSRPStatus(SRPStatus); + std::string DerotatorStringStatus = serializeDerotatorStatus(DerotatorStatus); + + if(timestamp_only) + { + SRPStatusFile << std::get<double>(SRPStatus["TIMESTAMP"]) << std::endl; + DerotatorStatusFile << std::get<double>(DerotatorStatus["TIMESTAMP"]) << std::endl; + } + else + { + SRPStatusFile << SRPStringStatus << std::endl; + DerotatorStatusFile << DerotatorStringStatus << std::endl; + } + + if(counter % 10 == 0) + { + std::cout << SRPStringStatus << std::endl; + std::cout << DerotatorStringStatus << std::endl; + } + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + SRPStatusFile.close(); + DerotatorStatusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeSRPStatus(SRTMinorServoAnswerMap map) + { + std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, SRP_COORDINATES)); + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeDerotatorStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, DEROTATOR_COORDINATES)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus, std::vector<std::string> coordinates) + { + std::vector<double> currentCoordinates; + + for(std::string coordinate : coordinates) + { + auto value = SRPStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + auto value = SRPStatus[elongation]; + + try + { + currentElongations.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentElongations.push_back(10000.0); + } + } + + return currentElongations; + } + + void SetUp() override + { + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + signal(SIGINT, ReadStatusOnlyTest::sigintHandler); + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/COMBINED"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + boost::filesystem::create_directory(directory + "/SRP"); + boost::filesystem::create_directory(directory + "/DEROTATOR"); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(ReadStatusOnlyTest, ReadStatusTest) +{ + ReadStatusOnlyTest::printStatus(directory, true); +} diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index d66bca9de..c53bebd49 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -22,7 +22,9 @@ #define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 5 -#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } +//#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } +#define MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } +#define MAX_SPEED std::vector<double>{ 4, 4, 4, 0.04, 0.04, 0.04 } #define STATUS_PERIOD 0.01 std::atomic<bool> terminate = false; @@ -72,7 +74,21 @@ protected: static std::string serializeStatus(SRTMinorServoAnswerMap map) { - std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + std::string status; + try + { + status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad timestamp!" << std::endl; + + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = map.begin(); iterator != map.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + } status += serializeElongations(getElongations(map)); return status; } @@ -110,8 +126,8 @@ protected: } catch(std::bad_variant_access const& ex) { - std::cout << ex.what() << ", variant index: " << value.index() << std::endl; - currentCoordinates.push_back(200.0); + std::cout << "Bad floating point coordinate:" << std::get<long>(value) << std::endl; + currentCoordinates.push_back(double(std::get<long>(value))); } } @@ -133,8 +149,8 @@ protected: } catch(std::bad_variant_access const& ex) { - std::cout << ex.what() << ", variant index: " << value.index() << std::endl; - currentElongations.push_back(10000.0); + std::cout << "Bad floating point elongation:" << std::get<long>(value) << std::endl; + currentElongations.push_back(double(std::get<long>(value))); } } @@ -143,10 +159,16 @@ protected: static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) { - sign = sign / abs(sign); - double offset_to_add; - axis_to_move >= 3 ? offset_to_add = 0.076 : offset_to_add = 0.8; + double starting_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + double offset_to_add = MAX_SPEED[axis_to_move] / 5; coordinates[axis_to_move] += sign * offset_to_add; + double ending_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + if(starting_sign == -1 && ending_sign >= 0) + { + // Zero crossed + coordinates[axis_to_move] = 0.0; + return false; + } if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) { coordinates[axis_to_move] = sign * MAX_RANGES[axis_to_move]; @@ -411,10 +433,13 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) std::vector<double> programTrackCoordinates = startingCoordinates; std::vector<double> phase_shift; + std::vector<double> period; for(size_t axis = 0; axis < 6; axis++) { - phase_shift.push_back((double)std::rand() / RAND_MAX * 60); - programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / 60); + double period_multiplier = axis < 3 ? 4 : 4; + period.push_back(MAX_RANGES[axis] / MAX_SPEED[axis] * period_multiplier); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); } SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); @@ -444,7 +469,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) for(size_t axis = 0; axis < 6; axis++) { - programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / 60); + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); @@ -472,6 +497,8 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; std::vector<double> programTrackCoordinates = startingCoordinates; + bool immediate = true; + while(!terminate) { double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; @@ -499,7 +526,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) if(idle) { idle_count++; - if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + if(idle_count == (ADVANCE_TIMEGAP / TIMEGAP) || immediate) { idle_count = 0; idle = false; @@ -513,9 +540,8 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) sign *= -1; idle = true; } - else if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + else if(programTrackCoordinates[axis_to_move] == 0.0 && sign == 1) { - programTrackCoordinates[axis_to_move] = 0.0; axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; idle = true; } @@ -527,6 +553,8 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } + + //immediate = immediate ? false : true; } programTrackFile.close(); diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py index 90ae79f00..87127cccb 100755 --- a/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py @@ -67,7 +67,7 @@ with open(os.path.join(arguments.directory, 'DEROTATOR', 'trajectory.txt'), 'r') args = line.strip().split() trajectory_rotation.append(float(args[1])) -fig, axs = plt.subplots(7) +fig, axs = plt.subplots(7, sharex=True) fig.canvas.manager.set_window_title('Program Track Positions') fig.suptitle('Program Track Positions') -- GitLab From de3d709bb930f1f726438f63d9c24904b1fa8b80 Mon Sep 17 00:00:00 2001 From: Andrea Orlati <aorlati@users.noreply.github.com> Date: Thu, 7 Sep 2023 09:57:42 +0200 Subject: [PATCH 041/150] Adding C-band receiver supporto to centos_7_compatibility (#811) * fix issue #806: Preliminary support for C band receiver at the SRT. IF2 conversion control, component configuration, data configuration, Station procedure, changelog, Receivers boss configuration are still missing. I also recoded some parts of the system in order to get rid of the warnings coming from new gcc compiler. Introduced a GCC Compiler Directive workaround to by pass warning from ACS source code. * fix issue #806: Recoding to overcome warnings during compilation ended. Drawbacks are not expected but a check is required since some library header files have been touched. Added all missing receiver configurations (mnemonic is CCG). Missing other subsystem configurations such us servo system or backend. Missing as well the part to control the board for the 1st and 2nd conversion of the receiver. * fix issue #806: a couple of fixes to guarantee nothing is broken by the changes made to get rid of deprecated code --------- Co-authored-by: Andrea Orlati <a.orati@ira.inaf.it> --- CHANGELOG.md | 1 + .../IRALibrary/include/Cplusplus11Helper.h | 11 + .../IRALibrary/include/CustomLoggerUtils.h | 7 + Common/Libraries/IRALibrary/include/DBTable.h | 7 + .../Libraries/IRALibrary/include/DataField.h | 7 + .../Libraries/IRALibrary/include/DateTime.h | 7 + .../IRALibrary/include/Definitions.h | 19 + Common/Libraries/IRALibrary/include/IRA | 7 + .../Libraries/IRALibrary/include/IRATools.h | 8 + .../Libraries/IRALibrary/include/LogFilter.h | 7 + .../IRALibrary/include/MicroControllerBoard.h | 10 +- .../IRALibrary/include/ReceiverControl.h | 90 +- .../IRALibrary/include/ScheduleTimer.h | 7 + Common/Libraries/IRALibrary/include/String.h | 136 +- .../include/TimeTaggedCircularArray.h | 8 + .../IRALibrary/include/TimeoutSync.h | 7 +- Common/Libraries/IRALibrary/src/Lecom.cpp | 2 +- Common/Libraries/IRALibrary/src/Makefile | 2 +- .../IRALibrary/src/MicroControllerBoard.cpp | 10 +- .../IRALibrary/src/ReceiverControl.cpp | 90 +- .../Libraries/IRALibrary/src/SourceFlux.cpp | 3 +- Common/Libraries/IRALibrary/src/String.cpp | 32 +- .../src/TimeTaggedCircularArray.cpp | 3 +- .../ParserLibrary/include/SP_function0.h | 22 +- .../ParserLibrary/include/SP_function1.h | 22 +- .../ParserLibrary/include/SP_function2.h | 22 +- .../ParserLibrary/include/SP_function3.h | 22 +- .../ParserLibrary/include/SP_function4.h | 22 +- .../ParserLibrary/include/SP_function5.h | 22 +- .../ParserLibrary/include/SP_function6.h | 22 +- .../ParserLibrary/include/SP_function7.h | 20 +- .../ParserLibrary/include/SP_parser.h | 20 +- .../ParserLibrary/include/SP_parser.i | 35 +- .../ParserLibrary/include/SP_typeConversion.h | 100 +- .../ParserLibrary/include/SP_types.h | 74 +- .../ParserLibrary/src/TestFunctions.cpp | 2 +- .../ParserLibrary/src/TestParser.cpp | 3 +- .../Libraries/ParserLibrary/src/TestTypes.cpp | 3 +- .../CDB/MACI/Managers/Manager/Manager.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 2 +- Noto/CDB/MACI/Managers/Manager/Manager.xml | 2 +- .../CDB/MACI/Managers/Manager/Manager.xml | 2 +- .../StationProcedures/StationProcedures.xml | 8 + SRT/CDB/alma/RECEIVERS/Boss/Boss.xml | 2 + .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 18 + .../SRT7GHzReceiver/SRT7GHzReceiver.xml | 2 +- .../SRT5GHzContainer/SRT5GHzContainer.xml | 36 + .../CDB/MACI/Managers/Manager/Manager.xml | 2 +- .../DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml | 15 + .../SRT5GHzReceiver/NoiseMark/NoiseMark.xml | 16 + .../NormalModeSetup/NormalModeSetup.xml | 25 + .../Synthesizer/Synthesizer.xml | 10 + .../DataBlock/SRT5GHzReceiver/Taper/Taper.xml | 14 + .../StationProcedures/StationProcedures.xml | 8 + .../CDB/alma/RECEIVERS/Boss/Boss.xml | 2 + .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 187 +++ .../SRTReceiversInterface/idl/SRT5GHz.idl | 108 ++ .../SRTReceiversInterface/src/Makefile | 3 +- .../SRTScripts/app-defaults/discosStartup.xml | 20 +- .../app-defaults/simulationStartup.xml | 11 +- .../config/CDB/schemas/SRT5GHzReceiver.xsd | 106 ++ .../SRT5GHzReceiver/include/ComponentCore.h | 490 ++++++++ .../SRT5GHzReceiver/include/Configuration.h | 272 ++++ .../SRT5GHzReceiver/include/DevIOBandWidth.h | 78 ++ .../include/DevIOComponentStatus.h | 61 + .../include/DevIOCryoTemperatureCoolHead.h | 78 ++ .../DevIOCryoTemperatureCoolHeadWindow.h | 78 ++ .../include/DevIOCryoTemperatureLNA.h | 78 ++ .../include/DevIOCryoTemperatureLNAWindow.h | 78 ++ .../include/DevIOEnvTemperature.h | 78 ++ .../include/DevIOInitialFrequency.h | 77 ++ .../include/DevIOLNAControls.h | 80 ++ .../include/DevIOLocalOscillator.h | 77 ++ .../SRT5GHzReceiver/include/DevIOMode.h | 59 + .../include/DevIOPolarization.h | 77 ++ .../SRT5GHzReceiver/include/DevIOStatus.h | 80 ++ .../SRT5GHzReceiver/include/DevIOVacuum.h | 77 ++ .../SRT5GHzReceiver/include/MonitorThread.h | 87 ++ .../SRT5GHzReceiver/include/SRT5GHzImpl.h | 493 ++++++++ .../SRT5GHzReceiver/src/ComponentCore.cpp | 1117 +++++++++++++++++ .../SRT5GHzReceiver/src/Configuration.cpp | 523 ++++++++ SRT/Servers/SRT5GHzReceiver/src/Makefile | 209 +++ .../SRT5GHzReceiver/src/MonitorThread.cpp | 199 +++ .../SRT5GHzReceiver/src/SRT5GHzImpl.cpp | 581 +++++++++ SystemMake/Makefile | 5 +- 85 files changed, 6222 insertions(+), 303 deletions(-) create mode 100644 Common/Libraries/IRALibrary/include/Cplusplus11Helper.h create mode 100644 SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml create mode 100644 SRT/Configuration/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml create mode 100644 SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml create mode 100644 SRT/Interfaces/SRTReceiversInterface/idl/SRT5GHz.idl create mode 100644 SRT/Servers/SRT5GHzReceiver/config/CDB/schemas/SRT5GHzReceiver.xsd create mode 100644 SRT/Servers/SRT5GHzReceiver/include/ComponentCore.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/Configuration.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOBandWidth.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOComponentStatus.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHead.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHeadWindow.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNA.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNAWindow.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOEnvTemperature.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOInitialFrequency.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOLNAControls.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOLocalOscillator.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOMode.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOPolarization.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOStatus.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/DevIOVacuum.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/MonitorThread.h create mode 100644 SRT/Servers/SRT5GHzReceiver/include/SRT5GHzImpl.h create mode 100644 SRT/Servers/SRT5GHzReceiver/src/ComponentCore.cpp create mode 100644 SRT/Servers/SRT5GHzReceiver/src/Configuration.cpp create mode 100644 SRT/Servers/SRT5GHzReceiver/src/Makefile create mode 100644 SRT/Servers/SRT5GHzReceiver/src/MonitorThread.cpp create mode 100644 SRT/Servers/SRT5GHzReceiver/src/SRT5GHzImpl.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bc409201..5836a5f16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/ ## [Next Release] - ## Added + issue #806 Added supprto for the C-band receiver at the SRT ## Fixed ## Changed issue #689 - The dataset provided by wether station has been enlarged by the wind direction. The correctponding RAL 'wx' command will noe provided wind direction readout, as well diff --git a/Common/Libraries/IRALibrary/include/Cplusplus11Helper.h b/Common/Libraries/IRALibrary/include/Cplusplus11Helper.h new file mode 100644 index 000000000..fd00329b6 --- /dev/null +++ b/Common/Libraries/IRALibrary/include/Cplusplus11Helper.h @@ -0,0 +1,11 @@ +#ifndef CPLUSPLUS_HELPER_H +#define CPLUSPLUS_HELPER_H + +#if (__cplusplus > 199711L ) +#define C11_STRINGIFY(X) #X +#define C11_IGNORE_WARNING_PUSH _Pragma("GCC diagnostic push") +#define C11_IGNORE_WARNING_POP _Pragma("GCC diagnostic pop") +#define C11_IGNORE_WARNING(X) _Pragma(C11_STRINGIFY(GCC diagnostic ignored X)) +#endif + +#endif \ No newline at end of file diff --git a/Common/Libraries/IRALibrary/include/CustomLoggerUtils.h b/Common/Libraries/IRALibrary/include/CustomLoggerUtils.h index 3cc494f34..9669a02ee 100644 --- a/Common/Libraries/IRALibrary/include/CustomLoggerUtils.h +++ b/Common/Libraries/IRALibrary/include/CustomLoggerUtils.h @@ -1,7 +1,14 @@ #ifndef CUSTOM_LOGGER_UTILS_H #define CUSTOM_LOGGER_UTILS_H +#include <Cplusplus11Helper.h> + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <logging.h> +C11_IGNORE_WARNING_POP #include <ManagmentDefinitionsS.h> #define CUSTOM_LOGGING_DATA_NAME "source" diff --git a/Common/Libraries/IRALibrary/include/DBTable.h b/Common/Libraries/IRALibrary/include/DBTable.h index d920c1c0f..fdc74b70c 100644 --- a/Common/Libraries/IRALibrary/include/DBTable.h +++ b/Common/Libraries/IRALibrary/include/DBTable.h @@ -11,8 +11,15 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 22/06/2006 Creation */ /* Andrea Orlati(aorlati@ira.inaf.it) 15/04/2010 Now the table also suppport calls from maci simple clients */ +#include <Cplusplus11Helper.h> + #include <vector> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <baciValue.h> +C11_IGNORE_WARNING_POP #include "IRA" #include "DataField.h" #include <expat.h> diff --git a/Common/Libraries/IRALibrary/include/DataField.h b/Common/Libraries/IRALibrary/include/DataField.h index 521ffbf2e..36c47de85 100644 --- a/Common/Libraries/IRALibrary/include/DataField.h +++ b/Common/Libraries/IRALibrary/include/DataField.h @@ -11,8 +11,15 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 07/06/2006 Creation */ /* Andrea Orlati(aorlati@ira.inaf.it) 26/01/2018 Rewritten in order to bypass an issue with 64bit ACS2017 */ +#include <Cplusplus11Helper.h> + #include <vector> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <baciValue.h> +C11_IGNORE_WARNING_POP #include "Definitions.h" #include "String.h" diff --git a/Common/Libraries/IRALibrary/include/DateTime.h b/Common/Libraries/IRALibrary/include/DateTime.h index 97e676527..1f48d6f61 100644 --- a/Common/Libraries/IRALibrary/include/DateTime.h +++ b/Common/Libraries/IRALibrary/include/DateTime.h @@ -16,7 +16,14 @@ #ifndef DATETIME_H #define DATETIME_H +#include <Cplusplus11Helper.h> + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <acstimeEpochHelper.h> +C11_IGNORE_WARNING_POP #include "Definitions.h" #include "IRATools.h" #include "Site.h" diff --git a/Common/Libraries/IRALibrary/include/Definitions.h b/Common/Libraries/IRALibrary/include/Definitions.h index 8b7d0cf42..230baecf8 100644 --- a/Common/Libraries/IRALibrary/include/Definitions.h +++ b/Common/Libraries/IRALibrary/include/Definitions.h @@ -252,6 +252,24 @@ COMPL.getErrorTraceHelper()->top(); \ } +#ifdef _CPLUSPLUS11_PORTING_ +/** + * This macro is a shortcut. This is the implementation of the function that will returns the reference of a component + * property. + * @param IMPLCLASS the name of the c++ class that implements the IDL interface of the component. + * @param TYPE the type of the ACS property that will be returned as a reference + * @param PROPERTY the c++ object that implmemnts the ACS property + * @param PROPERTYNAME the name of the property as reported in the idl file that defines the interface + * @throw CORBA::SystemException +*/ +#define _PROPERTY_REFERENCE_CPP(IMPLCLASS,TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr IMPLCLASS::PROPERTYNAME() \ +{ \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + +#else /** * This macro is a shortcut. This is the implementation of the function that will returns the reference of a component * property. @@ -266,5 +284,6 @@ TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ return tmp._retn(); \ } +#endif #endif diff --git a/Common/Libraries/IRALibrary/include/IRA b/Common/Libraries/IRALibrary/include/IRA index cb15cd348..32ccc3bd8 100644 --- a/Common/Libraries/IRALibrary/include/IRA +++ b/Common/Libraries/IRALibrary/include/IRA @@ -4,6 +4,12 @@ // $Id: IRA,v 1.3 2007-09-11 14:58:09 a.orlati Exp $ #include "Definitions.h" +//#include <Cplusplus11Helper.h> + +//C11_IGNORE_WARNING_PUSH +//C11_IGNORE_WARNING("-Wdeprecated-declarations") +//C11_IGNORE_WARNING("-Wmisleading-indentation") +//C11_IGNORE_WARNING("-Wcatch-value=") #include "String.h" #include "IRATools.h" #include "Error.h" @@ -17,5 +23,6 @@ #include "TimeTaggedCircularArray.h" #include "CustomLoggerUtils.h" #include "Timer.h" +//C11_IGNORE_WARNING_POP #endif diff --git a/Common/Libraries/IRALibrary/include/IRATools.h b/Common/Libraries/IRALibrary/include/IRATools.h index 56e7e1f8c..33a03b687 100644 --- a/Common/Libraries/IRALibrary/include/IRATools.h +++ b/Common/Libraries/IRALibrary/include/IRATools.h @@ -32,12 +32,20 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 12/01/2016 reviewed the function skyFrequency in order to address also lower side band during down conversion */ /* Giuseppe Carboni (giuseppe.carboni@inaf.it) 07/12/2021 added the getUNIXEpoch, ACSTime2UNIXEpoch and UNIXEpoch2ACSTime functions */ +#include <Cplusplus11Helper.h> + #include <time.h> #include <sys/time.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <baciDB.h> #include <maciContainerServices.h> #include <acstimeEpochHelper.h> #include <acstimeDurationHelper.h> +C11_IGNORE_WARNING_POP + #include <maciSimpleClient.h> #include <AntennaDefinitionsC.h> diff --git a/Common/Libraries/IRALibrary/include/LogFilter.h b/Common/Libraries/IRALibrary/include/LogFilter.h index 09c7e05a6..e2221caba 100644 --- a/Common/Libraries/IRALibrary/include/LogFilter.h +++ b/Common/Libraries/IRALibrary/include/LogFilter.h @@ -13,11 +13,18 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 17/03/2008 Fixed a bug in ErrorWrapper that causes the component to crash */ /* Andrea Orlati(aorlati@ira.inaf.it) 12/02/2010 Added the destroy method that should guarantee a smoother close up */ +#include <Cplusplus11Helper.h> + #include "Definitions.h" #include "String.h" #include <vector> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <acstimeEpochHelper.h> #include <acstimeDurationHelper.h> +C11_IGNORE_WARNING_POP #include <baciThread.h> #include <acserr.h> diff --git a/Common/Libraries/IRALibrary/include/MicroControllerBoard.h b/Common/Libraries/IRALibrary/include/MicroControllerBoard.h index 574eb2fe9..aed54f79b 100644 --- a/Common/Libraries/IRALibrary/include/MicroControllerBoard.h +++ b/Common/Libraries/IRALibrary/include/MicroControllerBoard.h @@ -52,7 +52,7 @@ public: MicroControllerBoard(std::string IP, unsigned short port=8000, BYTE master_address=0x7C, BYTE slave_address=0x7F, DWORD timeout=MCB_TOUT - ) throw (MicroControllerBoardEx); + ); /** Destructor */ @@ -62,7 +62,7 @@ public: /** Perform a TCP connection socket to the board * @throw MicroControllerBoardEx */ - void openConnection(void) throw (MicroControllerBoardEx); + void openConnection(void); /** Return the status of TCP socket connection to the board @@ -93,7 +93,7 @@ public: * @throw MicroControllerBoardEx * @return a vector<BYTE> storing the requested parameters */ - std::vector<BYTE> receive(void) throw (MicroControllerBoardEx); + std::vector<BYTE> receive(void); /** Send a command to the board. @@ -101,7 +101,7 @@ public: * @param parameters a vector<BYTE> of parameters to send (it could be empty) * @throw MicroControllerBoardEx */ - void send(const BYTE command, std::vector<BYTE> parameters=std::vector<BYTE>()) throw (MicroControllerBoardEx); + void send(const BYTE command, std::vector<BYTE> parameters=std::vector<BYTE>()); /** Return the IP address of the board */ std::string getIP() const { return(m_IP); } @@ -116,7 +116,7 @@ private: * @param message the vector<BYTE> on which to compute the checksum * @throw MicroControllerBoardEx */ - BYTE computeChecksum(std::vector<BYTE> message) throw (MicroControllerBoardEx); + BYTE computeChecksum(std::vector<BYTE> message); const std::string m_IP; diff --git a/Common/Libraries/IRALibrary/include/ReceiverControl.h b/Common/Libraries/IRALibrary/include/ReceiverControl.h index 9d20083f2..08024c0b3 100644 --- a/Common/Libraries/IRALibrary/include/ReceiverControl.h +++ b/Common/Libraries/IRALibrary/include/ReceiverControl.h @@ -179,7 +179,7 @@ public: const BYTE switch_madd=0x7C, // Switch board master address const BYTE switch_sadd=0x7F, // Switch board slave address - We use broadcast address bool reliable_comm=false - ) throw (ReceiverControlEx); + ); /** Destructor */ @@ -201,7 +201,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_11, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Set the noise mark generator to OFF @@ -216,7 +216,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_11, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the noise mark generator set to ON? @@ -230,7 +230,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_11 - ) throw (ReceiverControlEx); + ); /** Enable the external noise mark generator synchronous command @@ -245,7 +245,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_12, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Disable the external noise mark generator synchronous command @@ -260,7 +260,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_12, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the external noise mark generator command enabled? @@ -274,7 +274,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_12 - ) throw (ReceiverControlEx); + ); /** Set the reliable communication to/from the board to ON */ @@ -310,7 +310,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_AD24, const BYTE port_number=MCB_PORT_NUMBER_00_07, const size_t raw_index=2 - ) throw (ReceiverControlEx); + ); /** Return the vertex temperature @@ -334,7 +334,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_AD24, const BYTE port_number=MCB_PORT_NUMBER_00_07, const size_t raw_index=6 - ) throw (ReceiverControlEx); + ); /** Return the cryogenic temperature @@ -357,7 +357,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_F32, const BYTE port_type=MCB_PORT_TYPE_AD24, const BYTE port_number=MCB_PORT_NUMBER_00_07 - ) throw (ReceiverControlEx); + ); /** Set to ON the cool head @@ -372,7 +372,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_08, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Set to OFF the cool head @@ -387,7 +387,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_08, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the cool head set ON? * @param data_type the type of the data; the default type is 1 bit @@ -400,7 +400,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_08 - ) throw (ReceiverControlEx); + ); /** Is the cool head status ON? @@ -414,7 +414,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_24 - ) throw (ReceiverControlEx); + ); /** Set to ON the vacuum sensor @@ -429,7 +429,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_04, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Set to OFF the vacuum sensor @@ -444,7 +444,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_04, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the vacuum sensor ON? @@ -458,7 +458,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_04 - ) throw (ReceiverControlEx); + ); /** Set to ON the vacuum pump @@ -473,7 +473,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_05, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Set to OFF the vacuum pump @@ -488,7 +488,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_05, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the vacuum pump ON? @@ -502,7 +502,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_05 - ) throw (ReceiverControlEx); + ); /** Has the vacuum pump a fault? @@ -516,7 +516,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_06 - ) throw (ReceiverControlEx); + ); /** Set to ON the vacuum valve @@ -531,7 +531,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_07, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Set to OFF the vacuum valve @@ -546,7 +546,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_07, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is the vacuum valve ON? @@ -560,7 +560,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_07 - ) throw (ReceiverControlEx); + ); /** Is the remote command enable? @@ -574,7 +574,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_26 - ) throw (ReceiverControlEx); + ); /** Select the first local oscillator (LO1) @@ -589,7 +589,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_00, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Is LO1 selected? @@ -603,7 +603,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_16 - ) throw (ReceiverControlEx); + ); /** Select the second local oscillator (LO2) @@ -618,7 +618,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_00, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Is LO2 selected? @@ -632,7 +632,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_17 - ) throw (ReceiverControlEx); + ); /** Is LO2 locked? @@ -646,7 +646,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_18 - ) throw (ReceiverControlEx); + ); /** Set the single dish mode to ON. The VLBI mode will be turn OFF @@ -669,7 +669,7 @@ public: const BYTE port_number_vlbi=MCB_PORT_NUMBER_14, const BYTE value_sd=0x00, const BYTE value_vlbi=0x01 - ) throw (ReceiverControlEx); + ); /** Is the single dish mode set to ON? @@ -683,7 +683,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_29 - ) throw (ReceiverControlEx); + ); /** Set the VLBI mode to ON. The SD mode will be turn OFF @@ -706,7 +706,7 @@ public: const BYTE port_number_sd=MCB_PORT_NUMBER_13, const BYTE value_vlbi=0x00, const BYTE value_sd=0x01 - ) throw (ReceiverControlEx); + ); /** Is the VLBI mode set to ON? @@ -720,7 +720,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_30 - ) throw (ReceiverControlEx); + ); /** return the FetValues (VDL, IDL, VGR, VDR, IDR and VGR) @@ -746,7 +746,7 @@ public: unsigned short stage_number, double (*currentConverter)(double voltage) = NULL, double (*voltageConverter)(double voltage) = NULL - ) throw (ReceiverControlEx); + ); /** Return for each feed and channel the fet quantity value of a given stage. For @@ -768,7 +768,7 @@ public: FetValue quantity, unsigned short stage_number, double (*converter)(double voltage)=NULL - ) throw (ReceiverControlEx); + ); /** Turn the LNAs of the left channels ON @@ -783,7 +783,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_08, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Turn the LNAs of the left channels OFF @@ -798,7 +798,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_08, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Turn the LNAs of the right channels ON @@ -813,7 +813,7 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_09, const BYTE value=0x00 - ) throw (ReceiverControlEx); + ); /** Turn the LNAs of the right channels OFF @@ -828,13 +828,13 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_09, const BYTE value=0x01 - ) throw (ReceiverControlEx); + ); /** Perform a TCP connection socket to the boards * @throw ReceiverControlEx */ - void openConnection(void) throw (ReceiverControlEx); + void openConnection(void); /** Close the TCP connection sockets to the boards */ @@ -876,7 +876,7 @@ public: const BYTE port_number, const size_t width, const std::vector<BYTE> parameters - ) throw (ReceiverControlEx); + ); /** Set the RF path to the cold load @@ -891,7 +891,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_U16, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_00_15 - ) throw (ReceiverControlEx); + ) ; /** Set the RF path to the sky @@ -906,7 +906,7 @@ public: const BYTE data_type=MCB_CMD_DATA_TYPE_U16, const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number=MCB_PORT_NUMBER_00_15 - ) throw (ReceiverControlEx); + ); private: @@ -922,7 +922,7 @@ private: std::vector<BYTE> makeRequest( MicroControllerBoard *board_ptr, const BYTE command, size_t len, ... - ) throw(MicroControllerBoardEx); + ); /** Return the requested value computed from a vector<BYTE> of parameters diff --git a/Common/Libraries/IRALibrary/include/ScheduleTimer.h b/Common/Libraries/IRALibrary/include/ScheduleTimer.h index 95089e1a0..9c8eac0c6 100644 --- a/Common/Libraries/IRALibrary/include/ScheduleTimer.h +++ b/Common/Libraries/IRALibrary/include/ScheduleTimer.h @@ -12,10 +12,17 @@ #ifndef SCHEDULETIMER_H_ #define SCHEDULETIMER_H_ +#include <Cplusplus11Helper.h> + #include <ace/Timer_Heap_T.h> #include <ace/Timer_Queue_Adapters.h> #include <Event_Handler_Handle_Timeout_Upcall.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <acstimeTimeUtil.h> +C11_IGNORE_WARNING_POP #include <vector> namespace IRA { diff --git a/Common/Libraries/IRALibrary/include/String.h b/Common/Libraries/IRALibrary/include/String.h index 04bf65eaf..39cf12648 100644 --- a/Common/Libraries/IRALibrary/include/String.h +++ b/Common/Libraries/IRALibrary/include/String.h @@ -19,6 +19,34 @@ #include <SStringfwd.h> namespace IRA { + +class CString; + +CString operator +(const CString& s1,const CString & s2); +CString operator +(const CString & s1, char ch); +CString operator +(const CString & s1, const char *str); +CString operator +(char ch, const CString & s2); +CString operator +(const char *str, const CString & s2); +bool operator ==(const CString & s1, const CString & s2); +bool operator ==(const CString & s1, const char *s2); +bool operator ==(const char *s1, const CString & s2); +bool operator !=(const CString & s1, const CString & s2); +bool operator !=(const CString & s1, const char *s2); +bool operator !=(const char *s1, const CString & s2); +bool operator < (const CString & s1, const CString & s2); +bool operator < (const CString & s1, const char *s2); +bool operator < (const char *s1, const CString & s2); +bool operator > (const CString & s1, const CString & s2); +bool operator > (const CString & s1, const char *s2); +bool operator > (const char *s1, const CString & s2); +bool operator <=(const CString & s1, const CString & s2); +bool operator <=(const CString & s1, const char *s2); +bool operator <=(const char *s1, const CString & s2); +bool operator >=(const CString & s1, const CString & s2); +bool operator >=(const CString & s1, const char *s2); +bool operator >=(const char *s1, const CString & s2); + + /** * This class allow to manage strings easier than standard C/CPP methods @@ -364,115 +392,113 @@ public: // Operations const CString & operator =(const CString& src); const CString & operator =(char ch); const CString & operator =(const char* str); - // have to be friend so we can use char and char* as first arguments /** - * Friend operator, used to concatenate. + * Operator used to concatenate the string with another one. */ - friend CString operator +(const CString& s1,const CString & s2); + const CString & operator +=(const CString & src); /** - * Friend operator, used to concatenate. + * Operator used to concatenate the string with another one. */ - friend CString operator +(const CString & s1, char ch); + const CString & operator +=(char ch); /** - * Friend operator, used to concatenate. + * Operator used to concatenate the string with another one. */ - friend CString operator +(const CString & s1, const char *str); + const CString & operator +=(const char *str); + // have to be friend so we can use char and char* as first arguments /** * Friend operator, used to concatenate. - */ - friend CString operator +(char ch, const CString & s2); + */ + friend CString IRA::operator +(const CString& s1,const CString & s2); /** * Friend operator, used to concatenate. */ - friend CString operator +(const char *str, const CString & s2); + friend CString IRA::operator +(const CString & s1, char ch); /** - * Operator used to concatenate the string with another one. - */ - const CString & operator +=(const CString & src); + * Friend operator, used to concatenate. + */ + friend CString IRA::operator +(const CString & s1, const char *str); /** - * Operator used to concatenate the string with another one. + * Friend operator, used to concatenate. */ - const CString & operator +=(char ch); + friend CString IRA::operator +(char ch, const CString & s2); /** - * Operator used to concatenate the string with another one. + * Friend operator, used to concatenate. */ - const CString & operator +=(const char *str); + friend CString IRA::operator +(const char *str, const CString & s2); + // compare /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator ==(const CString & s1, const CString & s2); + friend bool IRA::operator ==(const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator ==(const CString & s1, const char *s2); + friend bool IRA::operator ==(const CString & s1, const char *s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator ==(const char *s1, const CString & s2); + friend bool IRA::operator ==(const char *s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator !=(const CString & s1, const CString & s2); + friend bool IRA::operator !=(const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator !=(const CString & s1, const char *s2); + friend bool IRA::operator !=(const CString & s1, const char *s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator !=(const char *s1, const CString & s2); + friend bool IRA::operator !=(const char *s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator < (const CString & s1, const CString & s2); + friend bool IRA::operator < (const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator < (const CString & s1, const char *s2); + friend bool IRA::operator < (const CString & s1, const char *s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator < (const char *s1, const CString & s2); + friend bool IRA::operator < (const char *s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator > (const CString & s1, const CString & s2); + friend bool IRA::operator > (const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator > (const CString & s1, const char *s2); + friend bool IRA::operator > (const CString & s1, const char *s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator > (const char *s1, const CString & s2); + friend bool IRA::operator > (const char *s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator <=(const CString & s1, const CString & s2); + friend bool IRA::operator <=(const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ friend bool operator <=(const CString & s1, const char *s2); /** - * Frind operator used to compare strings - */ - friend bool operator <=(const char *s1, const CString & s2); - /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator >=(const CString & s1, const CString & s2); + friend bool IRA::operator <=(const char *s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator >=(const CString & s1, const char *s2); + friend bool IRA::operator >=(const CString & s1, const CString & s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ - friend bool operator >=(const char *s1, const CString & s2); + friend bool IRA::operator >=(const CString & s1, const char *s2); /** - * Frind operator used to compare strings + * Friend operator used to compare strings */ + friend bool IRA::operator >=(const char *s1, const CString & s2); protected: int m_iSize; char *m_cpString; diff --git a/Common/Libraries/IRALibrary/include/TimeTaggedCircularArray.h b/Common/Libraries/IRALibrary/include/TimeTaggedCircularArray.h index fa1fd0f00..81526d522 100644 --- a/Common/Libraries/IRALibrary/include/TimeTaggedCircularArray.h +++ b/Common/Libraries/IRALibrary/include/TimeTaggedCircularArray.h @@ -14,7 +14,15 @@ /* Andrea Orlati(aorlati@ira.inaf.it) 08/09/2010 added the averagePoint method */ /* G. Carboni(giuseppe.carboni@inaf.it) 26/07/2019 the class is now thread safe */ + +#include <Cplusplus11Helper.h> + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <acstimeEpochHelper.h> +C11_IGNORE_WARNING_POP #include "Definitions.h" namespace IRA { diff --git a/Common/Libraries/IRALibrary/include/TimeoutSync.h b/Common/Libraries/IRALibrary/include/TimeoutSync.h index d7196ab84..ecf76735b 100644 --- a/Common/Libraries/IRALibrary/include/TimeoutSync.h +++ b/Common/Libraries/IRALibrary/include/TimeoutSync.h @@ -10,8 +10,13 @@ /* Who when What */ /* Andrea Orlati(aorlati@ira.inaf.it) 05/1/2010 Creation */ - +#include <Cplusplus11Helper.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <acstimeEpochHelper.h> +C11_IGNORE_WARNING_POP #include "Definitions.h" namespace IRA { diff --git a/Common/Libraries/IRALibrary/src/Lecom.cpp b/Common/Libraries/IRALibrary/src/Lecom.cpp index 11bcc0d7a..53cf86b31 100644 --- a/Common/Libraries/IRALibrary/src/Lecom.cpp +++ b/Common/Libraries/IRALibrary/src/Lecom.cpp @@ -255,7 +255,7 @@ double CLecom::Answer(WORD Code,BYTE SubCode,CError& Err) bool Sync=false; double Val; sprintf((char *)(C),"%04X",Code); - sprintf((char *)(C+4),"%02X",SubCode); + sprintf((char *)(C+4),"%c",SubCode); while (!Ok) { if ((Rx(&m_ucBuffer[BytesRead],1,Err))>0) { if (!Err.isNoError()) { diff --git a/Common/Libraries/IRALibrary/src/Makefile b/Common/Libraries/IRALibrary/src/Makefile index 3fe0a2e34..8c9fa9012 100644 --- a/Common/Libraries/IRALibrary/src/Makefile +++ b/Common/Libraries/IRALibrary/src/Makefile @@ -36,7 +36,7 @@ USER_CFLAGS = INCLUDES = Definitions.h String.h IRATools.h Error.h SecureArea.h SerialPort.h Lecom.h FastQueue.h\ Socket.h DataField.h DBTable.h LogFilter.h Site.h DateTime.h Timer.h SkySource.h TimeTaggedCircularArray.h \ ScheduleTimer.h TimeoutSync.h MicroControllerBoard.h ReceiverControl.h MicroControllerBoardDef.h \ - SourceFlux.h CustomLoggerUtils.h LogDike.h FrequencyTracking.h BaseConverter.h IRA + SourceFlux.h CustomLoggerUtils.h LogDike.h FrequencyTracking.h BaseConverter.h Cplusplus11Helper.h IRA # # Libraries (public and local) diff --git a/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp b/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp index 3b32db1ba..e74c82817 100644 --- a/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp +++ b/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp @@ -5,7 +5,7 @@ using namespace IRA; MicroControllerBoard::MicroControllerBoard( const std::string IP, const unsigned short port, const BYTE master_address, const BYTE slave_address, - const DWORD timeout) throw (MicroControllerBoardEx) : + const DWORD timeout) : m_IP(IP), m_port(port), m_timeout(timeout), m_master_address(master_address), m_slave_address(slave_address), m_socket(NULL), m_id(0), m_command_type(0x00) @@ -30,7 +30,7 @@ MicroControllerBoard::~MicroControllerBoard() { } -void MicroControllerBoard::openConnection(void) throw (MicroControllerBoardEx) { +void MicroControllerBoard::openConnection(void) { if (m_socket->Connect(m_Error, m_IP.c_str(), m_port) == CSocket::FAIL) { closeConnection(); @@ -59,7 +59,7 @@ void MicroControllerBoard::closeConnection(void) { pthread_mutex_unlock(&m_socket_mutex); } -std::vector<BYTE> MicroControllerBoard::receive(void) throw (MicroControllerBoardEx) { +std::vector<BYTE> MicroControllerBoard::receive(void) { pthread_mutex_lock(&m_socket_mutex); BYTE msg[MCB_BUFF_LIMIT] = {0x00}; bool is_short_cmd = false, has_data_cmd = false; @@ -230,7 +230,7 @@ std::vector<BYTE> MicroControllerBoard::receive(void) throw (MicroControllerBoar return(clean_data); // Return just the answer parameters } -void MicroControllerBoard::send(const BYTE command, std::vector<BYTE> parameters) throw (MicroControllerBoardEx) { +void MicroControllerBoard::send(const BYTE command, std::vector<BYTE> parameters) { pthread_mutex_lock(&m_socket_mutex); try { if(command >= MCB_CMD_TYPE_MIN_EXT && command <= MCB_CMD_TYPE_MAX_ABB) { @@ -284,7 +284,7 @@ void MicroControllerBoard::send(const BYTE command, std::vector<BYTE> parameters } -BYTE MicroControllerBoard::computeChecksum(std::vector<BYTE> message) throw (MicroControllerBoardEx) { +BYTE MicroControllerBoard::computeChecksum(std::vector<BYTE> message) { if(message.empty()) throw MicroControllerBoardEx("Checksum error: no bytes to check"); diff --git a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp index 7fdb9575f..b08ae03ab 100644 --- a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp +++ b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp @@ -28,7 +28,7 @@ ReceiverControl::ReceiverControl( const BYTE switch_madd, const BYTE switch_sadd, bool reliable_comm -) throw (ReceiverControlEx) : +): m_dewar_ip(dewar_ip), m_dewar_port(dewar_port), m_lna_ip(lna_ip), @@ -76,7 +76,7 @@ void ReceiverControl::setCalibrationOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -101,7 +101,7 @@ void ReceiverControl::setCalibrationOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -125,7 +125,7 @@ bool ReceiverControl::isCalibrationOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -155,7 +155,7 @@ void ReceiverControl::setExtCalibrationOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -180,7 +180,7 @@ void ReceiverControl::setExtCalibrationOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -204,7 +204,7 @@ bool ReceiverControl::isExtCalibrationOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -235,7 +235,7 @@ double ReceiverControl::vacuum( const BYTE port_type, const BYTE port_number, const size_t raw_index - ) throw (ReceiverControlEx) + ) { try { @@ -265,7 +265,7 @@ double ReceiverControl::vertexTemperature( const BYTE port_type, const BYTE port_number, const size_t raw_index - ) throw (ReceiverControlEx) + ) { try { @@ -295,7 +295,7 @@ double ReceiverControl::cryoTemperature( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { const size_t raw_index = temperature_id; @@ -333,7 +333,7 @@ void ReceiverControl::setCoolHeadOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -358,7 +358,7 @@ void ReceiverControl::setCoolHeadOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -382,7 +382,7 @@ bool ReceiverControl::isCoolHeadSetOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -411,7 +411,7 @@ bool ReceiverControl::isCoolHeadOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -441,7 +441,7 @@ void ReceiverControl::setVacuumSensorOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -466,7 +466,7 @@ void ReceiverControl::setVacuumSensorOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -490,7 +490,7 @@ bool ReceiverControl::isVacuumSensorOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -520,7 +520,7 @@ void ReceiverControl::setVacuumPumpOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -545,7 +545,7 @@ void ReceiverControl::setVacuumPumpOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -569,7 +569,7 @@ bool ReceiverControl::isVacuumPumpOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -598,7 +598,7 @@ bool ReceiverControl::hasVacuumPumpFault( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -628,7 +628,7 @@ void ReceiverControl::setVacuumValveOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -653,7 +653,7 @@ void ReceiverControl::setVacuumValveOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -677,7 +677,7 @@ bool ReceiverControl::isVacuumValveOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -706,7 +706,7 @@ bool ReceiverControl::isRemoteOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -736,7 +736,7 @@ void ReceiverControl::selectLO1( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -760,7 +760,7 @@ bool ReceiverControl::isLO1Selected( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -790,7 +790,7 @@ void ReceiverControl::selectLO2( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -814,7 +814,7 @@ bool ReceiverControl::isLO2Selected( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -843,7 +843,7 @@ bool ReceiverControl::isLO2Locked( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -875,7 +875,7 @@ void ReceiverControl::setSingleDishMode( const BYTE port_number_vlbi, const BYTE value_sd, const BYTE value_vlbi - ) throw (ReceiverControlEx) + ) { try { pthread_mutex_lock(&m_dewar_mutex); @@ -943,7 +943,7 @@ bool ReceiverControl::isSingleDishModeOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -975,7 +975,7 @@ void ReceiverControl::setVLBIMode( const BYTE port_number_sd, const BYTE value_vlbi, const BYTE value_sd - ) throw (ReceiverControlEx) + ) { try { pthread_mutex_lock(&m_dewar_mutex); @@ -1042,7 +1042,7 @@ bool ReceiverControl::isVLBIModeOn( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { std::vector<BYTE> parameters = makeRequest( @@ -1067,7 +1067,7 @@ bool ReceiverControl::isVLBIModeOn( } -void ReceiverControl::openConnection(void) throw (ReceiverControlEx) +void ReceiverControl::openConnection(void) { try { m_dewar_board_ptr = new MicroControllerBoard(m_dewar_ip, m_dewar_port, m_dewar_madd, m_dewar_sadd); @@ -1139,7 +1139,7 @@ ReceiverControl::FetValues ReceiverControl::fetValues( unsigned short stage_number, double (*currentConverter)(double voltage), double (*voltageConverter)(double voltage) - ) throw (ReceiverControlEx) + ) { std::string column_selector; // EN03: the signal that addresses the column multiplexing of AD24 std::string vd_selector; // A03: it allows to select the value requested for a given stadium @@ -1363,7 +1363,7 @@ ReceiverControl::StageValues ReceiverControl::stageValues( FetValue quantity, unsigned short stage_number, double (*converter)(double voltage) - ) throw (ReceiverControlEx) + ) { IRA::CString quant; // Each item is a EN03 value: the signal that addresses the column multiplexing of AD24 @@ -1547,7 +1547,7 @@ void ReceiverControl::turnLeftLNAsOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -1572,7 +1572,7 @@ void ReceiverControl::turnLeftLNAsOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -1597,7 +1597,7 @@ void ReceiverControl::turnRightLNAsOn( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -1622,7 +1622,7 @@ void ReceiverControl::turnRightLNAsOff( const BYTE port_type, const BYTE port_number, const BYTE value - ) throw (ReceiverControlEx) + ) { try { makeRequest( @@ -1647,7 +1647,7 @@ void ReceiverControl::setPath( const BYTE port_number, const size_t width, const std::vector<BYTE> parameters - ) throw (ReceiverControlEx) + ) { if(parameters.size() % width != 0) throw ReceiverControlEx("ReceiverControl: wrong number of parameters.\n"); @@ -1686,7 +1686,7 @@ void ReceiverControl::setColdLoadPath( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { const BYTE two_high_bits = 0x03; // Binary value 11 @@ -1748,7 +1748,7 @@ void ReceiverControl::setSkyPath( const BYTE data_type, const BYTE port_type, const BYTE port_number - ) throw (ReceiverControlEx) + ) { try { const BYTE two_high_bits = 0x03; // Binary value 11 @@ -1804,9 +1804,7 @@ void ReceiverControl::setSkyPath( } - std::vector<BYTE> ReceiverControl::makeRequest(MicroControllerBoard *board_ptr, BYTE command, size_t len, ...) - throw (MicroControllerBoardEx) { pthread_mutex_lock(&m_request_mutex); va_list parameters; // A place to store the list of arguments diff --git a/Common/Libraries/IRALibrary/src/SourceFlux.cpp b/Common/Libraries/IRALibrary/src/SourceFlux.cpp index 0eb569b69..04bec2a44 100644 --- a/Common/Libraries/IRALibrary/src/SourceFlux.cpp +++ b/Common/Libraries/IRALibrary/src/SourceFlux.cpp @@ -31,7 +31,7 @@ double CSourceFlux::computeSourceFlux(const double&frequency, const double& FWHM { double logfreq,logflux,fluxv; double fac0,fac1,fac2,fac4,fac5,fac; - double corr, size; + double corr; double fMin=0.0, fMax=0.0; double fMinRange[3], fMaxRange[3]; double fluxCoeff1[3], fluxCoeff2[3], fluxCoeff3[3]; @@ -39,7 +39,6 @@ double CSourceFlux::computeSourceFlux(const double&frequency, const double& FWHM fluxv=1.0; corr=1.0; - size=0.0; if (m_flux.nFreqRange == 1) { sscanf(m_flux.freqRange,"%lf-%lf",&fMinRange[0],&fMaxRange[0]); diff --git a/Common/Libraries/IRALibrary/src/String.cpp b/Common/Libraries/IRALibrary/src/String.cpp index 62bf246ca..23bf77921 100644 --- a/Common/Libraries/IRALibrary/src/String.cpp +++ b/Common/Libraries/IRALibrary/src/String.cpp @@ -544,27 +544,27 @@ bool CString::CheckIsValidLongLong() const bool CString::CheckIsValidFloat() const { - char *endptr; - float val; - if (IsEmpty()) return false; - errno=0; - val = strtof(m_cpString,&endptr); - if (errno==ERANGE) { - return false; - } - if (endptr==m_cpString) { - return false; - } - return true; + char *endptr; + //float val; + if (IsEmpty()) return false; + errno=0; + /*val = */strtof(m_cpString,&endptr); + if (errno==ERANGE) { + return false; + } + if (endptr==m_cpString) { + return false; + } + return true; } bool CString::CheckIsValidDouble() const { char *endptr; - double val; + //double val; if (IsEmpty()) return false; errno=0; - val = strtod(m_cpString,&endptr); + /*val = */strtod(m_cpString,&endptr); if (errno==ERANGE) { return false; } @@ -577,10 +577,10 @@ bool CString::CheckIsValidDouble() const bool CString::CheckIsValidLongDouble() const { char *endptr; - long double val; + //long double val; if (IsEmpty()) return false; errno=0; - val = strtold(m_cpString,&endptr); + /*val = */strtold(m_cpString,&endptr); if (errno==ERANGE) { return false; } diff --git a/Common/Libraries/IRALibrary/src/TimeTaggedCircularArray.cpp b/Common/Libraries/IRALibrary/src/TimeTaggedCircularArray.cpp index e8dd6518b..985a5241f 100644 --- a/Common/Libraries/IRALibrary/src/TimeTaggedCircularArray.cpp +++ b/Common/Libraries/IRALibrary/src/TimeTaggedCircularArray.cpp @@ -15,7 +15,8 @@ CTimeTaggedCircularArray::CTimeTaggedCircularArray(const unsigned& positions, m_array=new TArrayRecord[m_size]; m_lastAzimuth=m_lastElevation=0.0; m_isRad=isRadians; - m_lastTime.value().value=0; + //m_lastTime.value().value=0; + m_lastTime.value((ACS::Time)0); } CTimeTaggedCircularArray::~CTimeTaggedCircularArray() diff --git a/Common/Libraries/ParserLibrary/include/SP_function0.h b/Common/Libraries/ParserLibrary/include/SP_function0.h index 99e727f55..4929c19a5 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function0.h +++ b/Common/Libraries/ParserLibrary/include/SP_function0.h @@ -24,11 +24,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function0(OBJ *object, func_type func) : _SP_FUNCTOR(object,0), m_func(func) {}; - return_type operator()() const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()() const { return (*_SP_FUNCTOR::m_obj.*m_func)( ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { retVal=(*_SP_FUNCTOR::m_obj.*m_func)(); //can throw a generic exception } WORD get(IRA::CString *params) { @@ -50,11 +55,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function0(OBJ *object, func_type func) : _SP_FUNCTOR(object,0), m_func(func) { }; - void operator()() const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()() const { (*_SP_FUNCTOR::m_obj.*m_func)(); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { (*_SP_FUNCTOR::m_obj.*m_func)(); //can throw a generic exception } WORD get(IRA::CString *params) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function1.h b/Common/Libraries/ParserLibrary/include/SP_function1.h index 18d1024b9..2238f026b 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function1.h +++ b/Common/Libraries/ParserLibrary/include/SP_function1.h @@ -26,11 +26,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function1(OBJ *object, func_type func) : _SP_FUNCTOR(object,1),m_func(func) {}; - return_type operator()(arg0& pp0) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -76,11 +81,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function1(OBJ *object, func_type func) : _SP_FUNCTOR(object,1),m_func(func) {}; - void operator()(arg0& pp0) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function2.h b/Common/Libraries/ParserLibrary/include/SP_function2.h index 9f7e5b804..230045bc5 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function2.h +++ b/Common/Libraries/ParserLibrary/include/SP_function2.h @@ -28,11 +28,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function2(OBJ *object, func_type func) : _SP_FUNCTOR(object,2),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -91,11 +96,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function2(OBJ *object, func_type func) : _SP_FUNCTOR(object,2),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function3.h b/Common/Libraries/ParserLibrary/include/SP_function3.h index c6811c3e0..f407201c5 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function3.h +++ b/Common/Libraries/ParserLibrary/include/SP_function3.h @@ -30,11 +30,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function3(OBJ *object, func_type func) : _SP_FUNCTOR(object,3),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -106,11 +111,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function3(OBJ *object, func_type func) : _SP_FUNCTOR(object,3),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1,arg2& pp2) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1,arg2& pp2) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function4.h b/Common/Libraries/ParserLibrary/include/SP_function4.h index 6fa382c8b..c0d319aa0 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function4.h +++ b/Common/Libraries/ParserLibrary/include/SP_function4.h @@ -32,11 +32,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function4(OBJ *object, func_type func) : _SP_FUNCTOR(object,4),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -121,11 +126,16 @@ public: typedef return_type (OBJ::*const_func_type)(param0,param1,param2,param3) const; typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function4(OBJ *object, func_type func) : _SP_FUNCTOR(object,4),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3 ); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function5.h b/Common/Libraries/ParserLibrary/include/SP_function5.h index 7cc58f520..5e24ba1b3 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function5.h +++ b/Common/Libraries/ParserLibrary/include/SP_function5.h @@ -35,11 +35,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function5(OBJ *object, func_type func) : _SP_FUNCTOR(object,5),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -139,11 +144,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function5(OBJ *object, func_type func) : _SP_FUNCTOR(object,5),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function6.h b/Common/Libraries/ParserLibrary/include/SP_function6.h index ecf259ce3..a271088b1 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function6.h +++ b/Common/Libraries/ParserLibrary/include/SP_function6.h @@ -37,11 +37,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function6(OBJ *object, func_type func) : _SP_FUNCTOR(object,6),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4,pp5); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -153,11 +158,16 @@ public: typedef return_type (OBJ::*const_func_type)(param0,param1,param2,param3,param4,param5) const; typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function6(OBJ *object, func_type func) : _SP_FUNCTOR(object,6),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4,pp5); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw ( - ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_function7.h b/Common/Libraries/ParserLibrary/include/SP_function7.h index f99db27b9..60b5b11f4 100644 --- a/Common/Libraries/ParserLibrary/include/SP_function7.h +++ b/Common/Libraries/ParserLibrary/include/SP_function7.h @@ -40,10 +40,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function7(OBJ *object, func_type func) : _SP_FUNCTOR(object,7),m_func(func) {}; - return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5,arg6& pp6) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + return_type operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5,arg6& pp6) const { return (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4,pp5,pp6); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw (ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { @@ -169,10 +175,16 @@ public: typedef typename conditional<CONST_SPEC,const_func_type,normal_func_type>::type func_type; function7(OBJ *object, func_type func) : _SP_FUNCTOR(object,7),m_func(func) {}; - void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5,arg6& pp6) const throw (ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl) + */ + void operator()(arg0& pp0,arg1& pp1,arg2& pp2,arg3& pp3,arg4& pp4,arg5& pp5,arg6& pp6) const { (*_SP_FUNCTOR::m_obj.*m_func)( pp0,pp1,pp2,pp3,pp4,pp5,pp6); //can throw a generic exception } - void call(IRA::CString *params,const WORD& parLen) throw (ParserErrors::ConversionErrorExImpl,ACSErr::ACSbaseExImpl) { + /* + * @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) + */ + void call(IRA::CString *params,const WORD& parLen) { WORD pCount=0; try { if (A0::isInput) { diff --git a/Common/Libraries/ParserLibrary/include/SP_parser.h b/Common/Libraries/ParserLibrary/include/SP_parser.h index 4896211ca..de7edd0b5 100644 --- a/Common/Libraries/ParserLibrary/include/SP_parser.h +++ b/Common/Libraries/ParserLibrary/include/SP_parser.h @@ -104,8 +104,9 @@ namespace SimpleParser { /** * Prototype of a remote function, it will accept the full command, the extra parameter and the name of the package. * It could throw a remote package error + * @throw throw (ParserErrors::PackageErrorExImpl) */ -#define _SP_REMOTECALL(X) bool (OBJ::*X)(const IRA::CString& command,const IRA::CString& package,const long& param,IRA::CString& out) throw (ParserErrors::PackageErrorExImpl) +#define _SP_REMOTECALL(X) bool (OBJ::*X)(const IRA::CString& command,const IRA::CString& package,const long& param,IRA::CString& out) /** * Prototype of the callback function, invoked when a injected procedure has completed. If accepts the name of the procedure and the execution result */ @@ -342,7 +343,7 @@ public: * @param command string that stores the command to be executed. * @param out the result of the requested command */ - void run(const IRA::CString& command,IRA::CString& out) throw (ParserErrors::ParserErrorsExImpl,ACSErr::ACSbaseExImpl); + void run(const IRA::CString& command,IRA::CString& out); /** * This function parses and executes a command asynchronously independently if the command is a simple procedure, a simple command with or without the time mark character. @@ -352,7 +353,7 @@ public: * @param callBack callback function to be invoked as soon as the operation completes * @param callBackParam parameter to passed to the callback function as argument */ - void runAsync(const IRA::CString& command,_SP_CALLBACK(callBack),const void * callBackParam) throw (ParserErrors::ParserErrorsExImpl); + void runAsync(const IRA::CString& command,_SP_CALLBACK(callBack),const void * callBackParam); /** * Call in order to know the command delimiter char that the parser is using @@ -487,10 +488,7 @@ private: * @return the output of the command, if more than one value has to be returned (for example in case of more than one output * arguments), the list is separated by the <i>answerDelimiter</i>. In case of exception the value is not meaningful. */ - IRA::CString executeCommand(const IRA::CString& command,IRA::CString& instr) throw (ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl, - ParserErrors::NotEnoughParametersExImpl,ParserErrors::SystemCommandErrorExImpl,ParserErrors::ProcedureErrorExImpl,ParserErrors::TimeFormatErrorExImpl,ParserErrors::ParserTimerErrorExImpl, - ParserErrors::NotSupportedErrorExImpl,ParserErrors::TooManyParametersExImpl,ParserErrors::ConversionErrorExImpl,ParserErrors::PackageErrorExImpl,ParserErrors::RemoteCommandErrorExImpl, - ACSErr::ACSbaseExImpl); + IRA::CString executeCommand(const IRA::CString& command,IRA::CString& instr); /** * Format an output string that summarizes the time based commands that are in the execution queue. @@ -555,10 +553,7 @@ private: * @param execInterval execution interval * @return the pointer to the element that defines the command */ - TRule *checkCommand(const IRA::CString& line,IRA::CString& instr, IRA::CString* inParams,WORD& parNum,bool& timeTagged,IRA::CString& timeCommand,ACS::Time& execTime,ACS::TimeInterval& execInterval) throw ( - ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl,ParserErrors::NotEnoughParametersExImpl,ParserErrors::TimeFormatErrorExImpl,ParserErrors::NotSupportedErrorExImpl, - ParserErrors::TooManyParametersExImpl); - + TRule *checkCommand(const IRA::CString& line,IRA::CString& instr, IRA::CString* inParams,WORD& parNum,bool& timeTagged,IRA::CString& timeCommand,ACS::Time& execTime,ACS::TimeInterval& execInterval); /** * This function searches the execution rules to find if a command has been defined. * @param instr name of the command to look for. @@ -585,8 +580,7 @@ private: * @param procPrm list of procedure parameters * @param parNumber number of parameters of the procedure */ - void pushProcedure(const IRA::CString& name,const ACS::stringSeq& procedure,IRA::CString *procPrm=NULL,WORD& parNumber=0,_SP_CALLBACK(callBack)=NULL,const void* parameter=NULL) throw ( - ParserErrors::ProcedureErrorExImpl); + void pushProcedure(const IRA::CString& name,const ACS::stringSeq& procedure,IRA::CString *procPrm=NULL,WORD& parNumber=0,_SP_CALLBACK(callBack)=NULL,const void* parameter=NULL); /** * Pop a command form the begging of the command list diff --git a/Common/Libraries/ParserLibrary/include/SP_parser.i b/Common/Libraries/ParserLibrary/include/SP_parser.i index fc230f015..cddaf919a 100644 --- a/Common/Libraries/ParserLibrary/include/SP_parser.i +++ b/Common/Libraries/ParserLibrary/include/SP_parser.i @@ -2,8 +2,11 @@ #define TIMERIDENTIFIER '!' #define PROCEDUREPARAMETER '$' +/* +* @throw (ACSErr::ACSbaseExImpl, ParserErrors::ConversionErrorExImpl) +*/ template <class OBJ> -void CParser<OBJ>::run(const IRA::CString& command,IRA::CString& out) throw (ParserErrors::ParserErrorsExImpl,ACSErr::ACSbaseExImpl) +void CParser<OBJ>::run(const IRA::CString& command,IRA::CString& out) { IRA::CString instr; if ((command=="") || (command=="\n")) { @@ -33,8 +36,11 @@ void CParser<OBJ>::run(const IRA::CString& command,IRA::CString& out) throw (Pa } } +/* +* @throw (ParserErrors::ConversionErrorExImpl) +*/ template <class OBJ> -void CParser<OBJ>::runAsync(const IRA::CString& command,_SP_CALLBACK(callBack),const void * callBackParam) throw (ParserErrors::ParserErrorsExImpl) +void CParser<OBJ>::runAsync(const IRA::CString& command,_SP_CALLBACK(callBack),const void * callBackParam) { TRule *elem; bool timeTagged; @@ -53,10 +59,16 @@ void CParser<OBJ>::runAsync(const IRA::CString& command,_SP_CALLBACK(callBack),c } } +/* +* @throw ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl, +* ParserErrors::NotEnoughParametersExImpl,ParserErrors::SystemCommandErrorExImpl, +* ParserErrors::ProcedureErrorExImpl,ParserErrors::TimeFormatErrorExImpl, +* ParserErrors::ParserTimerErrorExImpl,ParserErrors::NotSupportedErrorExImpl, +* ParserErrors::TooManyParametersExImpl,ParserErrors::ConversionErrorExImpl, +* ParserErrors::PackageErrorExImpl,ParserErrors::RemoteCommandErrorExImpl,ACSErr::ACSbaseExImpl) +*/ template<class OBJ> -IRA::CString CParser<OBJ>::executeCommand(const IRA::CString& command,IRA::CString& instr) throw (ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl, - ParserErrors::NotEnoughParametersExImpl,ParserErrors::SystemCommandErrorExImpl,ParserErrors::ProcedureErrorExImpl,ParserErrors::TimeFormatErrorExImpl,ParserErrors::ParserTimerErrorExImpl, - ParserErrors::NotSupportedErrorExImpl,ParserErrors::TooManyParametersExImpl,ParserErrors::ConversionErrorExImpl,ParserErrors::PackageErrorExImpl,ParserErrors::RemoteCommandErrorExImpl,ACSErr::ACSbaseExImpl) +IRA::CString CParser<OBJ>::executeCommand(const IRA::CString& command,IRA::CString& instr) { TRule *elem; WORD outNumber; @@ -212,10 +224,14 @@ IRA::CString CParser<OBJ>::executeCommand(const IRA::CString& command,IRA::CStri } } +/* +* @throw ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl, +* ParserErrors::NotEnoughParametersExImpl,ParserErrors::TimeFormatErrorExImpl, +* ParserErrors::NotSupportedErrorExImpl,ParserErrors::TooManyParametersExImpl) +*/ template<class OBJ> typename CParser<OBJ>::TRule *CParser<OBJ>::checkCommand(const IRA::CString& line,IRA::CString& instr,IRA::CString* inParams,WORD& parNum,bool& timeTagged,IRA::CString& timeCommand,ACS::Time& execTime, - ACS::TimeInterval& execInterval) throw (ParserErrors::SyntaxErrorExImpl,ParserErrors::CommandNotFoundExImpl,ParserErrors::NotEnoughParametersExImpl,ParserErrors::TimeFormatErrorExImpl, - ParserErrors::NotSupportedErrorExImpl,ParserErrors::TooManyParametersExImpl) + ACS::TimeInterval& execInterval) { IRA::CString timeMark; TRule *elem; @@ -352,9 +368,12 @@ void CParser<OBJ>::timerCleanup(const void * par) } } +/* +* @throw ParserErrors::ProcedureErrorExImpl +*/ template <class OBJ> void CParser<OBJ>::pushProcedure(const IRA::CString& name,const ACS::stringSeq& procedure,IRA::CString *procPrm,WORD& parNumber, - _SP_CALLBACK(callBack),const void* parameter) throw (ParserErrors::ProcedureErrorExImpl) + _SP_CALLBACK(callBack),const void* parameter) { TRule *elem; IRA::CString instr; diff --git a/Common/Libraries/ParserLibrary/include/SP_typeConversion.h b/Common/Libraries/ParserLibrary/include/SP_typeConversion.h index 822347d11..bddba983c 100644 --- a/Common/Libraries/ParserLibrary/include/SP_typeConversion.h +++ b/Common/Libraries/ParserLibrary/include/SP_typeConversion.h @@ -27,7 +27,10 @@ enum _sp_symbols { class int_converter { public: - int strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + int strToVal(const char * str) { int ret; if (sscanf(str,"%d",&ret)!=1) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"int_converter::strToVal()"); @@ -55,7 +58,10 @@ public: class long_converter { public: - long strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + long strToVal(const char * str) { long ret; if (sscanf(str,"%ld",&ret)!=1) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"long_converter::strToVal()"); @@ -76,7 +82,10 @@ public: class double_converter { public: - double strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char * str) { double ret; if (sscanf(str,"%lf",&ret)!=1) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"double_converter::strToVal()"); @@ -97,7 +106,10 @@ public: class string_converter { public: - char *strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + char *strToVal(const char * str) { return const_cast<char *>(str) ; } char *valToStr(char * const & val) { @@ -110,7 +122,10 @@ public: class longString_converter { public: - IRA::CString strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + IRA::CString strToVal(const char * str) { return IRA::CString(str); } char *valToStr(const IRA::CString& val) { @@ -133,7 +148,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::angleToRad(str,radians)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"angle_converter::strToVal()"); @@ -157,7 +175,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::offsetToRad(str,radians)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"angleOffset_converter::strToVal()"); @@ -181,7 +202,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::declinationToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"declination_converter::strToVal()"); @@ -205,7 +229,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::rightAscensionToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"rightAscension_type::strToVal()"); @@ -229,7 +256,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::azimuthToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"azimuth_converter::strToVal()"); @@ -253,7 +283,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::elevationToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"elevation_converter::strToVal()"); @@ -277,7 +310,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::galLatitudeToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"galacticLatitude_converter::strToVal()"); @@ -301,7 +337,10 @@ public: strcpy(c,(const char *)out); return c; } - double strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + double strToVal(const char*str) { double radians; if (!IRA::CIRATools::galLongitudeToRad(str,radians,RANGECHECK)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"galacticLongitude_converter::strToVal()"); @@ -322,7 +361,10 @@ public: strcpy(c,(const char *)out); return c; } - ACS::Time strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + ACS::Time strToVal(const char*str) { ACS::Time ret; if (!IRA::CIRATools::strToTime(str,ret)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"time_converter::strToVal()"); @@ -342,7 +384,10 @@ public: strcpy(c,(const char *)out); return c; } - ACS::TimeInterval strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + ACS::TimeInterval strToVal(const char*str) { ACS::TimeInterval ret; if (!IRA::CIRATools::strToInterval(str,ret)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"interval_converter::strToVal()"); @@ -370,7 +415,10 @@ public: strcpy(c,tmp); return c; } - ACS::longSeq strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + ACS::longSeq strToVal(const char*str) { ACS::longSeq out; IRA::CString param(str); IRA::CString ret; @@ -429,7 +477,10 @@ public: strcpy(c,tmp); return c; } - ACS::doubleSeq strToVal(const char*str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + ACS::doubleSeq strToVal(const char*str) { ACS::doubleSeq out; IRA::CString param(str); IRA::CString ret; @@ -485,7 +536,10 @@ public: } return c; } - Antenna::TSections strToVal(const char* str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + Antenna::TSections strToVal(const char* str) { IRA::CString strVal(str); strVal.MakeUpper(); if (strVal=="CW") { @@ -516,7 +570,10 @@ public: strcpy(c,(const char *)out); return c; } - Antenna::TSystemEquinox strToVal(const char* str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + Antenna::TSystemEquinox strToVal(const char* str) { Antenna::TSystemEquinox eq; if (!IRA::CIRATools::strToEquinox(str,eq)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"AntennaEquinox2String::strToVal()"); @@ -537,7 +594,10 @@ public: strcpy(c,(const char *)out); return c; } - Antenna::TCoordinateFrame strToVal(const char* str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + Antenna::TCoordinateFrame strToVal(const char* str) { Antenna::TCoordinateFrame frame; if (!IRA::CIRATools::strToCoordinateFrame(str,frame)) { _EXCPT(ParserErrors::BadTypeFormatExImpl,ex,"AntennaFrame2String::strToVal()"); diff --git a/Common/Libraries/ParserLibrary/include/SP_types.h b/Common/Libraries/ParserLibrary/include/SP_types.h index af1269ccc..9b7e5e35a 100644 --- a/Common/Libraries/ParserLibrary/include/SP_types.h +++ b/Common/Libraries/ParserLibrary/include/SP_types.h @@ -14,14 +14,22 @@ #ifndef _SP_TYPES_H_ #define _SP_TYPES_H_ +#include <Cplusplus11Helper.h> + #include <String.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") #include <ParserErrors.h> +#include <acstimeEpochHelper.h> +#include <IRATools.h> +C11_IGNORE_WARNING_POP #include <Definitions.h> #include <slamac.h> #include <slalib.h> #include <math.h> -#include <acstimeEpochHelper.h> -#include <IRATools.h> + #include "SP_typeConversion.h" #define _SP_JOLLYCHARACTER '*' @@ -75,7 +83,10 @@ public: m_val=bt.m_val; } basic_type(const T& val): m_strVal(NULL ) { m_strVal=m_conv.valToStr(val); m_val=val; } - basic_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl): m_strVal(NULL) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + basic_type(const char *str) : m_strVal(NULL) { clone(str); try { convert(); // check the string contains proper value @@ -111,7 +122,7 @@ public: * Initializes the type starting from a string. * @throw ParserErrors::BadTypeFormatExImpl if the string cannot be converted into the specific type (@sa <i>strToVal()</i> */ - virtual const basic_type<T,CONVERTER,WILDCARD>& operator =(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + virtual const basic_type<T,CONVERTER,WILDCARD>& operator =(const char * str) { clone(str); convert(); return *this; @@ -143,7 +154,10 @@ protected: strcpy(m_strVal,src); } private: - void convert() throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + void convert() { char *str=WILDCARD::replace(m_strVal); try { m_val=m_conv.strToVal(str); @@ -188,7 +202,10 @@ public: string_type::clone(bt.m_val); return *this; } - virtual const string_type& operator =(const char* str) throw (ParserErrors::BadTypeFormatExImpl) { + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + virtual const string_type& operator =(const char* str) { string_type::clone(str); return *this; } @@ -231,7 +248,10 @@ public: enum_type() : basic_type<ENUM,ENUM_CONV,WILDCARD>() {} enum_type(const enum_type& bt): basic_type<ENUM,ENUM_CONV,WILDCARD>(bt) { } enum_type(const ENUM& val): basic_type<ENUM,ENUM_CONV,WILDCARD>(val) {} - enum_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<ENUM,ENUM_CONV,WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + enum_type(const char *str) : basic_type<ENUM,ENUM_CONV,WILDCARD>(str) {} virtual ~enum_type() { } using basic_type<ENUM,ENUM_CONV,WILDCARD>::operator =; }; @@ -245,7 +265,10 @@ public: angle_type() : basic_type<double,angle_converter<OUT>, WILDCARD>() {} angle_type(const angle_type& bt): basic_type<double,angle_converter<OUT>, WILDCARD>(bt) { } angle_type(const double& val): basic_type<double,angle_converter<OUT>, WILDCARD>(val) {} - angle_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,angle_converter<OUT>, WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + angle_type(const char *str) : basic_type<double,angle_converter<OUT>, WILDCARD>(str) {} virtual ~angle_type() { } using basic_type<double,angle_converter<OUT>,WILDCARD>::operator =; }; @@ -259,7 +282,10 @@ public: angleOffset_type() : basic_type<double,angleOffset_converter<OUT>,WILDCARD>() {} angleOffset_type(const angleOffset_type& bt): basic_type<double,angleOffset_converter<OUT>,WILDCARD>(bt) { } angleOffset_type(const double& val): basic_type<double,angleOffset_converter<OUT>,WILDCARD>(val) {} - angleOffset_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,angleOffset_converter<OUT>,WILDCARD>(str) { } + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + angleOffset_type(const char *str) : basic_type<double,angleOffset_converter<OUT>,WILDCARD>(str) { } virtual ~angleOffset_type() { } using basic_type<double,angleOffset_converter<OUT>,WILDCARD>::operator =; }; @@ -275,7 +301,10 @@ public: declination_type() : basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>() {} declination_type(const declination_type& bt): basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>(bt) { } declination_type(const double& val): basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>(val) {} - declination_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + declination_type(const char *str) : basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>(str) {} virtual ~declination_type() { } using basic_type<double,declination_converter<OUT,RANGECHECK>, WILDCARD>::operator =; }; @@ -291,7 +320,10 @@ public: rightAscension_type() : basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>() {} rightAscension_type(const rightAscension_type& bt): basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>(bt) { } rightAscension_type(const double& val): basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>(val) {} - rightAscension_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + rightAscension_type(const char *str) : basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>(str) {} virtual ~rightAscension_type() { } using basic_type<double,rightAscension_converter<OUT,RANGECHECK>, WILDCARD>::operator =; }; @@ -307,7 +339,10 @@ public: azimuth_type() : basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >() {} azimuth_type(const azimuth_type& bt): basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >(bt) { } azimuth_type(const double& val): basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >(val) {} - azimuth_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >(str) { } + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + azimuth_type(const char *str) : basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >(str) { } virtual ~azimuth_type() { } using basic_type<double,azimuth_converter<OUT,RANGECHECK>,WILDCARD >::operator =; }; @@ -323,7 +358,10 @@ public: elevation_type() : basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>() {} elevation_type(const elevation_type& bt): basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>(bt) { } elevation_type(const double& val): basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>(val) {} - elevation_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + elevation_type(const char *str) : basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>(str) {} virtual ~elevation_type() { } using basic_type<double,elevation_converter<OUT,RANGECHECK>,WILDCARD>::operator =; }; @@ -339,7 +377,10 @@ public: galacticLatitude_type() : basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>() {} galacticLatitude_type(const galacticLatitude_type& bt): basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>(bt) { } galacticLatitude_type(const double& val): basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>(val) {} - galacticLatitude_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>(str) { } + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + galacticLatitude_type(const char *str) : basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>(str) { } virtual ~galacticLatitude_type() { } using basic_type<double,galacticLatitude_converter<OUT,RANGECHECK>,WILDCARD>::operator =; }; @@ -355,7 +396,10 @@ public: galacticLongitude_type() : basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>() {} galacticLongitude_type(const galacticLongitude_type& bt): basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>(bt) { } galacticLongitude_type(const double& val): basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>(val) {} - galacticLongitude_type(const char *str) throw (ParserErrors::BadTypeFormatExImpl) : basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>(str) {} + /* + * @throw ParserErrors::BadTypeFormatExImpl + */ + galacticLongitude_type(const char *str) : basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>(str) {} virtual ~galacticLongitude_type() { } using basic_type<double,galacticLongitude_converter<OUT,RANGECHECK>,WILDCARD>::operator =; }; diff --git a/Common/Libraries/ParserLibrary/src/TestFunctions.cpp b/Common/Libraries/ParserLibrary/src/TestFunctions.cpp index d69d1b506..27f9e5592 100644 --- a/Common/Libraries/ParserLibrary/src/TestFunctions.cpp +++ b/Common/Libraries/ParserLibrary/src/TestFunctions.cpp @@ -68,7 +68,7 @@ void test3Unary(const int& i,const int& j,const int& k) { int y=i+j+k; printf("'Test3Unary': %d\n",y); } -void Error() throw (ComponentErrors::MemoryAllocationExImpl) { +void Error() /*throw (ComponentErrors::MemoryAllocationExImpl)*/ { _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl,"CProva::Error()"); } void testRadHourAngle(double& ra) { diff --git a/Common/Libraries/ParserLibrary/src/TestParser.cpp b/Common/Libraries/ParserLibrary/src/TestParser.cpp index 394f18cf4..227d8d477 100644 --- a/Common/Libraries/ParserLibrary/src/TestParser.cpp +++ b/Common/Libraries/ParserLibrary/src/TestParser.cpp @@ -132,7 +132,8 @@ void wait(const long& sec) const IRA::CIRATools::Wait(sec,0); } -bool remoteCall(const IRA::CString& command,const IRA::CString& package,const long& par,IRA::CString& out) throw (ParserErrors::PackageErrorExImpl) +//throw (ParserErrors::PackageErrorExImpl) +bool remoteCall(const IRA::CString& command,const IRA::CString& package,const long& par,IRA::CString& out) { if (par==0) { out.Format("%s/ eseguito con successo nel package %s \n",(const char *)command,(const char *)package); diff --git a/Common/Libraries/ParserLibrary/src/TestTypes.cpp b/Common/Libraries/ParserLibrary/src/TestTypes.cpp index a63c79bc4..31a0dcad7 100644 --- a/Common/Libraries/ParserLibrary/src/TestTypes.cpp +++ b/Common/Libraries/ParserLibrary/src/TestTypes.cpp @@ -14,7 +14,8 @@ typedef enum { class Disney_converter { public: - Disney strToVal(const char * str) throw (ParserErrors::BadTypeFormatExImpl) { + //throw (ParserErrors::BadTypeFormatExImpl) + Disney strToVal(const char * str) { if (strcmp(str,"PIPPO")==0) { return PIPPO; } diff --git a/Medicina/CDB/MACI/Managers/Manager/Manager.xml b/Medicina/CDB/MACI/Managers/Manager/Manager.xml index 640629bf9..cf1a9dfae 100644 --- a/Medicina/CDB/MACI/Managers/Manager/Manager.xml +++ b/Medicina/CDB/MACI/Managers/Manager/Manager.xml @@ -36,7 +36,7 @@ dispatchPacketSize="0" immediateDispatchLevel="8" > - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml index 640629bf9..cf1a9dfae 100644 --- a/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/Medicina/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -36,7 +36,7 @@ dispatchPacketSize="0" immediateDispatchLevel="8" > - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/Noto/CDB/MACI/Managers/Manager/Manager.xml b/Noto/CDB/MACI/Managers/Manager/Manager.xml index 4a58ab59f..db7927c94 100644 --- a/Noto/CDB/MACI/Managers/Manager/Manager.xml +++ b/Noto/CDB/MACI/Managers/Manager/Manager.xml @@ -37,7 +37,7 @@ dispatchPacketSize="0" immediateDispatchLevel="8" > - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml index ceccb0b63..6d17d0ab4 100644 --- a/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/Noto/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -38,7 +38,7 @@ dispatchPacketSize="0" immediateDispatchLevel="8" > - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 8a48c22c5..b6d47acd7 100644 --- a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -17,6 +17,14 @@ </body> </Procedure> +<Procedure name="setupCCG" args="0"> +<body> + receiversSetup=CCG + chooseBackend=TotalPower + calOff +</body> +</Procedure> + <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG diff --git a/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml b/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml index 24541dd03..b098cecce 100644 --- a/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml +++ b/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml @@ -26,6 +26,8 @@ <AvailableReceiver Code="CCB" Derotator="false" Component="RECEIVERS/SRT7GHzReceiver"/> +<AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> + <AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml new file mode 100644 index 000000000..a5c080c2a --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - +--> +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="5GHzReceiver" + Code="SRT7GHzImpl" + Type="IDL:alma/Receivers/SRT5GHz:1.0" + Container="SRT5GHzContainer" + KeepAliveTime="-1" + Default="false" + ImplLang="cpp" +/> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT7GHzReceiver/SRT7GHzReceiver.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT7GHzReceiver/SRT7GHzReceiver.xml index c7bd6ace9..bd263ee6c 100644 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT7GHzReceiver/SRT7GHzReceiver.xml +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT7GHzReceiver/SRT7GHzReceiver.xml @@ -14,5 +14,5 @@ Container="SRT7GHzContainer" KeepAliveTime="-1" Default="false" - ImplLang="cpp" + ImplLang="cpp" /> diff --git a/SRT/Configuration/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml b/SRT/Configuration/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml new file mode 100644 index 000000000..05a4289d3 --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Author Infos + * ============ + * Name: Andrea Orlati + * E-mail: andrea.orlati@inaf.it +--> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="cpp" + Recovery="false"> + + <Autoload> + <cdb:e string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> + + + diff --git a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml index 14d60fe9b..0936b64a6 100644 --- a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -41,7 +41,7 @@ minLogLevelLocal="5" dispatchPacketSize="10" immediateDispatchLevel="8"> - <log:_ Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> + <log:e Name="jacorb@Manager" minLogLevel="5" minLogLevelLocal="5" /> </LoggingConfig> </Manager> diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml new file mode 100644 index 000000000..9bc79d702 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml @@ -0,0 +1,15 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<Feeds xmlns="urn:schemas-cosylab-com:Feeds:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<Feed> + <feedCode>0</feedCode> + <xOffset>0.0</xOffset> + <yOffset>0.0</yOffset> + <relativePower>1.0</relativePower> +</Feed> + +</Feeds> \ No newline at end of file diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml new file mode 100644 index 000000000..d4e46f443 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<NoiseMarkLookUpTable xmlns="urn:schemas-cosylab-com:NoiseMarkLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>4200.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>4900.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>5600.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> + +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>4200.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>4900.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>5600.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> + +</NoiseMarkLookUpTable> \ No newline at end of file diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml new file mode 100644 index 000000000..44e1e2e0a --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml @@ -0,0 +1,25 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Andrea Orlati + - History: + - 14-08-23 Created +--> + +<ReceiversModeSetup xmlns="urn:schemas-cosylab-com:ReceiversModeSetup:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Mode="NORMAL" + RFMin="4200.0 4200.0" + RFMax="5600.0 5600.0" + IFMin="100.0 100.0" + IFBandwidth="1400.0 1400.0" + Feeds="1" + IFs="2" + Polarization="L R" + DefaultLO="4100.0 4100.0" + FixedLO2="4100.0 4100.0" + LOMin="4100.0 4100.0" + LOMax="4100.0 4100.0" +/> diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml new file mode 100644 index 000000000..892a6cf1f --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<LocalOscillatorLookUpTable xmlns="urn:schemas-cosylab-com:LocalOscillatorLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<SynthesizerEntry><Frequency>8200.0</Frequency><OutputPower>6</OutputPower></SynthesizerEntry> + +</LocalOscillatorLookUpTable> \ No newline at end of file diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml new file mode 100644 index 000000000..5e9edf53c --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml @@ -0,0 +1,14 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<TaperLookUpTable xmlns="urn:schemas-cosylab-com:TaperLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<TaperEntry><Frequency>4200</Frequency><Taper>-8.5</Taper></TaperEntry> + +<TaperEntry><Frequency>4900</Frequency><Taper>-12</Taper></TaperEntry> + +<TaperEntry><Frequency>5600</Frequency><Taper>-17</Taper></TaperEntry> + +</TaperLookUpTable> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 8a48c22c5..b6d47acd7 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -17,6 +17,14 @@ </body> </Procedure> +<Procedure name="setupCCG" args="0"> +<body> + receiversSetup=CCG + chooseBackend=TotalPower + calOff +</body> +</Procedure> + <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml b/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml index 24541dd03..b098cecce 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml @@ -26,6 +26,8 @@ <AvailableReceiver Code="CCB" Derotator="false" Component="RECEIVERS/SRT7GHzReceiver"/> +<AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> + <AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml new file mode 100644 index 000000000..939faecf2 --- /dev/null +++ b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -0,0 +1,187 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - 02 - 08 -2023 created Andrea Orlati (andrea.orlati@inaf.it) +--> + +<SRT5GHzReceiver xmlns="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + DewarIPAddress="192.168.60.51" + DewarPort="5002" + LNAIPAddress="192.168.60.50" + LNAPort="5002" + WatchDogResponseTime="400000" + WatchDogSleepTime="500000" + LNASamplingTime="250000" + RepetitionCacheTime="7000000" + RepetitionExpireTime="10000000" + LocalOscillatorInstance="RECEIVERS/LO_CBAND" +> + <LO description="Sequence of local oscillator values for each IF chain"/> + <feeds description="Number of feeds of the receiver"/> + <IFs description="Number of Intermediate Frequencies chains coming from each feed" /> + <polarization description="Sequence of values that identifies the polarization of each IF chains" /> + <initialFrequency description="Sequence of the start frequencies for each IF chain (MHz)" + units="MHz" + format="%6.2f" + /> + <bandWidth description="Sequence of the band width values for each IF chain (MHz)" + units="MHz" + format="%6.2f" + /> + <mode description="Mnemonic code that defines a special working mode of the receiver (MHz)" /> + <vacuum description="measure of the vacuum" + alarm_high_on="5e-3" + default_value="5.4e-7" + alarm_high_off="5e-6" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="1e-7" + units="mBar" + format="%e" + /> + <status description="Bit fields that provide the status word of the receiver and component" + alarm_mask="777" + alarm_trigger="1" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + /> + <Vd_1 description="drain voltage for IF1 LNA" + alarm_high_on="0.6" + alarm_low_on="0.4" + default_value="0.5" + alarm_high_off="0.55" + alarm_low_off="0.45" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" + /> + <Vd_2 description="drain voltage for IF2 LNA" + alarm_high_on="0.54" + alarm_low_on="0.36" + default_value="0.45" + alarm_high_off="0.495" + alarm_low_off="0.405" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" + /> + <Id_1 description="drain current for IF1 LNA" + alarm_high_on="6.36" + alarm_low_on="4.24" + default_value="5.3" + alarm_high_off="5.83" + alarm_low_off="4.77" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" + /> + <Id_2 description="drain current for IF2 LNA" + alarm_high_on="11.88" + alarm_low_on="7.92" + default_value="9.9" + alarm_high_off="10.89" + alarm_low_off="8.91" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" + /> + <Vg_1 description="gate voltage for IF1 LNA" + alarm_high_on="-1.664" + alarm_low_on="-2.496" + default_value="-2.08" + alarm_high_off="-1.872" + alarm_low_off="-2.288" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" + /> + <Vg_2 description="gate voltage for IF2 LNA" + alarm_high_on="-1.488" + alarm_low_on="-2.232" + default_value="-1.86" + alarm_high_off="-1.624" + alarm_low_off="-2.046" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" + /> + <cryoTemperatureCoolHead description="Cryogenic temperature measured near the cool head" + alarm_high_on="91.0" + alarm_high_off="75.0" + default_value="65.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureCoolHeadWindow description="Cryogenic temperature measured at cool head window" + alarm_high_on="130.0" + alarm_high_off="110.0" + default_value="100.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureLNA description="Cryogenic temperature measured at the LNA" + alarm_high_on="40.0" + alarm_high_off="28.0" + default_value="20.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureLNAWindow description="Cryogenic temperature measured at the LNA window" + alarm_high_on="63.0" + alarm_high_off="44.0" + default_value="35.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <environmentTemperature description="temperature of the room in which the receiver is installed" + alarm_high_on="35.0" + alarm_high_off="30.0" + default_value="25.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Celsius degree" + format="%4.1f" + /> + <receiverStatus description="Overall status of the receiver"/> +</SRT5GHzReceiver> diff --git a/SRT/Interfaces/SRTReceiversInterface/idl/SRT5GHz.idl b/SRT/Interfaces/SRTReceiversInterface/idl/SRT5GHz.idl new file mode 100644 index 000000000..f1422c564 --- /dev/null +++ b/SRT/Interfaces/SRTReceiversInterface/idl/SRT5GHz.idl @@ -0,0 +1,108 @@ +#ifndef ___5GHZ_IDL__ +#define ___5GHZ_IDL__ + + +#include <baci.idl> +#include <ComponentErrors.idl> +#include "GenericReceiver.idl" + +#pragma prefix "alma" + +module Receivers { + + /** + * This module defines the interface of the 5GHz receiver installed in the SRT. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a> + * <br> + * @copybrief Receivers::Receiver::status + * the single bits of the status word assumed the following meaning: + * @arg \c 0 LOCAL, set if the receiver is in remote and can be controlled remotely, error + * @arg \c 1 VACUUMSENSOR, set if the vacuum sensor is turned on, status + * @arg \c 2 VACUUMPUMPSTATUS, set if the vacuum pump is on, status + * @arg \c 3 VACUUMPUMPFAULT, set if the vacuum pump is in fault state, warning + * @arg \c 4 VACUUMVALVEOPEN, set if the vacuum valve i sopen, status + * @arg \c 5 COOLHEADON, set if the cool head is turned on, status + * @arg \c 6 COMPRESSORFAULT, set if the compressor is in fault state is turned on, error + * @arg \c 7 NOISEMARK, set is the calibration diode is on, status + * @arg \c 8 NOISEMARKERROR, set if the calibration mark should be and it is not, or viceversa, error + * @arg \c 9 EXTNOISEMARK, set if the control of the calibration diode from external source is enabled, status + * @arg \c 10 CONNECTIONERROR, set if an error was found during the comunication from/to the receiver, error + * @arg \c 11 UNLOCKED, set if at least one of the local oscillator is not locked, error + * @copybrief Receivers::CommonReceiverInterface::setLO + */ + interface SRT5GHz : ACS::CharacteristicComponent, Receiver { + + + /** + * Drain voltage of LNA, IF 1 + */ + readonly attribute ACS::ROdouble Vd_1; + + /** + * Drain voltage of LNA, IF 2 + */ + readonly attribute ACS::ROdouble Vd_2; + + /** + * Drain current of LNA, IF 1 + */ + readonly attribute ACS::ROdouble Id_1; + + /** + * Drain current of LNA, IF 2 + */ + readonly attribute ACS::ROdouble Id_2; + + /** + * Gate voltage of LNA, IF 1 + */ + readonly attribute ACS::ROdouble Vg_1; + + /** + * Gate voltage of LNA, IF 2 + */ + readonly attribute ACS::ROdouble Vg_2; + + /** + * Cryogenic temperature of the cool head. Approximately 65K + */ + readonly attribute ACS::ROdouble cryoTemperatureCoolHead; + + /** + * Cryogenic temperature of the cool head measured at the window. Approximately 100K + */ + readonly attribute ACS::ROdouble cryoTemperatureCoolHeadWindow; + + /** + * Cryogenic temperature of the Low Noise Amplifier. Approximately 20K + */ + readonly attribute ACS::ROdouble cryoTemperatureLNA; + + /** + * Cryogenic temperature of the cool head measured at the window. Approximately 35K + */ + readonly attribute ACS::ROdouble cryoTemperatureLNAWindow; + + /** + * Value of the environment temperature in °C. + */ + readonly attribute ACS::ROdouble environmentTemperature; + + /** + * It allows to turn the vacuum sensor on. The vacuum sensor is necessary to have a correct measurment of the vacuum characteristic. + * If the vacuum sensor is not working the dafult_value for the vacuum characteristic is always reported. + */ + void turnVacuumSensorOn() raises (ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx); + + /** + * It allows to turn the vacuum sensor off. The vacuum sensor is necessary to have a correct measurment of the vacuum characteristic. + * If the vacuum sensor is not working the dafult_value for the vacuum characteristic is always reported. + */ + void turnVacuumSensorOff() raises (ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx); + + }; + + +}; + +#endif \ No newline at end of file diff --git a/SRT/Interfaces/SRTReceiversInterface/src/Makefile b/SRT/Interfaces/SRTReceiversInterface/src/Makefile index 1c7ed34fb..d97a2b510 100644 --- a/SRT/Interfaces/SRTReceiversInterface/src/Makefile +++ b/SRT/Interfaces/SRTReceiversInterface/src/Makefile @@ -13,11 +13,12 @@ CDB_SCHEMAS = SRTLPBandNoiseMarkLookUpTable SRTLPBandReceiverModeSetup \ MarkCoefficientsSBandLookUpTable SRTIFDistributorTable #SRTIFDistributor14Table # IDL Files and flags -IDL_FILES = SRTKBandMF SRTSBandMF SRT7GHz SRTLPBand \ +IDL_FILES = SRTKBandMF SRTSBandMF SRT7GHz SRT5GHz SRTLPBand \ SRTKBandDerotator SRTIFDistributor #SRTIFDistributor14 SRTKBandMFStubs_LIBS = baciStubs ComponentErrorsStubs GenericReceiverStubs SRTSBandMFStubs_LIBS = baciStubs ComponentErrorsStubs GenericReceiverStubs SRT7GHzStubs_LIBS = baciStubs ComponentErrorsStubs GenericReceiverStubs +SRT5GHzStubs_LIBS = baciStubs ComponentErrorsStubs GenericReceiverStubs SRTLPBandStubs_LIBS = baciStubs ComponentErrorsStubs GenericReceiverStubs ManagmentDefinitionsStubs SRTKBandDerotatorStubs_LIBS = baciStubs ComponentErrorsStubs GenericDerotatorStubs SRTIFDistributorStubs_LIBS = GenericIFDistributorStubs LocalOscillatorInterfaceStubs diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml index 759140ae0..0b0581971 100644 --- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>35</select> + <select>36</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -154,15 +154,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <!--container> - <name>PyIFDistributorContainer</name> - <type>py</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container--> <container> <name>ReceiversContainer</name> <type>cpp</type> @@ -199,6 +190,15 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> + <container> + <name>SRT5GHzContainer</name> + <type>cpp</type> + <heapSizeMB></heapSizeMB> + <useDedicatedSettings>true</useDedicatedSettings> + <scriptBase>0</scriptBase> + <remoteHost>MASTERHOST</remoteHost> + <remoteAccount>discos</remoteAccount> + </container> <container> <name>SRTKBandContainer</name> <type>cpp</type> diff --git a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml index fc00b44c7..2fb1a7429 100644 --- a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>34</select> + <select>35</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -190,6 +190,15 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> + <container> + <name>SRT5GHzContainer</name> + <type>cpp</type> + <heapSizeMB></heapSizeMB> + <useDedicatedSettings>true</useDedicatedSettings> + <scriptBase>0</scriptBase> + <remoteHost>MASTERHOST</remoteHost> + <remoteAccount>discos</remoteAccount> + </container> <container> <name>SRTKBandContainer</name> <type>cpp</type> diff --git a/SRT/Servers/SRT5GHzReceiver/config/CDB/schemas/SRT5GHzReceiver.xsd b/SRT/Servers/SRT5GHzReceiver/config/CDB/schemas/SRT5GHzReceiver.xsd new file mode 100644 index 000000000..fb97c4a19 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/config/CDB/schemas/SRT5GHzReceiver.xsd @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + - Author: Andrea Orlati + - + - History: + - 10-08-2023 Created +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" + xmlns="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:rcv="urn:schemas-cosylab-com:Receivers:1.0" + + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:Receivers:1.0" schemaLocation="Receivers.xsd"/> + + <xs:complexType name="SRT5GHzStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROpattern"> + <xs:attribute name="resolution" type="xs:unsignedLong" use="optional" default="2048"/> + <xs:attribute name="bitDescription" type="xs:string" use="optional" default= + "Local,Vacuum_Sensor,Vacuum_Pump_Status,Vacuum_Pump_Fault,Vacuum_Valve_Open,Cool_Head_On,Compressor_Fault, + Noise_Mark,Noise_Mark_Error, External_Mark_Enabled,Connection_Error,Unlocked"/> + <xs:attribute name="whenSet" type="xs:string" use="optional" default= + "0, 2, 2, 1, 2, 2, 0, 2, 0, 2, 0, 0"/> + <xs:attribute name="whenCleared" type="xs:string" use="optional" default= + "2, 3, 3, 2, 3, 3, 2, 3, 2, 3, 2, 2"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRT5GHzReceiverType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:sequence> + <!-- Local Oscillator (ROdoubleSeq) --> + <xs:element name="LO" type="baci:ROdoubleSeq"/> + <!-- Number of receiver feeds --> + <xs:element name="feeds" type="baci:ROlong"/> + <!-- Intermediate Frequencies (ROlong) --> + <xs:element name="IFs" type="baci:ROlong"/> + <!-- Polarization (ROlongSeq) --> + <xs:element name="polarization" type="baci:ROlongSeq"/> + <!-- initialFrequency (ROdoubleSeq) --> + <xs:element name="initialFrequency" type="baci:ROdoubleSeq"/> + <!-- bandWidth (ROdoubleSeq) --> + <xs:element name="bandWidth" type="baci:ROdoubleSeq"/> + <!-- currently configured mode (ROstring) --> + <xs:element name="mode" type="baci:ROstring"/> + <!-- vacuum (ROdouble) --> + <xs:element name="vacuum" type="baci:ROdouble"/> + <!-- Subsystem status --> + <xs:element name="status" type="SRT5GHzStatusType" /> + <!-- Drain voltage for IF1 (ROdouble) --> + <xs:element name="Vd_1" type="baci:ROdouble"/> + <!-- Drain voltage for IF2 (ROdouble) --> + <xs:element name="Vd_2" type="baci:ROdouble"/> + <!-- Drain current for IF1 (ROdouble) --> + <xs:element name="Id_1" type="baci:ROdouble"/> + <!-- Drain current for IF2 (ROdouble) --> + <xs:element name="Id_2" type="baci:ROdouble"/> + <!-- Gate voltage for IF1 (ROdouble) --> + <xs:element name="Vg_1" type="baci:ROdouble"/> + <!-- Gate voltage for IF2 (ROdouble) --> + <xs:element name="Vg_2" type="baci:ROdouble"/> + <!-- cryogenic temp (K) (ROdouble) --> + <xs:element name="cryoTemperatureCoolHead" type="baci:ROdouble"/> + <!-- cryogenic temp (K) (ROdouble) --> + <xs:element name="cryoTemperatureCoolHeadWindow" type="baci:ROdouble"/> + <!-- cryogenic temp (K) (ROdouble) --> + <xs:element name="cryoTemperatureLNA" type="baci:ROdouble"/> + <!-- cryogenic temp (K) (ROdouble) --> + <xs:element name="cryoTemperatureLNAWindow" type="baci:ROdouble"/> + <!-- cryogenic temp (K) (ROdouble) --> + <xs:element name="environmentTemperature" type="baci:ROdouble"/> + <xs:element name="receiverStatus" type="mng:SystemStatusType" /> + </xs:sequence> + <xs:attribute name="DewarIPAddress" type="xs:string" use="required"/> + <xs:attribute name="DewarPort" type="xs:unsignedShort" use="required" /> + <xs:attribute name="LNAIPAddress" type="xs:string" use="required"/> + <xs:attribute name="LNAPort" type="xs:unsignedShort" use="required" /> + <!-- The WatchDog working time(microseconds) --> + <xs:attribute name="WatchDogResponseTime" type="xs:unsignedLong" use="required" /> + <!-- The WatchDog sleep time(microseconds) --> + <xs:attribute name="WatchDogSleepTime" type="xs:unsignedLong" use="required" /> + <!-- LNA sampling time (microseconds) --> + <xs:attribute name="LNASamplingTime" type="xs:unsignedLong" use="required" /> + <!-- the cache time (microseconds) for logging repetition filter --> + <xs:attribute name="RepetitionCacheTime" type="xs:unsignedLong" use="required" /> + <!-- the expire time (microseconds) for logging repetition filter --> + <xs:attribute name="RepetitionExpireTime" type="xs:unsignedLong" use="required" /> + <!-- Instance of the associated device that will set the local oscillator --> + <xs:attribute name="LocalOscillatorInstance" type="xs:string" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRT5GHzReceiver" type="SRT5GHzReceiverType"/> +</xs:schema> diff --git a/SRT/Servers/SRT5GHzReceiver/include/ComponentCore.h b/SRT/Servers/SRT5GHzReceiver/include/ComponentCore.h new file mode 100644 index 000000000..79eed3886 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/ComponentCore.h @@ -0,0 +1,490 @@ +#ifndef _COMPONENTCORE_H_ +#define _COMPONENTCORE_H_ + +/* **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public License (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + +#include "Configuration.h" +#include <ReceiverControl.h> +#include <LocalOscillatorInterfaceC.h> +#include <ReceiversErrors.h> +#include <ManagmentDefinitionsC.h> + +/** + * This class contains the code of almost all the features of the component + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, INAF + * <br> + */ +class CComponentCore { +public: + /** + * Constructor + */ + CComponentCore(); + + /** + * Destructor + */ + virtual ~CComponentCore(); + + /** + * This method initializes the object + * @param service pointer to container services object provided by the container + */ + virtual void initialize(maci::ContainerServices* services) noexcept; + + /** + * This method prepares the object for execution. + * @return the pointer to the configuration class + * @throw ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl,ComponentErrors::SocketErrorExImpl + + */ + virtual CConfiguration const * const execute(); + /** + * This function is responsible to free all allocated resources + */ + virtual void cleanup(); + + /** + * It sets the local oscillator. Only the first value is considered in this case, since the receiver has just one synthesizer. Before commanding the new value some check are done. The the correspnding signal + * amplitude is computed. + * @param lo lists of values for the local oscillator (MHz), one for each IF. In that case just the first one is significant. In a -1 is passed the present value is kept + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + * @throw ComponentErrors::CouldntGetComponentExImpl + * @throw ComponentErrors::CORBAProblemExImpl + * @thorw ReceiversErrors::LocalOscillatorErrorExImpl + */ + void setLO(const ACS::doubleSeq& lo); + + /** + * It allows to change the operating mode of the receiver. If the mode does not correspond to a valid mode an error is thrown. + * @param mode mode code as a string + * @throw ReceiversErrors::ModeErrorExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl, + * @throw ComponentErrors::CouldntGetComponentExImpl + * @throw ComponentErrors::CORBAProblemExImpl + * @throw ReceiversErrors::LocalOscillatorErrorExImpl) + */ + void setMode(const char * mode); + + /** + * It activate the receiver, in other words it allows to setup the default configuration and to make sure the LNA are turned on. + * @throw ReceiversErrors::ModeErrorExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl, + * @throw ComponentErrors::CouldntGetComponentExImpl + * @throw ComponentErrors::CORBAProblemExImpl + * @throw ReceiversErrors::LocalOscillatorErrorExImpl + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void activate(); + + /** + * It deactivates the receiver. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void deactivate(); + + /** + * It allows to compute the value of the calibration mark for any given sub bands in the IF space. + * @param result this the sequence of computed mark values, the first entry correspond to first sub band and so on.... + * @param, resFreq the sequence reports the initial observed sky frequency (MHz), the first entry correspond to first sub band and so on.... + * @param resBw the sequence reports the real bandwidth observed (MHz), the first entry correspond to first sub band and so on.... + * @param freqs list of start frequencies (MHz) + * @param bandwidth list of the band widths (MHz) + * @param feeds list of feed identifier, it allows to specifies form which feed the sub band comes from. In that case it is neglected since the receiver is a single feed + * @param ifs list of IF identifier, it allows to specifies from which receiver IF the sub band comes from. + * @param true if the calibration diode is turned on. + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + */ + void getCalibrationMark(ACS::doubleSeq& result,ACS::doubleSeq& resFreq,ACS::doubleSeq& resBw,const ACS::doubleSeq& freqs,const ACS::doubleSeq& bandwidths,const ACS::longSeq& feeds, + const ACS::longSeq& ifs,bool& onoff,double& scaleFactor); + + /** + * It is called to get the all the receiver output information in one call. + * An output is identified by providing the feed and the IF identifier. It can process any number of requests at a time. + * @param feeds is a list that stores the corresponding feed of the output we are asking for + * @param ifs is a list that identifies which IFs of the feed we are interested in, usually 0..<i>IFs</i>-1 + * @param freq used to return the start frequency of the band provided by the output the oscillator + * (if present) is not added (MHz) + * @param bw used to return the total provided bandwidth. (MHz) + * @param pols it specifies the polarization of the receiver output, since ACS does not support for enum + * sequences the correct value must be matched against the <i>Receivers::TPolarization</i> enumeration. + * @param LO it gives (if present) the value of the local oscillator (MHz). + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + */ + void getIFOutput( + const ACS::longSeq& feeds, + const ACS::longSeq& ifs, + ACS::doubleSeq& freqs, + ACS::doubleSeq& bw, + ACS::longSeq& pols, + ACS::doubleSeq& LO + ); + + /** + * It computes the taper given a reference band. + * @param freq start frequency of the reference band + * @param bw width of the reference band + * @param feed feed number + * @param ifNumber IF chain identifier + * @param waveLen wave length of the reference band, the band is transformed in a real sky observed band and + * the the central frequency is taken + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + */ + double getTaper(const double& freq,const double& bw,const long& feed,const long& ifNumber,double& waveLen); + + /** + * It turns the calibration diode on. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void calOn(); + /** + * It turns the calibration diode off + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void calOff(); + + /** It turns the external calibration diode on. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl,ComponentErrors::ValidationErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void externalCalOn(); + + /** It turns the external calibration diode off. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl, + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void externalCalOff(); + + /** + * It turns on the sensor for vacuum measurement. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void vacuumSensorOn(); + + /** + * It turns off the sensor for vacuum measurement. + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void vacuumSensorOff(); + + /** + * It allows to turn LNA on + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void lnaOn(); + + /** + * It allows to turn LNA off + * @throw ReceiversErrors::NoRemoteControlErrorExImpl + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void lnaOff(); + + /** + * It reads and updates from the control board the current value of the vacuum + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateVacuum(); + + /** + * It check if the vacuum pump is on and check is the status is fault or not (<i>VACUUMPUMPFAULT</i>) + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateVacuumPump(); + + /** + * It checks if the vacuum valve is opened or not + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateVacuumValve(); + + /** + * It reads and updates from the control board the current cryo temperature measured near the cool head + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateCryoCoolHead(); + + /** + * It reads and updates from the control board the current cryo temperature measured near the cool head window + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateCryoCoolHeadWin(); + + /** + * It reads and updates from the control board the current cryo temperature measured near the LNA + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateCryoLNA(); + + /** + * It reads and updates from the LNA control board the current values of current and voltage of gate and drain of the transistors + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateLNAControls(); + + /** + * It reads and updates from the control board the current cryo temperature measured near the LNA window + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateCryoLNAWin(); + + /** + * It reads and updates from the control board the current vertex temperature + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateEnvironmentTemperature(); + + /** + * It checks if the Dewar power box is in remote or not + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateIsRemote(); + + /** + * It checks if the cool head is turned on or not + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateCoolHead(); + + /** + * It checks is the status of the noise mark correspond to the commanded status, otherwise it sets the <i>NOISEMARKERROR</i> bit. It also check if the + * external control of the noise mark has been enabled or not + * @throw ReceiversErrors::ReceiverControlBoardErrorExImpl + */ + void updateNoiseMark(); + + /** + * This method resumes the whole status of the component. It set the <i>componentStatus</i> member variable. + */ + void updateComponent(); + + /** + * I checks if the local oscillator is locked properly + * @throw ComponentErrors::CORBAProblemExImpl + * @throw ComponentErrors::CouldntGetAttributeExImpl + */ + void checkLocalOscillator(); + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the vacuum in mbar + */ + double getVacuum() const { return m_vacuum; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the cryogenic temperature at cool head in °K + */ + CConfiguration::BoardValue getCryoCoolHead() const noexcept { return m_cryoCoolHead; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the cryogenic temperature at cool head window in °K + */ + CConfiguration::BoardValue getCryoCoolHeadWin() const noexcept { return m_cryoCoolHeadWin; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the cryogenic temperature at LNA in °K + */ + CConfiguration::BoardValue getCryoLNA() const noexcept { return m_cryoLNA; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the cryogenic temperature at LNA window in °K + */ + CConfiguration::BoardValue getCryoLNAWin() const noexcept { return m_cryoLNAWin; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current value of the vertex temperature + */ + CConfiguration::BoardValue getEnvironmentTemperature() const noexcept { return m_environmentTemperature; } + + /** + * This is getter method. No need to make it thread safe...... + * @return the current status word + */ + DWORD getStatusWord() const noexcept { return m_statusWord; } + + /** + * This is getter method. In this case, since it makes use of some class members that could be changed by other methods it is advisable to protect this method with the class mutex. + * @param control name of the parameter that must be returned + * @param ifs Intermediate frequency identifier, it permits to select which amplification chain we are interested in + * @return a specific value of from the transistor control parameters + */ + double getFetValue(const IRA::ReceiverControl::FetValue& control,const DWORD& ifs) noexcept; + + /** + * It returns the feed geometry of the receiver with respect to the central one. For this implementation it is just a placeholder since there is just one feed. + */ + long getFeeds(ACS::doubleSeq& X,ACS::doubleSeq& Y,ACS::doubleSeq& power) noexcept; + + /** + * It returns back the current local oscillator frequency settings. + * @param lo output sequence + */ + void getLO(ACS::doubleSeq& lo); + + /** + * It returns back the current bandwidth for each IF. + * @param bw output sequence + */ + void getBandwidth(ACS::doubleSeq& bw); + + /** + * It returns back the current start frequency for each IF. + * @param sf output sequence + */ + void getStartFrequency(ACS::doubleSeq& sf); + + /** + * It returns back the current polarization for each IF. + * @param pol output sequence + */ + void getPolarization(ACS::longSeq& pol); + + /** + * It returns the current operating mode of the receiver. + * @return output string + */ + const IRA::CString& getSetupMode(); + + /** + * It returns the number of IF chains + * @return output value + */ + const DWORD& getIFs(); + + /** + * It returns the number of feeds + * @return output value + */ + const DWORD& getFeeds(); + + /** + * @return the status flag of the component + */ + const Management::TSystemStatus& getComponentStatus(); + + /** + * Allows to set the "default_value" for the vacuum characteristic. In principle it is possible to read it directly from CDB, but I found it more + * comfortable to get it directly from the characteristic itself. + */ + inline void setVacuumDefault(const double& val) noexcept { m_vacuumDefault=val; } + +protected: + /** + * Obtain a valid reference to the local oscillator device + * @throw ComponentErrors::CouldntGetComponentExImpl + */ + void loadLocalOscillator(); + + /** + * used to free the reference to the local oscillator device + */ + void unloadLocalOscillator() noexcept; +private: + + enum TStatusBit { + LOCAL=0, + VACUUMSENSOR=1, + VACUUMPUMPSTATUS=2, + VACUUMPUMPFAULT=3, + VACUUMVALVEOPEN=4, + COOLHEADON=5, + COMPRESSORFAULT=6, + NOISEMARK=7, + NOISEMARKERROR=8, + EXTNOISEMARK=9, + CONNECTIONERROR=10, + UNLOCKED=11 + }; + + CConfiguration m_configuration; + maci::ContainerServices* m_services; + BACIMutex m_mutex; + IRA::ReceiverControl *m_control; // this object is thread safe + Receivers::LocalOscillator_var m_localOscillatorDevice; + bool m_localOscillatorFault; + double m_localOscillatorValue; + ACS::doubleSeq m_startFreq; + ACS::doubleSeq m_bandwidth; + ACS::longSeq m_polarization; + IRA::CString m_setupMode; + double m_vacuum; + CConfiguration::BoardValue m_cryoCoolHead; + CConfiguration::BoardValue m_cryoCoolHeadWin; + CConfiguration::BoardValue m_cryoLNA; + CConfiguration::BoardValue m_cryoLNAWin; + CConfiguration::BoardValue m_environmentTemperature; + double m_vacuumDefault; + bool m_calDiode; + IRA::ReceiverControl::FetValues m_fetValues; + DWORD m_statusWord; + // m_ioMarkError is a flag used to know if we already got an IO + // error. See mantis issue n.0000236 + bool m_ioMarkError; + Management::TSystemStatus m_componentStatus; + + void setComponentStatus(const Management::TSystemStatus& status) { if (status>m_componentStatus) m_componentStatus=status; } + + /** + * This function will set the a status bit. It may be considered thread safe due to its definition + */ + inline void setStatusBit(TStatusBit bit) { m_statusWord |= 1 << bit; } + + /** + * This function will unset (clear) a status bit. It may be considered thread safe due to its definition + */ + inline void clearStatusBit(TStatusBit bit) { m_statusWord &= ~(1 << bit); } + + /** + * This function check is a bit is set or not. It may be considered thread safe due to its definition + */ + inline bool checkStatusBit(TStatusBit bit) { return m_statusWord & (1 << bit); } + + double linearFit(double *X,double *Y,const WORD& size,double x) noexcept; + /************************ CONVERSION FUNCTIONS **************************/ + // Convert the voltage value of the vacuum to mbar + static double voltage2mbar(double voltage) { return(pow(10, 1.5 * voltage - 12)); } + // Convert the voltage value of the temperatures to Kelvin + static double voltage2Kelvin(double voltage) { + return voltage < 1.12 ? (660.549422889947 * pow(voltage, 6)) - (2552.334255456860 * pow(voltage, 5)) + (3742.529989384570 * pow(voltage, 4)) + - (2672.656926956470 * pow(voltage, 3)) + (947.905578508975 * pow(voltage, 2)) - 558.351002849576 * voltage + 519.607622398508 : + (865.747519105672 * pow(voltage, 6)) - (7271.931957100480 * pow(voltage, 5)) + (24930.666241800500 * pow(voltage, 4)) + - (44623.988512320400 * pow(voltage, 3)) + (43962.922216886600 * pow(voltage, 2)) - 22642.245121997700 * voltage + 4808.631312836750; + } + // Convert the voltage value of the temperatures to Celsius (Sensor B57703-10K) + static double voltage2Celsius(double voltage) + { return -5.9931 * pow(voltage, 5) + 40.392 * pow(voltage, 4) - 115.41 * pow(voltage, 3) + 174.67 * pow(voltage, 2) - 174.23 * voltage + 112.79; } + // Convert the ID voltage value to the mA value + static double currentConverter(double voltage) { return(10 * voltage); } + // Convert the VD and VG voltage values using a right scale factor + static double voltageConverter(double voltage) { return(voltage); } +}; + + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/Configuration.h b/SRT/Servers/SRT5GHzReceiver/include/Configuration.h new file mode 100644 index 000000000..64816cdbf --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/Configuration.h @@ -0,0 +1,272 @@ +#ifndef CCONFIGURATION_H +#define CCONFIGURATION_H + +/* **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <IRA> +#include <maciContainerServices.h> +#include <ComponentErrors.h> +#include <ReceiversDefinitionsC.h> + + +// Dummy value for a board connection error +#define CEDUMMY 100000 + + +/** + * This class implements the component configuration. The data inside this class are initialized at the startup from the + * configuration database and then are used (read) inside the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, INAF + * <br> + */ +class CConfiguration { +public: + + typedef struct { + double skyFrequency; + double markValue; + Receivers::TPolarization polarization; + } TMarkValue; + + typedef struct { + double frequency; + double outputPower; + } TLOValue; + + typedef struct { + double frequency; + double taper; + } TTaperValue; + + typedef struct { + WORD code; + double xOffset; + double yOffset; + double relativePower; + } TFeedValue; + + typedef struct { + double temperature; + ACS::Time timestamp; + } BoardValue; + + + /** + * Default constructor + */ + CConfiguration(); + + /** + * Destructor + */ + ~CConfiguration(); + + /** + * @return the IP address of the board that controls the dewar + */ + inline const IRA::CString& getDewarIPAddress() const { return m_dewarIPAddress; } + + /** + * @return the IP port of the board that controls the dewar + */ + inline const WORD& getDewarPort() const { return m_dewarPort; } + + /** + * @return the IP address of the board that controls the receiver LNA + */ + inline const IRA::CString& getLNAIPAddress() const { return m_LNAIPAddress; } + + /** + * @return the IP port of the board that controls the receiver LNA + */ + inline const WORD& getLNAPort() const { return m_LNAPort; } + + /** + * @return the time allowed to the watch dog thread to complete an iteration and respond to the thread manager (microseconds) + */ + inline const DDWORD& getWarchDogResponseTime() const { return m_watchDogResponseTime; } + + /** + * @return the time between two execution of the watch dog thread (microseconds) + */ + inline const DDWORD& getWatchDogSleepTime() const { return m_watchDogSleepTime; } + + /** + * @return the time required by the board to sample the values of LNA (microseconds) + */ + inline const DDWORD& getLNASamplingTime() const { return m_LNASamplingTime; } + + /** + * @return the time the repetition log guard will cache new log messages before sending to the central logger (microseconds) + */ + inline const DDWORD& getRepetitionCacheTime() const { return m_repetitionCacheTime; } + + /** + * @return the time of expiration of a log sent to the repetition log guard (microseconds) + */ + inline const DDWORD& getRepetitionExpireTime() const { return m_repetitionExpireTime; } + + /** + * @return the instance of the local oscillator component that the receiver will use to drive the set its LO + */ + inline const IRA::CString& getLocalOscillatorInstance() const { return m_localOscillatorInstance; } + + /** + * Allows to get the table of mark values relative to left polarization + * @param freq vector containing the frequency value of the mark table. It must be freed by caller. + * @param markValue vector of the value of the calibration diode. It must be freed by caller. + * @param len used to return the length of the mark values array + * @return the size of the output vectors + */ + DWORD getLeftMarkTable(double *& freq,double *& markValuel) const; + + /** + * Allows to get the table of mark values relative to left polarization + * @param freq vector containing the frequency value of the mark table. It must be freed by caller. + * @param markValue vector of the value of the calibration diode. It must be freed by caller. + * @param len used to return the length of the mark values array + * @return the size of the output vectors + */ + DWORD getRightMarkTable(double *& freq,double *& markValue) const; + + /** + * @param freq vector with the synthesizer frequencies. It must be freed by caller. + * @param power corresponding powers for the frequencies vector. It must be freed by caller. + * @return the size of the output vectors + */ + DWORD getSynthesizerTable(double *& freq,double *& power) const; + + /** + * @param freq vector with the frequencies. It must be freed by caller. + * @param taper corresponding taper for the frequencies vector. It must be freed by caller. + * @return the size of the output vectors + */ + DWORD getTaperTable(double * &freq,double *&taper) const; + + /** + * @param code feed identification codes. It must be freed by caller. + * @param xOffset displacement of the feed with respect to the central one along x axis. It must be freed by caller. + *@param yOffset displacement of the feed with respect to the central one along y axis. It must be freed by caller. + *@param relativePower expected percentage of variation of gain with respect to the central one. It must be freed by caller. + * @return the size of the output vectors + */ + DWORD getFeedInfo(WORD *& code,double *& xOffset,double *& yOffset,double *& relativePower) const; + + /** + * @return mnemonic of the working mode of the receiver + */ + inline const IRA::CString& getSetupMode() const { return m_mode; } + + /** + * @return the lower limit of the RF coming from the receiver (MHz) + */ + inline double const * const getRFMin() const { return m_RFMin; } + + /** + * @return the upper limit of the RF coming from the receiver (MHz) + */ + inline double const * const getRFMax() const { return m_RFMax; } + + /** + * @return the start frequency of the IF coming from the receiver (MHz) + */ + inline double const * const getIFMin() const { return m_IFMin; } + + /** + * @return the bandwidth of the IF coming from the receiver (MHz) + */ + inline double const * const getIFBandwidth() const{ return m_IFBandwidth; } + + /** + * @return the number of IF chains for each feed + */ + inline const DWORD& getIFs() const { return m_IFs; } + + /** + * @return the pointer to the polarizations array, the first element correspond to the first IF and so on..... + */ + inline Receivers::TPolarization const * const getPolarizations() const { return m_polarizations; } + + /** + * @return the number of feeds + */ + inline const DWORD& getFeeds() const { return m_feeds; } + + /** + * @return the default frequency for the synthesizer (MHz) + */ + inline double const * const getDefaultLO() const { return m_defaultLO; } + + /** + * @return the value of the fixed synthesizer used for the second conversion (MHz) + */ + inline double const * const getFixedLO2() const { return m_fixedLO2; } + + /** + * @return lower limit for the synthesizer tuning (MHz) + */ + inline double const * const getLOMin() const { return m_LOMin; } + + /** + * @return upper limit for the synthesizer tuning (MHz) + */ + inline double const * const getLOMax() const { return m_LOMax; } + + /** + * This member function is used to configure component by reading the configuration parameter from the CDB. + * This must be the first call before using any other function of this class. + * @throw ComponentErrors::CDBAccess. ComponentErrors::MemoryAllocationExImpl + * @param Services pointer to the container services object + */ + //throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl); + void init(maci::ContainerServices *Services); + +private: + IRA::CString m_dewarIPAddress; + WORD m_dewarPort; + IRA::CString m_LNAIPAddress; + WORD m_LNAPort; + DDWORD m_watchDogResponseTime; + DDWORD m_watchDogSleepTime; + DDWORD m_LNASamplingTime; + DDWORD m_repetitionCacheTime; + DDWORD m_repetitionExpireTime; + IRA::CString m_localOscillatorInstance; + + IRA::CString m_mode; + double *m_RFMin; + double *m_RFMax; + double *m_IFMin; + double *m_IFBandwidth; + DWORD m_IFs; + Receivers::TPolarization *m_polarizations; + DWORD m_feeds; + double *m_defaultLO; + double *m_fixedLO2; + double *m_LOMin; + double *m_LOMax; + + IRA::CDBTable *m_markTable; + IRA::CDBTable *m_loTable; + IRA::CDBTable *m_taperTable; + IRA::CDBTable *m_feedsTable; + + TMarkValue *m_markVector; + DWORD m_markVectorLen; + TLOValue * m_loVector; + DWORD m_loVectorLen; + TTaperValue * m_taperVector; + DWORD m_taperVectorLen; + TFeedValue * m_feedVector; // length given by m_feeds +}; + + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOBandWidth.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOBandWidth.h new file mode 100644 index 000000000..d3b41a089 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOBandWidth.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOBANDWIDTH_H_ +#define _DEVIOBANDWIDTH_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the bandWidth property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOBandWidth : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOBandWidth(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOBandWidth::DevIOBandWidth()"); + } + + /** + * Destructor + */ + ~DevIOBandWidth() + { + ACS_TRACE("DevIOBandWidth::~DevIOBandWidth()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOBandWidth::DevIOBandWidth()"); + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + ACS::doubleSeq read(ACS::Time& timestamp) + { + m_pCore->getBandwidth(m_val); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + ACS::doubleSeq m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOComponentStatus.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOComponentStatus.h new file mode 100644 index 000000000..4f9af74ff --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOComponentStatus.h @@ -0,0 +1,61 @@ +#ifndef _DEVIOCOMPONENTSTATUS_H_ +#define _DEVIOCOMPONENTSTATUS_H_ + +/* ************************************************************************************************************* */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + +#include <baciDevIO.h> +#include <IRA> + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the componentStatus property + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOComponentStatus: public virtual DevIO<Management::TSystemStatus> +{ + +public: + + DevIOComponentStatus(CComponentCore* core): m_pCore(core) { + AUTO_TRACE("DevIOComponentStatus::DevIOComponentStatus()"); + } + + ~DevIOComponentStatus() { + AUTO_TRACE("DevIOComponentStatus::~DevIOComponentStatus()"); + } + + bool initializeValue(){ + return false; + } + + /* + * @throw ACSErr::ACSbaseExImpl + */ + Management::TSystemStatus read(ACS::Time& timestamp) { + m_val=m_pCore->getComponentStatus(); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + + /* + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Long& value, ACS::Time& timestamp) { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + Management::TSystemStatus m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHead.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHead.h new file mode 100644 index 000000000..d4467e77c --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHead.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOCRYOCOOLHEAD_H_ +#define _DEVIOCRYOCOOLHEAD_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the cryoTemparatureCoolHead property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOCryoTemperatureCoolHead : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOCryoTemperatureCoolHead(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOCryoTemperatureCoolHead::DevIOCryoTemperatureCoolHead()"); + } + + /** + * Destructor + */ + ~DevIOCryoTemperatureCoolHead() + { + ACS_TRACE("DevIOCryoTemperatureCoolHead::~DevIOCryoTemperatureCoolHead()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOCryoTemperatureCoolHead::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + CConfiguration::BoardValue result = m_pCore->getCryoCoolHead(); + m_val = result.temperature; + timestamp = result.timestamp; + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHeadWindow.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHeadWindow.h new file mode 100644 index 000000000..2d6dffbe9 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureCoolHeadWindow.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOCRYOCOOLHEADWIN_H_ +#define _DEVIOCRYOCOOLHEADWIN_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the cryoTemparatureCoolHeadWindow property of the component. + * @author <a href=mailto:a.orlati@ira.inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOCryoTemperatureCoolHeadWin : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOCryoTemperatureCoolHeadWin(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOCryoTemperatureCoolHeadWin::DevIOCryoTemperatureCoolHeadWin()"); + } + + /** + * Destructor + */ + ~DevIOCryoTemperatureCoolHeadWin() + { + ACS_TRACE("DevIOCryoTemperatureCoolHeadWin::~DevIOCryoTemperatureCoolHeadWin()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOCryoTemperatureCoolHeadWin::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + CConfiguration::BoardValue result = m_pCore->getCryoCoolHeadWin(); + m_val = result.temperature; + timestamp = result.timestamp; + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNA.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNA.h new file mode 100644 index 000000000..0d4b89464 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNA.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOCRYOLNA_H_ +#define _DEVIOCRYOLNA_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the cryoTemparatureLNA property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOCryoTemperatureLNA : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOCryoTemperatureLNA(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOCryoTemperatureLNA::DevIOCryoTemperatureLNA()"); + } + + /** + * Destructor + */ + ~DevIOCryoTemperatureLNA() + { + ACS_TRACE("DevIOCryoTemperatureLNA::~DevIOCryoTemperatureLNA()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOCryoTemperatureLNA::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + CConfiguration::BoardValue result = m_pCore->getCryoLNA(); + m_val = result.temperature; + timestamp = result.timestamp; + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNAWindow.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNAWindow.h new file mode 100644 index 000000000..c892a5e13 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOCryoTemperatureLNAWindow.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOCRYOLNAWIN_H_ +#define _DEVIOCRYOLNAWIN_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the cryoTemparatureLNAWindow property of the component. + * @author <a href=mailto:a.orlati@ira.inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOCryoTemperatureLNAWin : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOCryoTemperatureLNAWin(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOCryoTemperatureLNAWin::DevIOCryoTemperatureLNAWin()"); + } + + /** + * Destructor + */ + ~DevIOCryoTemperatureLNAWin() + { + ACS_TRACE("DevIOCryoTemperatureLNAWin::~DevIOCryoTemperatureLNAWin()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOCryoTemperatureLNAWin::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + CConfiguration::BoardValue result = m_pCore->getCryoLNAWin(); + m_val = result.temperature; + timestamp = result.timestamp; + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOEnvTemperature.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOEnvTemperature.h new file mode 100644 index 000000000..8566c3c07 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOEnvTemperature.h @@ -0,0 +1,78 @@ +#ifndef _DEVIOENVTEMPERATURE_H_ +#define _DEVIOENVTEMPERATURE_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the environmentTemperature property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOEnvTemperature: public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOEnvTemperature(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOEnvTemperature::DevIOEnvTemperature()"); + } + + /** + * Destructor + */ + ~DevIOEnvTemperature() + { + ACS_TRACE("DevIOEnvTemperature::~DevIOEnvTemperature()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOEnvTemperature::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + CConfiguration::BoardValue result = m_pCore->getEnvironmentTemperature(); + m_val = result.temperature; + timestamp = result.timestamp; + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOInitialFrequency.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOInitialFrequency.h new file mode 100644 index 000000000..685657b66 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOInitialFrequency.h @@ -0,0 +1,77 @@ +#ifndef _DEVIOINITIALFREQUENCY_H_ +#define _DEVIOINITIALFREQUENCY_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the initialFrequency property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOInitialFrequency : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOInitialFrequency(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOInitialFrequency::DevIOInitialFrequency()"); + } + + /** + * Destructor + */ + ~DevIOInitialFrequency() + { + ACS_TRACE("DevIOInitialFrequency::~DevIOInitialFrequency()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOInitialFrequency::DevIOInitialFrequency()"); + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + ACS::doubleSeq read(ACS::Time& timestamp) + { + m_pCore->getStartFrequency(m_val); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + ACS::doubleSeq m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOLNAControls.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOLNAControls.h new file mode 100644 index 000000000..f575aa56d --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOLNAControls.h @@ -0,0 +1,80 @@ +#ifndef _DEVIOLNACONTROLS_H_ +#define _DEVIOLNACONTROLS_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> +#include <ReceiverControl.h> + +/** + * This class is derived from template DevIO and it is used by the LNA controls properties of the component: Vd_1, Id_2 and so on..... + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOLNAControls : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOLNAControls(CComponentCore* core,const IRA::ReceiverControl::FetValue& control,const DWORD& ifs) : m_pCore(core), m_control(control), m_ifs(ifs) + { + AUTO_TRACE("DevIOLNAControls::DevIOLNAControls()"); + } + + /** + * Destructor + */ + ~DevIOLNAControls() + { + ACS_TRACE("DevIOLNAControls::~DevIOLNAControls()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOLNAControls::initializeValue()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + m_val=m_pCore->getFetValue(m_control,m_ifs); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; + IRA::ReceiverControl::FetValue m_control; + DWORD m_ifs; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOLocalOscillator.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOLocalOscillator.h new file mode 100644 index 000000000..25246f3cd --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOLocalOscillator.h @@ -0,0 +1,77 @@ +#ifndef _DEVIOLOCALOSCILLATOR_H_ +#define _DEVIOLOCALOSCILLATOR_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the LO property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOLocalOscillator : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOLocalOscillator(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOLocalOscillator::DevIOLocalOscillator()"); + } + + /** + * Destructor + */ + ~DevIOLocalOscillator() + { + ACS_TRACE("DevIOLocalOscillator::~DevIOLocalOscillator()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOLocalOscillator::DevIOLocalOscillator()"); + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + ACS::doubleSeq read(ACS::Time& timestamp) + { + m_pCore->getLO(m_val); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + ACS::doubleSeq m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOMode.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOMode.h new file mode 100644 index 000000000..95dfefdf1 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOMode.h @@ -0,0 +1,59 @@ +#ifndef _DEVIOMODE_H_ +#define _DEVIOMODE_H_ + +/** ************************************************************************************************************* */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + +#include <baciDevIO.h> +#include <IRA> + +using namespace baci; + +/** + * This class is derived from the template DevIO. It is used by the by the mode property. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> + */ +class DevIOMode: public virtual DevIO<ACE_CString> +{ +public: + + DevIOMode(CComponentCore* core): m_core(core) { + AUTO_TRACE("DevIOMode::DevIOMode()"); + } + + ~DevIOMode() { + AUTO_TRACE("DevIOMode::~DevIOMode()"); + } + + bool initializeValue(){ + return false; + } + + /* + * @throw ACSErr::ACSbaseExImpl + */ + ACE_CString read(ACS::Time& timestamp) { + AUTO_TRACE("DevIOMode::read()"); + timestamp=getTimeStamp(); + return (const char *)m_core->getSetupMode(); + } + + /* + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACE_CString& value, ACS::Time& timestamp) { + AUTO_TRACE("DevIOMode::write()"); + } + +private: + CComponentCore *m_core; +}; + + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOPolarization.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOPolarization.h new file mode 100644 index 000000000..0a8fd730c --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOPolarization.h @@ -0,0 +1,77 @@ +#ifndef _DEVIOPOLARIZATION_H_ +#define _DEVIOPOLARIZATION_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + +#include <baciDevIO.h> +#include <IRA> + + +/** + * This class is derived from template DevIO and it is used by the polarization property of the receiverBoss component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOPolarization : public DevIO<ACS::longSeq> +{ +public: + + /** + * Constructor + * @param core pointer to the boss core + */ + DevIOPolarization(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOPolarization::DevIOPolarization()"); + } + + /** + * Destructor + */ + ~DevIOPolarization() + { + ACS_TRACE("DevIOPolarization::~DevIOPolarization()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOLO::DevIOPolarization()"); + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + ACS::longSeq read(ACS::Time& timestamp) + { + m_pCore->getPolarization(m_val); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACS::longSeq& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + ACS::longSeq m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOStatus.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOStatus.h new file mode 100644 index 000000000..799971aaa --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOStatus.h @@ -0,0 +1,80 @@ +#ifndef _DEVIOSTATUS_H_ +#define _DEVIOSTATUS_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the status property + * @author <a href=mailto:a.orlati@ira.inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOStatus : public DevIO<ACS::pattern> +{ +public: + + /** + * Constructor + * @param core pointer to the component core + */ + DevIOStatus(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOStatus::DevIOStatus()"); + } + + /** + * Destructor + */ + ~DevIOStatus() + { + ACS_TRACE("DevIOStatus::~DevIOStatus()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOStatus::DevIOStatus()"); + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + ACS::pattern read(ACS::Time& timestamp) + { + m_val=m_pCore->getStatusWord(); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const ACS::pattern& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + ACS::pattern m_val; +}; + + +#endif /*_DEVIOSTATUS_H_*/ diff --git a/SRT/Servers/SRT5GHzReceiver/include/DevIOVacuum.h b/SRT/Servers/SRT5GHzReceiver/include/DevIOVacuum.h new file mode 100644 index 000000000..4a92aa2cc --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/DevIOVacuum.h @@ -0,0 +1,77 @@ +#ifndef _DEVIOVACUUM_H_ +#define _DEVIOVACUUM_H_ + +/** **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + +#include <baciDevIO.h> +#include <IRA> + +/** + * This class is derived from template DevIO and it is used by the vacuum property of the component. + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia<br> +*/ +class DevIOVacuum : public DevIO<CORBA::Double> +{ +public: + + /** + * Constructor + * @param core pointer to the component core + */ + DevIOVacuum(CComponentCore* core) : m_pCore(core) + { + AUTO_TRACE("DevIOVacuum::DevIOVacuum()"); + } + + /** + * Destructor + */ + ~DevIOVacuum() + { + ACS_TRACE("DevIOVacuum::~DevIOVacuum()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOVacuum::DevIOVacuum()"); + return true; // initialize with the default in order to avoid the alarm system when the component start and the value has not been read at least once + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + * @throw ACSErr::ACSbaseExImpl + */ + CORBA::Double read(ACS::Time& timestamp) + { + m_val=m_pCore->getVacuum(); + timestamp=getTimeStamp(); //Completion time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + * @throw ACSErr::ACSbaseExImpl + */ + void write(const CORBA::Double& value, ACS::Time& timestamp) + { + timestamp=getTimeStamp(); + return; + } + +private: + CComponentCore* m_pCore; + double m_val; +}; + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/include/MonitorThread.h b/SRT/Servers/SRT5GHzReceiver/include/MonitorThread.h new file mode 100644 index 000000000..f34d592d5 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/MonitorThread.h @@ -0,0 +1,87 @@ +#ifndef _MONITORTHREAD_H_ +#define _MONITORTHREAD_H_ + +/* ************************************************************************************************************* */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + +#include <Cplusplus11Helper.h> + +#define _CPLUSPLUS11_PORTING_ + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +#include <acsThread.h> +C11_IGNORE_WARNING_POP + +#include <ComponentCore.h> + +/** + * This class implements a component monitoring thread . This thread is in charge of update all the attributes of the component in order to make sure the receiver is correctly working. +*/ +class CMonitorThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + CMonitorThread(const ACE_CString& name,CComponentCore *param, + const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime,const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~CMonitorThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. The method is executed in a loop until the thread is alive. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * This method allows to inform the watch dog on how long the LNA sampling time takes. + */ + void setLNASamplingTime(const DDWORD& time); +private: + enum TStage { + VACUUM, + STATUS, + LNA, + CTEMPCOOLHEAD, + CTEMPCOOLHEADW, + CTEMPLNA, + CTEMPLNAW, + REMOTE, + COOLHEAD, + VACUUMPUMP, + VACUUMVALVE, + NOISEMARK, + UNLOCKED, + ENVTEMP + }; + CComponentCore *m_core; + ACS::TimeInterval m_currentResponseTime; + ACS::TimeInterval m_currentSampling; + TStage m_currentStage; +}; + +#endif + diff --git a/SRT/Servers/SRT5GHzReceiver/include/SRT5GHzImpl.h b/SRT/Servers/SRT5GHzReceiver/include/SRT5GHzImpl.h new file mode 100644 index 000000000..ca76379c4 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/include/SRT5GHzImpl.h @@ -0,0 +1,493 @@ +#ifndef __SRT5GHZIMPL_H_ +#define __SRT5GHZIMPL_H_ + +/* ************************************************************************************************************* */ +/* IRA Istituto di Radioastronomia */ +/* */ +/* This code is under GNU General Public License (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(andrea.orlati@inaf.it) 10/08/2023 Creation */ + + + +#ifndef __cplusplus +#error This is a C++ include file and cannot be used from plain C +#else +#define STRING2(X) #X +#define STRING(X) STRING2(X) +#pragma message ("C++ version is " STRING(__cplusplus)) +#endif + +#include <Cplusplus11Helper.h> + +#define _CPLUSPLUS11_PORTING_ + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") +#include <baciCharacteristicComponentImpl.h> +C11_IGNORE_WARNING_POP + +#include <baciSmartPropertyPointer.h> +#include <baciROdoubleSeq.h> +#include <baciROlongSeq.h> +#include <baciROstring.h> +#include <baciROlong.h> +#include <baciROdouble.h> + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wsequence-point") +#include <enumpropROImpl.h> +C11_IGNORE_WARNING_POP + +//C11_IGNORE_WARNING_PUSH +//C11_IGNORE_WARNING("-Wdeprecated-declarations") +#include <SP_parser.h> +//C11_IGNORE_WARNING_POP +#include <IRA> +#include <SRT5GHzS.h> +#include <ComponentErrors.h> +#include <ReceiversErrors.h> +#include "ComponentCore.h" +#include "MonitorThread.h" + +#undef _CPLUSPLUS11_PORTING_ + + +/** + * @mainpage 5GHz receiver component Implementation + * @date 10/08/2023 + * @version 1.0.0 + * @author <a href=mailto:andrea.orlati@inaf.it>Andrea Orlati</a> + * @remarks the case there are connection problems with the control boards it is not very satisfactory and should be reviewed + * even if this implies a review as the receiverControl library is designed.. + * At the moment the component does not react when a connection error is detected it just takes note of the event + * (changing the status word). The component should be allowed to close the connection, delete the object and recreate it, + * but at the moment a lock is taken inside the library and the component has no way to check is there sone one using + * the library at the moment, so a delete could lead to a segmentation-fault. The fact a ReceiverControl is protected + * by a inner lock instead of the component mutex is due to the fact that some operation of the library + * could take much time and this could have caused critical delays on the component. + * +*/ + +/** + * @author <a href=mailto:andrea.orlati@inaf.it>Orlati Andrea</a> + * Istituto di Radioastronomia, Italia + * <br> + */ +class SRT5GHzImpl: public baci::CharacteristicComponentImpl, + public virtual POA_Receivers::SRT5GHz +{ +public: + + /** + * Constructor. + * @param CompName component's name. This is also the name that will be used to find the configuration data for the component in the Configuration Database. + * @param containerServices pointer to the class that exposes all services offered by container + */ + SRT5GHzImpl(const ACE_CString &CompName,maci::ContainerServices *containerServices); + + /** + * Destructor. + */ + virtual ~SRT5GHzImpl(); + + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters or + * builds up connection to devices or other components. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ACSErr::ACSbaseExImpl + */ + virtual void initialize(); + + /** + * Called after <i>initialize()</i> to tell the component that it has to be ready to accept incoming + * functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only + * logs the COMPSTATE_OPERATIONAL + * @throw ACSErr::ACSbaseExImpl + */ + virtual void execute(); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of + * releasing all resources. + */ + virtual void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. This function tries to free all resources + * even though there is no warranty that the function is completely executed before the component is destroyed. + */ + virtual void aboutToAbort(); + + /** + * It must be called to switch the receiver to operative mode. when called the default configuration and mode is loaded. Regarding this + * implementation calling this method corresponds to a call to <i>setMode("NORMAL")</i>. + * @param setup_mode the setup mode (KKG, CCB, LLP, PLP, ecc.) + * @throw CORBA::SystemExcpetion + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void activate(const char * setup_mode); + + /** + * It must be called to switch off the receiver. + * @throw CORBA::SystemExcpetion + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void deactivate(); + + /** + * This method is used to turn the calibration diode on. + * @throw CORBA::SystemExcpetion + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void calOn(); + + /** + * This method is used to turn the calibration diode off. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void calOff(); + + + /** + * This method is used to turn the external calibration diode on. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void externalCalOn(); + + /** + * This method is used to turn the external calibration diode off. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void externalCalOff(); + + /** + * This method allows to set local oscillator. In this implementation only the first value is considered. + * @param lo the list contains the values in MHz for the local oscillator + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void setLO(const ACS::doubleSeq& lo); + + /** + * This method allows to set the operating mode of the receiver. In that implementation the receiver does not have special modes so a call to this method + * will lead to Configuration exception. + * @param mode string identifier of the operating mode + * @throw CORBA::SystemException + * @throw ReceiversErrors::ReceiversErrorsEx + * @throw ComponentErrors::ComponentErrorsEx + */ + void setMode(const char * mode); + + /** + * This method is called when the values of the calibration mark of the receiver are required. A value is returned for every provided sub bands. + * The sub bands are defined by giving the feed number, the polarization, the initial frequency and the bandwidth. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + * @param freqs for each sub band this is the list of the starting frequencies (in MHz). The value is compared and adjusted to the the real + * initial frequency of the receiver. + * @param bandwidths for each sub band this is the width in MHz. The value is compared and adjusted to the the real + * band width of the receiver. + * @param feeds for each sub band this if the feed number. In that case zero is the only allowed value. + * @param ifs for each sub band this indicates the proper IF + * @param skyFreq for each sub band it returns the real observed frequency(MHz), included detector, receiver IF and Local Oscillator. + * @param skyBw for each sub band it returns the real observed bandwidth(MHz), included detector bandwidth , receiver IF bandwidth + * @param onoff true if the calibration diode is turned on. + * @param scaleFactor this is a value to be applied as scale factor during system temperature computation + * @return the list of the noise calibration value in Kelvin degrees. + */ + virtual ACS::doubleSeq * getCalibrationMark(const ACS::doubleSeq& freqs, const ACS::doubleSeq& bandwidths, const ACS::longSeq& feeds, const ACS::longSeq& ifs, + ACS::doubleSeq_out skyFreq,ACS::doubleSeq_out skyBw,CORBA::Boolean_out onoff,CORBA::Double_out scaleFactor); + + /** + * This method is called in order to know the geometry of the receiver. The geometry is given along the X and Y axis where the central feed is the origin + * the axis. The relative power (normalized to one) with respect to the central feed is also given. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + * @param X the positions relative to the central beam of the feeds along the X axis (radians) + * @param Y the positions relative to the central beam of the feeds along the Y axis (radians) + * @param power the relative power of the feeds + * @return the number of feeds + */ + virtual CORBA::Long getFeeds(ACS::doubleSeq_out X,ACS::doubleSeq_out Y,ACS::doubleSeq_out power); + + + /** + * It is called to get the all the receiver output information in one call. + * An output is identified by providing the feed and the IF identifier. It can process any number of requests at a time. + * @param feeds is a list that stores the corresponding feed of the output we are asking for + * @param ifs is a list that identifies which IFs of the feed we are interested in, usually 0..<i>IFs</i>-1 + * @param freq used to return the start frequency of the band provided by the output the oscillator + * (if present) is not added (MHz) + * @param bw used to return the total provided bandwidth. (MHz) + * @param pols it specifies the polarization of the receiver output, since ACS does not support for enum + * sequences the correct value must be matched against the <i>Receivers::TPolarization</i> enumeration. + * @param LO it gives (if present) the value of the local oscillator (MHz). + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + * @throw CORBA::SystemException + */ + virtual void getIFOutput( + const ACS::longSeq& feeds, + const ACS::longSeq& ifs, + ACS::doubleSeq_out freqs, + ACS::doubleSeq_out bw, + ACS::longSeq_out pols, + ACS::doubleSeq_out LO + ); + + /** + * This method is called in order to know the taper of the receiver. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + * @param freq starting frequency of the detector in MHz. The value is compared and adjusted to the the real initial frequency of the receiver. + * @param bandWidth bandwidth of the detector n MHz. The value is compared and adjusted to the the real band width of the receiver. + * @param feed feed id the detector is attached to + * @param ifNumber Number of the IF, given the feed + * @param waveLen corresponding wave length in meters + * @return the value of the taper in db + */ + virtual CORBA::Double getTaper(CORBA::Double freq,CORBA::Double bandWidth,CORBA::Long feed,CORBA::Long ifNumber,CORBA::Double_out waveLen) ; + + /** + * This method is called in order to turn the LNA On. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnLNAsOn(); + + /** + * This method is called in order to turn the LNA Off. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnLNAsOff(); + + /** + * it turns the vacuum sensor on + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnVacuumSensorOn(); + + /** + * it turns the vacuum sensor on + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnVacuumSensorOff(); + + /** + * It allows to turn the antenna unit on + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnAntennaUnitOn(); + + /** + * It allows to turn the antenna unit off + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + virtual void turnAntennaUnitOff(); + + /** + * Returns a reference to the mode property implementation of the IDL interface. + * @return pointer to read-only string property + * @throw CORBA::SystemException + */ + virtual ACS::ROstring_ptr mode(); + + /** + * Returns a reference to the LO property implementation of the IDL interface. + * @return pointer to read-only double sequence property + * @throw CORBA::SystemException + */ + virtual ACS::ROdoubleSeq_ptr LO(); + + /** + * Returns a reference to the feeds property implementation of the IDL interface. + * @return pointer to read-only long property + * @throw CORBA::SystemException + */ + virtual ACS::ROlong_ptr feeds(); + + /** + * Returns a reference to the IFs property implementation of the IDL interface. + * @return pointer to read-only long property + * @throw CORBA::SystemException + */ + virtual ACS::ROlong_ptr IFs(); + + /** + * Returns a reference to the initialFrequency property implementation of the IDL interface. + * @return pointer to read-only doubleSeq property + * @throw CORBA::SystemException + */ + virtual ACS::ROdoubleSeq_ptr initialFrequency(); + + /** + * Returns a reference to the bandWidth property implementation of the IDL interface. + * @return pointer to read-only doubleSeq property + * @throw CORBA::SystemException + */ + virtual ACS::ROdoubleSeq_ptr bandWidth(); + + /** + * Returns a reference to the polarization property implementation of the IDL interface. + * @return pointer to read-only long sequence property + * @throw CORBA::SystemException + */ + virtual ACS::ROlongSeq_ptr polarization(); + + /** + * Returns a reference to the status property Implementation of IDL interface. + * @return pointer to read-only pattern property + * @throw CORBA::SystemException + */ + virtual ACS::ROpattern_ptr status(); + + /** + * Returns a reference to the vacuum property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr vacuum(); + + /** + * Returns a reference to the Vd_1 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Vd_1(); + + /** + * Returns a reference to the Vd_2 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Vd_2(); + + /** + * Returns a reference to the Id_1 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Id_1(); + + /** + * Returns a reference to the Id_2 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Id_2(); + + /** + * Returns a reference to the Vg_1 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Vg_1(); + + /** + * Returns a reference to the Vg_2 property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr Vg_2(); + + /** + * Returns a reference to the cryoTemperatureCoolHead property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr cryoTemperatureCoolHead(); + + /** + * Returns a reference to the cryoTemperatureCoolHeadWindow property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr cryoTemperatureCoolHeadWindow(); + + /** + * Returns a reference to the cryoTemperatureLNA property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr cryoTemperatureLNA(); + + /** + * Returns a reference to the cryoTemperatureLNAWindow property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr cryoTemperatureLNAWindow(); + + /** + * Returns a reference to the environmentTemperature property implementation of the IDL interface. + * @return pointer to read-only double property + * @throw CORBA::SystemException + */ + virtual ACS::ROdouble_ptr environmentTemperature(); + + /** + * Returns a reference to the status property Implementation of IDL interface. + * @return pointer to read-only ROTSystemStatus property status + * @throw CORBA::SystemException + */ + virtual Management::ROTSystemStatus_ptr receiverStatus(); + +private: + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_plocalOscillator; + baci::SmartPropertyPointer<baci::ROlong> m_pfeeds; + baci::SmartPropertyPointer<baci::ROlong> m_pIFs; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_pinitialFrequency; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_pbandWidth; + baci::SmartPropertyPointer<baci::ROlongSeq> m_ppolarization; + baci::SmartPropertyPointer<baci::ROpattern> m_pstatus; + baci::SmartPropertyPointer<baci::ROdouble> m_pvacuum; + baci::SmartPropertyPointer<baci::ROdouble> m_pVd_1; + baci::SmartPropertyPointer<baci::ROdouble> m_pVd_2; + baci::SmartPropertyPointer<baci::ROdouble> m_pId_1; + baci::SmartPropertyPointer<baci::ROdouble> m_pId_2; + baci::SmartPropertyPointer<baci::ROdouble> m_pVg_1; + baci::SmartPropertyPointer<baci::ROdouble> m_pVg_2; + baci::SmartPropertyPointer<baci::ROdouble> m_pcryoTemperatureCoolHead; + baci::SmartPropertyPointer<baci::ROdouble> m_pcryoTemperatureCoolHeadWindow; + baci::SmartPropertyPointer<baci::ROdouble> m_pcryoTemperatureLNA; + baci::SmartPropertyPointer<baci::ROdouble> m_pcryoTemperatureLNAWindow; + baci::SmartPropertyPointer<baci::ROdouble> m_penvironmentTemperature; + baci::SmartPropertyPointer<baci::ROstring> m_pmode; + baci::SmartPropertyPointer < ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus> > m_preceiverStatus; + + CComponentCore m_core; + CMonitorThread *m_monitor; +}; + + + +#endif diff --git a/SRT/Servers/SRT5GHzReceiver/src/ComponentCore.cpp b/SRT/Servers/SRT5GHzReceiver/src/ComponentCore.cpp new file mode 100644 index 000000000..ab537c8ce --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/src/ComponentCore.cpp @@ -0,0 +1,1117 @@ +#include "ComponentCore.h" +#include <LogFilter.h> + +_IRA_LOGFILTER_IMPORT; + +// speed of light in meters per second +#define LIGHTSPEED 299792458.0 + +CComponentCore::CComponentCore() +{ + +} + +CComponentCore::~CComponentCore() +{ +} + +void CComponentCore::initialize(maci::ContainerServices* services) noexcept +{ + m_services=services; + m_control=NULL; + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + m_localOscillatorFault=false; + m_cryoCoolHead.temperature = 0.0; + m_cryoCoolHeadWin.temperature = 0.0; + m_cryoLNA.temperature = 0.0; + m_cryoLNAWin.temperature = 0.0; + m_environmentTemperature.temperature = 20.0; + m_vacuum=0.0; + m_calDiode=false; + m_fetValues.VDL=m_fetValues.IDL=m_fetValues.VGL=m_fetValues.VDR=m_fetValues.IDR=m_fetValues.VGR=0.0; + m_statusWord=0; + m_ioMarkError = false; +} +//throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl,ComponentErrors::SocketErrorExImpl) +CConfiguration const * const CComponentCore::execute() +{ + m_configuration.init(m_services); //throw (ComponentErrors::CDBAccessExImpl); + try { + m_control=new IRA::ReceiverControl( + (const char *)m_configuration.getDewarIPAddress(), + m_configuration.getDewarPort(), + (const char *)m_configuration.getLNAIPAddress(), + m_configuration.getLNAPort(), + m_configuration.getLNASamplingTime(), + m_configuration.getFeeds() + ); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CComponentCore::execute()"); + throw dummy; + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CComponentCore::execute()"); + throw dummy; + } + //members initialization + m_startFreq.length(m_configuration.getIFs()); + m_bandwidth.length(m_configuration.getIFs()); + m_polarization.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + m_startFreq[i]=m_configuration.getIFMin()[i]; + m_bandwidth[i]=m_configuration.getIFBandwidth()[i]; + m_polarization[i]=(long)m_configuration.getPolarizations()[i]; + m_localOscillatorValue=m_configuration.getDefaultLO()[i]; + } + m_setupMode=""; + return &m_configuration; +} + +void CComponentCore::cleanup() +{ + //make sure no one is using the object + baci::ThreadSyncGuard guard(&m_mutex); + if (m_control) { + m_control->closeConnection(); + delete m_control; + } +} + +void CComponentCore::getLO(ACS::doubleSeq& lo) +{ + baci::ThreadSyncGuard guard(&m_mutex); + lo.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + lo[i]=m_localOscillatorValue; + } +} + +void CComponentCore::getBandwidth(ACS::doubleSeq& bw) +{ + baci::ThreadSyncGuard guard(&m_mutex); + bw.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + bw[i]=m_bandwidth[i]; + } +} + +void CComponentCore::getStartFrequency(ACS::doubleSeq& sf) +{ + baci::ThreadSyncGuard guard(&m_mutex); + sf.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + sf[i]=m_startFreq[i]; + } +} + +void CComponentCore::getPolarization(ACS::longSeq& pol) +{ + baci::ThreadSyncGuard guard(&m_mutex); + pol.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + pol[i]=m_polarization[i]; + } +} + +const IRA::CString& CComponentCore::getSetupMode() +{ + baci::ThreadSyncGuard guard(&m_mutex); + return m_setupMode; +} + +const DWORD& CComponentCore::getIFs() +{ + baci::ThreadSyncGuard guard(&m_mutex); + return m_configuration.getIFs(); +} + +const Management::TSystemStatus& CComponentCore::getComponentStatus() +{ + baci::ThreadSyncGuard guard(&m_mutex); + return m_componentStatus; +} + +const DWORD& CComponentCore::getFeeds() +{ + baci::ThreadSyncGuard guard(&m_mutex); + return m_configuration.getFeeds(); +} + +//throw (ReceiversErrors::ModeErrorExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl, +// ComponentErrors::CouldntGetComponentExImpl,ComponentErrors::CORBAProblemExImpl,ReceiversErrors::LocalOscillatorErrorExImpl,ReceiversErrors::NoRemoteControlErrorExImpl, +// ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::activate() +{ + baci::ThreadSyncGuard guard(&m_mutex); + setMode((const char *)m_configuration.getSetupMode()); // Throw ...... + guard.release(); + lnaOn(); // throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) + externalCalOff(); + + bool answer; + try { + answer=m_control->isRemoteOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::activate()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if (answer) { + _IRA_LOGFILTER_LOG(LM_NOTICE, "CComponentCore::activate()", "RECEIVER_COMMUNICATION_MODE_REMOTE"); + clearStatusBit(LOCAL); + } + else { + _IRA_LOGFILTER_LOG(LM_NOTICE, "CComponentCore::activate()", "RECEIVER_COMMUNICATION_MODE_LOCAL"); + setStatusBit(LOCAL); + } +} + + +//throw (ReceiversErrors::NoRemoteControlErrorExImpl,ComponentErrors::ValidationErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::externalCalOn() +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::externalCalOn()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + guard.release(); + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::externalCalOn()"); + // throw impl; + // } + try { + m_control->setExtCalibrationOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::externalCalOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + try { + m_control->isExtCalibrationOn() ? setStatusBit(EXTNOISEMARK) : clearStatusBit(EXTNOISEMARK); + clearStatusBit(CONNECTIONERROR); // The communication was ok so clear the CONNECTIONERROR bit + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::externalCalOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + +} + +//throw (ReceiversErrors::NoRemoteControlErrorExImpl,ComponentErrors::ValidationErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::externalCalOff() +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::externalCalOff()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + guard.release(); + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::externalCalOff()"); + // throw impl; + // } + try { + m_control->setExtCalibrationOff(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::externalCalOff()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + try { + m_control->isExtCalibrationOn() ? setStatusBit(EXTNOISEMARK) : clearStatusBit(EXTNOISEMARK); + clearStatusBit(CONNECTIONERROR); // The communication was ok so clear the CONNECTIONERROR bit + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::externalCalOff()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } +} + +// throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::deactivate() +{ + // no guard needed. + lnaOff(); // throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +} + + +//throw (ReceiversErrors::ModeErrorExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl, +// ComponentErrors::CouldntGetComponentExImpl,ComponentErrors::CORBAProblemExImpl,ReceiversErrors::LocalOscillatorErrorExImpl) +void CComponentCore::setMode(const char * mode) + { + baci::ThreadSyncGuard guard(&m_mutex); + IRA::CString cmdMode(mode); + cmdMode.MakeUpper(); + if (cmdMode!=m_configuration.getSetupMode()) { // in this case i have just one allowed mode...so no need to do many checks and settings + _EXCPT(ReceiversErrors::ModeErrorExImpl,impl,"CComponentErrors::setMode()"); + throw impl; + } + // + for (WORD i=0;i<m_configuration.getIFs();i++) { + m_startFreq[i]=m_configuration.getIFMin()[i]; + m_bandwidth[i]=m_configuration.getIFBandwidth()[i]; + m_polarization[i]=(long)m_configuration.getPolarizations()[i]; + } + // the set the default LO for the default LO for the selected mode..... + ACS::doubleSeq lo; + lo.length(m_configuration.getIFs()); + for (WORD i=0;i<m_configuration.getIFs();i++) { + lo[i]=m_configuration.getDefaultLO()[i]; + } + setLO(lo); // throw (ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,ComponentErrors::CouldntGetComponentExImpl,ComponentErrors::CORBAProblemExImpl,ReceiversErrors::LocalOscillatorErrorExImpl) + m_setupMode=mode; + m_calDiode=false; + ACS_LOG(LM_FULL_INFO,"CComponentCore::setMode()",(LM_NOTICE,"RECEIVER_MODE %s",mode)); +} + +// throw (ReceiversErrors::NoRemoteControlErrorExImpl,ComponentErrors::ValidationErrorExImpl, +// ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::calOn() +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::calOn()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + // guard.release(); + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::calOn()"); + // throw impl; + // } + try { + m_control->setCalibrationOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::calOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + setStatusBit(NOISEMARK); + m_calDiode=true; + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +// throw (ReceiversErrors::NoRemoteControlErrorExImpl,ComponentErrors::ValidationErrorExImpl, +// ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::calOff() +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::calOff()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + // guard.release(); + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::calOff()"); + // throw impl; + // } + try { + m_control->setCalibrationOff(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::calOff()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(NOISEMARK); + m_calDiode=false; + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +// throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::vacuumSensorOff() +{ + if (checkStatusBit(LOCAL)) { + _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::vacuumSensorOff()"); + throw impl; + } + try { + m_control->setVacuumSensorOff(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::vacuumSensorOff()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +// throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::vacuumSensorOn() +{ + if (checkStatusBit(LOCAL)) { + _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::vacuumSensorOn()"); + throw impl; + } + try { + m_control->setVacuumSensorOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::vacuumSensorOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl +void CComponentCore::lnaOff() +{ + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::lnaOff()"); + // throw impl; + // } + try { + m_control-> turnRightLNAsOff(); + m_control-> turnLeftLNAsOff(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::lnaOff()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl +void CComponentCore::lnaOn() +{ + // if (checkStatusBit(LOCAL)) { + // _EXCPT(ReceiversErrors::NoRemoteControlErrorExImpl,impl,"CComponentCore::lnaOn()"); + // throw impl; + // } + try { + m_control-> turnRightLNAsOn(); + m_control-> turnLeftLNAsOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::lnaOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +// throw (ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,ComponentErrors::CouldntGetComponentExImpl, +// ComponentErrors::CORBAProblemExImpl,ReceiversErrors::LocalOscillatorErrorExImpl) +void CComponentCore::setLO(const ACS::doubleSeq& lo) +{ + double trueValue,amp; + double *freq=NULL; + double *power=NULL; + DWORD size; + baci::ThreadSyncGuard guard(&m_mutex); + if (lo.length()==0) { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::setLO"); + impl.setReason("at least one value must be provided"); + throw impl; + } + // in case -1 is given we keep the current value...so nothing to do + if (lo[0]==-1) { + ACS_LOG(LM_FULL_INFO,"CComponentCore::setLO()",(LM_NOTICE,"Current local oscillator value unchanged: %lf",m_localOscillatorValue)); + return; + } + // now check if the requested value match the limits + if (lo[0]<m_configuration.getLOMin()[0]) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::setLO"); + impl.setValueName("local oscillator lower limit"); + impl.setValueLimit(m_configuration.getLOMin()[0]); + throw impl; + } + else if (lo[0]>m_configuration.getLOMax()[0]) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::setLO"); + impl.setValueName("local oscillator upper limit"); + impl.setValueLimit(m_configuration.getLOMax()[0]); + throw impl; + } + //computes the synthesizer settings + trueValue=lo[0]+m_configuration.getFixedLO2()[0]; + size=m_configuration.getSynthesizerTable(freq,power); + amp=round(linearFit(freq,power,size,trueValue)); + if (power) delete [] power; + if (freq) delete [] freq; + ACS_LOG(LM_FULL_INFO,"CComponentCore::setLO()",(LM_DEBUG,"SYNTHESIZER_VALUES %lf %lf",trueValue,amp)); + // make sure the synthesizer component is available + loadLocalOscillator(); // throw (ComponentErrors::CouldntGetComponentExImpl) + try { + m_localOscillatorDevice->set(amp,trueValue); + } + catch (CORBA::SystemException& ex) { + m_localOscillatorFault=true; + _EXCPT(ComponentErrors::CORBAProblemExImpl,impl,"CComponentCore::setLO()"); + impl.setName(ex._name()); + impl.setMinor(ex.minor()); + throw impl; + } + catch (ReceiversErrors::ReceiversErrorsEx& ex) { + _ADD_BACKTRACE(ReceiversErrors::LocalOscillatorErrorExImpl,impl,ex,"CComponentCore::setLO()"); + throw impl; + } + // now that the local oscillator has been properly set...let's do some easy computations + m_localOscillatorValue=lo[0]; + for (WORD i=0;i<m_configuration.getIFs();i++) { + m_bandwidth[i]=m_configuration.getRFMax()[i]-(m_startFreq[i]+m_localOscillatorValue); + // the if bandwidth could never be larger than the max IF bandwidth: + if (m_bandwidth[i]>m_configuration.getIFBandwidth()[i]) m_bandwidth[i]=m_configuration.getIFBandwidth()[i]; + } + ACS_LOG(LM_FULL_INFO,"CComponentCore::setLO()",(LM_NOTICE,"Local Oscillator set to: %lf",m_localOscillatorValue)); +} + +//throw (ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl) +void CComponentCore::getCalibrationMark(ACS::doubleSeq& result,ACS::doubleSeq& resFreq,ACS::doubleSeq& resBw,const ACS::doubleSeq& freqs,const ACS::doubleSeq& bandwidths,const ACS::longSeq& feeds, + const ACS::longSeq& ifs,bool& onoff,double &scaleFactor) +{ + double realFreq,realBw; + double *tableLeftFreq=NULL; + double *tableLeftMark=NULL; + double *tableRightFreq=NULL; + double *tableRightMark=NULL; + DWORD sizeL=0; + DWORD sizeR=0; + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::getCalibrationMark()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + //let's do some checks about input data + unsigned stdLen=freqs.length(); + if ((stdLen!=bandwidths.length()) || (stdLen!=feeds.length()) || (stdLen!=ifs.length())) { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::getCalibrationMark()"); + impl.setReason("sub-bands definition is not consistent"); + throw impl; + } + for (unsigned i=0;i<stdLen;i++) { + if ((ifs[i]>=(long)m_configuration.getIFs()) || (ifs[i]<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getCalibrationMark()"); + impl.setValueName("IF identifier"); + throw impl; + } + } + for (unsigned i=0;i<stdLen;i++) { + if ((feeds[i]>=(long)m_configuration.getFeeds()) || (feeds[i]<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getCalibrationMark()"); + impl.setValueName("feed identifier"); + throw impl; + } + } + result.length(stdLen); + resFreq.length(stdLen); + resBw.length(stdLen); + // first get the calibration mark tables + sizeL=m_configuration.getLeftMarkTable(tableLeftFreq,tableLeftMark); + sizeR=m_configuration.getRightMarkTable(tableRightFreq,tableRightMark); + for (unsigned i=0;i<stdLen;i++) { + // now computes the mark for each input band....considering the present mode and configuration of the receiver. + if (!IRA::CIRATools::skyFrequency(freqs[i],bandwidths[i],m_startFreq[ifs[i]],m_bandwidth[ifs[i]],realFreq,realBw)) { + realFreq=m_startFreq[ifs[i]]; + realBw=0.0; + } + ACS_LOG(LM_FULL_INFO,"CComponentCore::getCalibrationMark()",(LM_DEBUG,"SUB_BAND %lf %lf",realFreq,realBw)); + realFreq+=m_localOscillatorValue; + resFreq[i]=realFreq; + resBw[i]=realBw; + realFreq+=realBw/2.0; + ACS_LOG(LM_FULL_INFO,"CComponentCore::getCalibrationMark()",(LM_DEBUG,"REFERENCE_FREQUENCY %lf",realFreq)); + if (m_polarization[ifs[i]]==(long)Receivers::RCV_LCP) { + result[i]=linearFit(tableLeftFreq,tableLeftMark,sizeL,realFreq); + ACS_LOG(LM_FULL_INFO,"CComponentCore::getCalibrationMark()",(LM_DEBUG,"LEFT_MARK_VALUE %lf",result[i])); + } + else { //RCV_RCP + result[i]=linearFit(tableRightFreq,tableRightMark,sizeR,realFreq); + ACS_LOG(LM_FULL_INFO,"CComponentCore::getCalibrationMark()",(LM_DEBUG,"RIGHT_MARK_VALUE %lf",result[i])); + } + } + scaleFactor=1.0; + onoff=m_calDiode; + if (tableLeftFreq) delete [] tableLeftFreq; + if (tableLeftMark) delete [] tableLeftMark; + if (tableRightFreq) delete [] tableRightFreq; + if (tableRightMark) delete [] tableRightMark; +} + +//throw (ComponentErrors::ValidationErrorExImpl, ComponentErrors::ValueOutofRangeExImpl) +void CComponentCore::getIFOutput( + const ACS::longSeq& feeds, + const ACS::longSeq& ifs, + ACS::doubleSeq& freqs, + ACS::doubleSeq& bw, + ACS::longSeq& pols, + ACS::doubleSeq& LO + ) +{ + + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::getIFOutput()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + // let's do some checks about input data + unsigned stdLen=feeds.length(); + if ((stdLen!=ifs.length())) { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::getIFOutput()"); + impl.setReason("sub-bands definition is not consistent"); + throw impl; + } + for (unsigned i=0;i<stdLen;i++) { + if ((ifs[i]>=(long)m_configuration.getIFs()) || (ifs[i]<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getIFOutputMark()"); + impl.setValueName("IF identifier"); + throw impl; + } + } + for (unsigned i=0;i<stdLen;i++) { + if ((feeds[i]>=(long)m_configuration.getFeeds()) || (feeds[i]<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getIFOutput()"); + impl.setValueName("feed identifier"); + throw impl; + } + } + freqs.length(stdLen); + bw.length(stdLen); + pols.length(stdLen); + LO.length(stdLen); + for (unsigned i=0;i<stdLen;i++) { + freqs[i] = m_startFreq[ifs[i]]; + bw[i] = m_bandwidth[ifs[i]]; + pols[i] = m_polarization[ifs[i]]; + LO[i] = m_localOscillatorValue; + } +} + +//throw (ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl) +double CComponentCore::getTaper(const double& freq,const double& bw,const long& feed,const long& ifNumber,double& waveLen) +{ + double centralFreq; + double taper; + double realFreq,realBw; + double *freqVec=NULL; + double *taperVec=NULL; + DWORD size; + + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CComponentCore::getTaper()"); + impl.setReason("receiver not configured yet"); + throw impl; + } + if ((ifNumber>=(long)m_configuration.getIFs()) || (ifNumber<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getTaper()"); + impl.setValueName("IF identifier"); + throw impl; + } + if ((feed>=(long)m_configuration.getFeeds()) || (feed<0)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CComponentCore::getTaper()"); + impl.setValueName("feed identifier"); + throw impl; + } + // take the real observed bandwidth....the correlation between detector device and the band provided by the receiver + if (!IRA::CIRATools::skyFrequency(freq,bw,m_startFreq[ifNumber],m_bandwidth[ifNumber],realFreq,realBw)) { + realFreq=m_startFreq[ifNumber]; + realBw=0.0; + } + centralFreq=realFreq+m_localOscillatorValue+realBw/2.0; + ACS_LOG(LM_FULL_INFO,"CComponentCore::getTaper()",(LM_DEBUG,"CENTRAL_FREQUENCY %lf",centralFreq)); + waveLen=LIGHTSPEED/(centralFreq*1000000); + ACS_LOG(LM_FULL_INFO,"CComponentCore::getTaper()",(LM_DEBUG,"WAVELENGTH %lf",waveLen)); + size=m_configuration.getTaperTable(freqVec,taperVec); + taper=linearFit(freqVec,taperVec,size,centralFreq); + ACS_LOG(LM_FULL_INFO,"CComponentCore::getTaper()",(LM_DEBUG,"TAPER %lf",taper)); + if (freqVec) delete [] freqVec; + if (taperVec) delete [] taperVec; + return taper; +} + +long CComponentCore::getFeeds(ACS::doubleSeq& X,ACS::doubleSeq& Y,ACS::doubleSeq& power) noexcept +{ + DWORD size; + WORD *code; + double *xOffset; + double *yOffset; + double *rPower; + baci::ThreadSyncGuard guard(&m_mutex); + size=m_configuration.getFeedInfo(code,xOffset,yOffset,rPower); + X.length(size); + Y.length(size); + power.length(size); + for (DWORD j=0;j<size;j++) { + X[j]=xOffset[j]; + Y[j]=yOffset[j]; + power[j]=rPower[j]; + } + if (xOffset) delete [] xOffset; + if (yOffset) delete [] yOffset; + if (rPower) delete [] rPower; + return size; +} + +double CComponentCore::getFetValue(const IRA::ReceiverControl::FetValue& control,const DWORD& ifs) noexcept +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (ifs>=m_configuration.getIFs()) { + return 0.0; + } + else if (m_polarization[ifs]==(long)Receivers::RCV_LCP) { + if (control==IRA::ReceiverControl::DRAIN_VOLTAGE) return m_fetValues.VDL; + else if (control==IRA::ReceiverControl::DRAIN_CURRENT) return m_fetValues.IDL; + else return m_fetValues.VGL; + } + else { //RCV_RCP + if (control==IRA::ReceiverControl::DRAIN_VOLTAGE) return m_fetValues.VDR; + else if (control==IRA::ReceiverControl::DRAIN_CURRENT) return m_fetValues.IDR; + else return m_fetValues.VGR; + } +} + +//throw (ComponentErrors::CORBAProblemExImpl,ComponentErrors::CouldntGetAttributeExImpl) +void CComponentCore::checkLocalOscillator() +{ + baci::ThreadSyncGuard guard(&m_mutex); + if (m_setupMode=="") { // if the receiver is not configured the check makes no sense + return; + } + // make sure the synthesizer component is available + loadLocalOscillator(); // throw (ComponentErrors::CouldntGetComponentExImpl) + ACSErr::Completion_var comp; + ACS::ROlong_var isLockedRef; + CORBA::Long isLocked; + try { + isLockedRef=m_localOscillatorDevice->isLocked(); + } + catch (CORBA::SystemException& ex) { + m_localOscillatorFault=true; + _EXCPT(ComponentErrors::CORBAProblemExImpl,impl,"CComponentCore::checkLocalOscillator()"); + impl.setName(ex._name()); + impl.setMinor(ex.minor()); + throw impl; + } + isLocked=isLockedRef->get_sync(comp.out()); + ACSErr::CompletionImpl complImpl(comp); + if (!complImpl.isErrorFree()) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetAttributeExImpl,impl,complImpl,"CComponentCore::checkLocalOscillator()"); + impl.setAttributeName("isLocked"); + impl.setComponentName((const char *)m_configuration.getLocalOscillatorInstance()); + throw impl; + } + if (!isLocked) setStatusBit(UNLOCKED); + else clearStatusBit(UNLOCKED); +} + +void CComponentCore::updateComponent() +{ + baci::ThreadSyncGuard guard(&m_mutex); + m_componentStatus=Management::MNG_OK; + // if (checkStatusBit(LOCAL)) { + // setComponentStatus(Management::MNG_FAILURE); + // _IRA_LOGFILTER_LOG(LM_CRITICAL,"CComponentCore::updateComponent()","RECEIVER_NOT_REMOTELY_CONTROLLABLE"); + // } + if (checkStatusBit(VACUUMPUMPFAULT)) { + setComponentStatus(Management::MNG_WARNING); + _IRA_LOGFILTER_LOG(LM_WARNING,"CComponentCore::updateComponent()","VACUUM_PUMP_FAILURE"); + } + if (checkStatusBit(NOISEMARKERROR)) { + setComponentStatus(Management::MNG_FAILURE); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CComponentCore::updateComponent()","NOISE_MARK_ERROR"); + } + if (checkStatusBit(CONNECTIONERROR)) { + setComponentStatus(Management::MNG_FAILURE); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CComponentCore::updateComponent()","RECEIVER_CONNECTION_ERROR"); + } + if (checkStatusBit(UNLOCKED)) { + setComponentStatus(Management::MNG_FAILURE); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CComponentCore::updateComponent()","LOCAL_OSCILLATOR_NOT_LOCKED"); + } +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateVacuum() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + bool vacuumSensor; + try { + vacuumSensor=m_control->isVacuumSensorOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateVacuum()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if (vacuumSensor) { + try { + m_vacuum=m_control->vacuum(CComponentCore::voltage2mbar); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateVacuum()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + } + else { + m_vacuum=m_vacuumDefault; + } + if (!vacuumSensor) setStatusBit(VACUUMSENSOR); + else clearStatusBit(VACUUMSENSOR); + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateVacuumPump() +{ + bool answer; + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + answer=m_control->isVacuumPumpOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateVacuumPump()"); + impl.setDetails(ex.what().c_str()); + baci::ThreadSyncGuard guard(&m_mutex); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if (!answer) setStatusBit(VACUUMPUMPSTATUS); + else clearStatusBit(VACUUMPUMPSTATUS); + //**********************************************************************************/ + // VACUUM PUMP FAULT MISSING (VACUUMPUMPFAULT) + //************************************************************************************ + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateNoiseMark() +{ + bool answer; + baci::ThreadSyncGuard guard(&m_mutex); + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + answer=m_control->isCalibrationOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateNoiseMark()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if(answer!=checkStatusBit(NOISEMARK)) { + if(m_ioMarkError) { + setStatusBit(NOISEMARKERROR); + } + else { + m_ioMarkError = true; + } + } + else { + clearStatusBit(NOISEMARKERROR); + m_ioMarkError = false; + } + //*********************************************************************************************/ + // EXTNOISEMARK is missing + /**********************************************************************************************/ + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateVacuumValve() +{ + bool answer; + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + answer=m_control->isVacuumValveOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateVacuumValve()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if (!answer) setStatusBit(VACUUMVALVEOPEN); + else clearStatusBit(VACUUMVALVEOPEN); + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateIsRemote() +{ + bool answer; + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + answer=m_control->isRemoteOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateIsRemote()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + + if (checkStatusBit(LOCAL) && answer) { + _IRA_LOGFILTER_LOG( + LM_NOTICE, + "CComponentCore::updateIsRemote()", + "RECEIVER_SWITCHED_FROM_LOCAL_TO_REMOTE" + ); + } + else if (!checkStatusBit(LOCAL) && !answer) { + _IRA_LOGFILTER_LOG( + LM_NOTICE, + "CComponentCore::updateIsRemote()", + "RECEIVER_SWITCHED_FROM_REMOTE_TO_LOCAL" + ); + } + + if (!answer) setStatusBit(LOCAL); + else clearStatusBit(LOCAL); + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateCoolHead() +{ + bool answer; + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + answer=m_control->isCoolHeadOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCoolHead()->isCoolHeadOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if (!answer) { + setStatusBit(COOLHEADON); + try { + answer=m_control->isCoolHeadSetOn(); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCoolHead() - isCoolHeadSetOn()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + if(!answer) + setStatusBit(COMPRESSORFAULT); + else + clearStatusBit(COMPRESSORFAULT); + } + else + clearStatusBit(COOLHEADON); + + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateCryoCoolHead() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_cryoCoolHead.temperature = m_control->cryoTemperature(0,CComponentCore::voltage2Kelvin); + m_cryoCoolHead.timestamp = getTimeStamp(); + } + catch (IRA::ReceiverControlEx& ex) { + m_cryoCoolHead.temperature = CEDUMMY; + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCryoCoolHead()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateCryoCoolHeadWin() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_cryoCoolHeadWin.temperature = m_control->cryoTemperature(1,CComponentCore::voltage2Kelvin); + m_cryoCoolHeadWin.timestamp = getTimeStamp(); + } + catch (IRA::ReceiverControlEx& ex) { + m_cryoCoolHeadWin.temperature = CEDUMMY; + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCryoCoolHeadWin()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +// throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateCryoLNA() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_cryoLNA.temperature = m_control->cryoTemperature(3,CComponentCore::voltage2Kelvin); + m_cryoLNA.timestamp = getTimeStamp(); + } + catch (IRA::ReceiverControlEx& ex) { + m_cryoLNA.temperature = CEDUMMY; + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCryoLNA()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateCryoLNAWin() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_cryoLNAWin.temperature = m_control->cryoTemperature(4,CComponentCore::voltage2Kelvin); + m_cryoLNAWin.timestamp = getTimeStamp(); + } + catch (IRA::ReceiverControlEx& ex) { + m_cryoLNAWin.temperature = CEDUMMY; + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCryoLNAWin()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateEnvironmentTemperature() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_environmentTemperature.temperature = m_control->vertexTemperature(CComponentCore::voltage2Celsius); + m_environmentTemperature.timestamp = getTimeStamp(); + } + catch (IRA::ReceiverControlEx& ex) { + m_environmentTemperature.temperature = CEDUMMY; + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateEnvironmentTemperature()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ReceiversErrors::ReceiverControlBoardErrorExImpl) +void CComponentCore::updateLNAControls() +{ + // not under the mutex protection because the m_control object is thread safe (at the micro controller board stage) + try { + m_fetValues=m_control->fetValues(0,1,CComponentCore::currentConverter, CComponentCore::voltageConverter); + } + catch (IRA::ReceiverControlEx& ex) { + _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl,"CComponentCore::updateCryoLNAWin()"); + impl.setDetails(ex.what().c_str()); + setStatusBit(CONNECTIONERROR); + throw impl; + } + clearStatusBit(CONNECTIONERROR); // the communication was ok so clear the CONNECTIONERROR bit +} + +//throw (ComponentErrors::CouldntGetComponentExImpl) +void CComponentCore::loadLocalOscillator() +{ + if ((!CORBA::is_nil(m_localOscillatorDevice)) && (m_localOscillatorFault)) { // if reference was already taken, but an error was found....dispose the reference + try { + m_services->releaseComponent((const char*)m_localOscillatorDevice->name()); + } + catch (...) { //dispose silently...if an error...no matter + } + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + } + if (CORBA::is_nil(m_localOscillatorDevice)) { //only if it has not been retrieved yet + try { + m_localOscillatorDevice=m_services->getComponent<Receivers::LocalOscillator>((const char*)m_configuration.getLocalOscillatorInstance()); + ACS_LOG(LM_FULL_INFO,"CCore::loadLocalOscillator()",(LM_INFO,"LOCAL_OSCILLATOR_OBTAINED")); + m_localOscillatorFault=false; + } + catch (maciErrType::CannotGetComponentExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,"CComponentCore::loadLocalOscillator()"); + Impl.setComponentName((const char*)m_configuration.getLocalOscillatorInstance()); + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + throw Impl; + } + catch (maciErrType::NoPermissionExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,"CComponentCore::loadLocalOscillator()"); + Impl.setComponentName((const char*)m_configuration.getLocalOscillatorInstance()); + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + throw Impl; + } + catch (maciErrType::NoDefaultComponentExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,"CComponentCore::loadLocalOscillator()"); + Impl.setComponentName((const char*)m_configuration.getLocalOscillatorInstance()); + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + throw Impl; + } + } +} + +void CComponentCore::unloadLocalOscillator() noexcept +{ + if (!CORBA::is_nil(m_localOscillatorDevice)) { + try { + m_services->releaseComponent((const char*)m_localOscillatorDevice->name()); + } + catch (maciErrType::CannotReleaseComponentExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntReleaseComponentExImpl,Impl,ex,"CComponentCore::unloadLocalOscillator()"); + Impl.setComponentName((const char *)m_configuration.getLocalOscillatorInstance()); + Impl.log(LM_WARNING); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CComponentCore::unloadLocalOscillator()"); + impl.log(LM_WARNING); + } + m_localOscillatorDevice=Receivers::LocalOscillator::_nil(); + } +} + +double CComponentCore::linearFit(double *X,double *Y,const WORD& size,double x) noexcept +{ + int low=-1,high=-1; + for (WORD j=0;j<size;j++) { + if (x==X[j]) { + return Y[j]; + } + else if (x<X[j]) { + if (high==-1) high=j; + else if (X[j]<X[high]) high=j; + } + else if (x>X[j]) { // X value is lower + if (low==-1) low=j; + else if (X[j]>X[low]) low=j; + } + } + if ((high!=-1) && (low!=-1)) { + double slope=X[low]-X[high]; + return ((x-X[high])/slope)*Y[low]-((x-X[low])/slope)*Y[high]; + } + else if (high==-1) { + return Y[low]; + } + else if (low==-1) { + return Y[high]; + } + else return 0.0; //this will never happen if size!=0 +} diff --git a/SRT/Servers/SRT5GHzReceiver/src/Configuration.cpp b/SRT/Servers/SRT5GHzReceiver/src/Configuration.cpp new file mode 100644 index 000000000..0946a3034 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/src/Configuration.cpp @@ -0,0 +1,523 @@ + +#include "Configuration.h" + +using namespace IRA; + +#define _GET_DOUBLE_ATTRIBUTE(ATTRIB,DESCR,FIELD,NAME) { \ + double tmpd; \ + if (!CIRATools::getDBValue(Services,ATTRIB,tmpd,"alma/",NAME)) { \ + _EXCPT(ComponentErrors::CDBAccessExImpl,dummy,"CConfiguration::Init()"); \ + dummy.setFieldName(ATTRIB); \ + throw dummy; \ + } \ + else { \ + FIELD=tmpd; \ + ACS_DEBUG_PARAM("CConfiguration::Init()",DESCR" %lf",tmpd); \ + } \ +} + +#define _GET_DWORD_ATTRIBUTE(ATTRIB,DESCR,FIELD,NAME) { \ + DWORD tmpw; \ + if (!CIRATools::getDBValue(Services,ATTRIB,tmpw,"alma/",NAME)) { \ + _EXCPT(ComponentErrors::CDBAccessExImpl,dummy,"CConfiguration::Init()"); \ + dummy.setFieldName(ATTRIB); \ + throw dummy; \ + } \ + else { \ + FIELD=tmpw; \ + ACS_DEBUG_PARAM("CConfiguration::Init()",DESCR" %u",tmpw); \ + } \ +} + +#define _GET_STRING_ATTRIBUTE(ATTRIB,DESCR,FIELD,NAME) { \ + CString tmps; \ + if (!CIRATools::getDBValue(Services,ATTRIB,tmps,"alma/",NAME)) { \ + _EXCPT(ComponentErrors::CDBAccessExImpl,dummy,"::CConfiguration::Init()"); \ + dummy.setFieldName(ATTRIB); \ + throw dummy; \ + } \ + else { \ + FIELD=tmps; \ + ACS_DEBUG_PARAM("CConfiguration::Init()",DESCR" %s",(const char*)tmps); \ + } \ +} + +#define CONFIG_PATH "DataBlock/SRT5GHzReceiver" +#define LOTABLE_PATH CONFIG_PATH"/Synthesizer" +#define MARKTABLE_PATH CONFIG_PATH"/NoiseMark" +#define NORMALMODE_PATH CONFIG_PATH"/NormalModeSetup" +#define FEEDTABLE_PATH CONFIG_PATH"/Feeds" +#define TAPERTABLE_PATH CONFIG_PATH"/Taper" + + +CConfiguration::CConfiguration() +{ + m_markTable=m_loTable=NULL; + m_markVector=NULL; + m_markVectorLen=0; + m_loTable=NULL; + m_loVector=NULL; + m_loVectorLen=0; + m_polarizations=NULL; + m_feedsTable=NULL; + m_feedVector=NULL; + m_taperTable=NULL; + m_taperVector=NULL; + m_taperVectorLen=0; + m_RFMin=m_RFMax=m_IFMin=m_IFBandwidth=m_defaultLO=m_fixedLO2=m_LOMin=m_LOMax=NULL; +} + +CConfiguration::~CConfiguration() +{ + if (m_markTable) { + delete m_markTable; + } + if (m_loTable) { + delete m_loTable; + } + if (m_feedsTable) { + delete m_feedsTable; + } + if (m_taperTable) { + delete m_taperTable; + } + if (m_markVector) { + delete [] m_markVector; + } + if (m_loVector) { + delete [] m_loVector; + } + if (m_taperVector) { + delete [] m_taperVector; + } + if (m_polarizations) { + delete [] m_polarizations; + } + if (m_feedVector) { + delete [] m_feedVector; + } + if (m_RFMin) { + delete [] m_RFMin; + } + if (m_RFMax) { + delete [] m_RFMax; + } + if (m_IFMin) { + delete [] m_IFMin; + } + if (m_IFBandwidth) { + delete [] m_IFBandwidth; + } + if (m_defaultLO) { + delete [] m_defaultLO; + } + if (m_fixedLO2) { + delete [] m_fixedLO2; + } + if (m_LOMin) { + delete [] m_LOMin; + } + if (m_LOMax) { + delete [] m_LOMax; + } +} +// throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl) +void CConfiguration::init(maci::ContainerServices *Services) +{ + IRA::CError error; + IRA::CString field,value,token; + WORD len; + int start=0; + // read component configuration + _GET_STRING_ATTRIBUTE("DewarIPAddress","Dewar IP address:",m_dewarIPAddress,""); + _GET_STRING_ATTRIBUTE("LNAIPAddress","LNA IP address:",m_LNAIPAddress,""); + _GET_STRING_ATTRIBUTE("LocalOscillatorInstance","Local oscillator instance:",m_localOscillatorInstance,""); + _GET_DWORD_ATTRIBUTE("DewarPort","Dewar port:",m_dewarPort,""); + _GET_DWORD_ATTRIBUTE("LNAPort","LNA port:",m_LNAPort,""); + _GET_DWORD_ATTRIBUTE("WatchDogResponseTime","Response time of watch dog thread (uSec):",m_watchDogResponseTime,""); + _GET_DWORD_ATTRIBUTE("WatchDogSleepTime","Sleep time of the watch dog thread (uSec):",m_watchDogSleepTime,""); + _GET_DWORD_ATTRIBUTE("LNASamplingTime","Time needed to collect LNA information from control boards (uSec):",m_LNASamplingTime,""); + _GET_DWORD_ATTRIBUTE("RepetitionCacheTime","Log repetition filter, caching time (uSec):",m_repetitionCacheTime,""); + _GET_DWORD_ATTRIBUTE("RepetitionExpireTime","Log repetition filter, expire time (uSec):",m_repetitionExpireTime,""); + _GET_STRING_ATTRIBUTE("LocalOscillatorInstance","Local oscillator instance:",m_localOscillatorInstance,""); + // now read the receiver configuration + _GET_STRING_ATTRIBUTE("Mode","mode name:",m_mode,NORMALMODE_PATH); + _GET_DWORD_ATTRIBUTE("Feeds","Number of feeds:",m_feeds,NORMALMODE_PATH); + _GET_DWORD_ATTRIBUTE("IFs","Number of IFs per feed:",m_IFs,NORMALMODE_PATH); + try { + m_polarizations=new Receivers::TPolarization[m_IFs]; + m_RFMin=new double[m_IFs]; + m_RFMax=new double[m_IFs]; + m_IFMin=new double[m_IFs]; + m_IFBandwidth=new double[m_IFs]; + m_defaultLO=new double[m_IFs]; + m_fixedLO2=new double[m_IFs]; + m_LOMin=new double[m_IFs]; + m_LOMax=new double[m_IFs]; + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + _GET_STRING_ATTRIBUTE("Polarization","IF polarization:",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("Polarization"); + throw dummy; + } + token.MakeUpper(); + if (token=="L") { + m_polarizations[k]=Receivers::RCV_LCP; + } + else if (token=="R") { + m_polarizations[k]=Receivers::RCV_RCP; + } + else { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("Polarization"); + throw dummy; + } + } + _GET_STRING_ATTRIBUTE("RFMin","RF lower limit (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("RFMin"); + throw dummy; + } + m_RFMin[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("RFMax","RF upper limit (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("RFMax"); + throw dummy; + } + m_RFMax[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("IFMin","IF start frequency (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("IFMin"); + throw dummy; + } + m_IFMin[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("IFBandwidth","IF bandwidth (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("IFBandwidth"); + throw dummy; + } + m_IFBandwidth[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("DefaultLO","Default local oscillator (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("DefaultLO"); + throw dummy; + } + m_defaultLO[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("FixedLO2","Second fixed local oscillator value (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("FixedLO2"); + throw dummy; + } + m_fixedLO2[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("LOMin","Local oscillator minimum allowed value (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("LOMin"); + throw dummy; + } + m_LOMin[k]=token.ToDouble(); + } + _GET_STRING_ATTRIBUTE("LOMax","Local oscillator maximum allowed value (MHz):",value,NORMALMODE_PATH); + start=0; + for (WORD k=0;k<m_IFs;k++) { + if (!IRA::CIRATools::getNextToken(value,start,' ',token)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + dummy.setFieldName("LOMax"); + throw dummy; + } + m_LOMax[k]=token.ToDouble(); + } + // The noise mark + try { + m_markTable=new IRA::CDBTable(Services,"MarkEntry",MARKTABLE_PATH); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + error.Reset(); + if (!m_markTable->addField(error,"Polarization",IRA::CDataField::STRING)) { + field="Polarization"; + } + else if (!m_markTable->addField(error,"SkyFrequency",IRA::CDataField::DOUBLE)) { + field="SkyFrequency"; + } + else if (!m_markTable->addField(error,"NoiseMark",IRA::CDataField::DOUBLE)) { + field="NoiseMark"; + } + if (!error.isNoError()) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl,dummy,error); + dummy.setFieldName((const char *)field); + throw dummy; + } + if (!m_markTable->openTable(error)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + m_markTable->First(); + len=m_markTable->recordCount(); + try { + m_markVector=new TMarkValue[len]; + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"MARK_VALUE_ENTRY_NUMBER: %d",len)); + for (WORD i=0;i<len;i++) { + m_markVector[i].skyFrequency=(*m_markTable)["SkyFrequency"]->asDouble(); + m_markVector[i].markValue=(*m_markTable)["NoiseMark"]->asDouble(); + m_markVector[i].polarization=(*m_markTable)["Polarization"]->asString()=="LEFT"?Receivers::RCV_LCP:Receivers::RCV_RCP; + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"MARK_VALUE_ENTRY: %d %lf %lf",m_markVector[i].polarization,m_markVector[i].skyFrequency, + m_markVector[i].markValue)); + m_markTable->Next(); + } + m_markVectorLen=len; + m_markTable->closeTable(); + delete m_markTable; + m_markTable=NULL; + // The synthesizer + try { + m_loTable=new IRA::CDBTable(Services,"SynthesizerEntry",LOTABLE_PATH); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + error.Reset(); + if (!m_loTable->addField(error,"Frequency",IRA::CDataField::DOUBLE)) { + field="Frequency"; + } + else if (!m_loTable->addField(error,"OutputPower",IRA::CDataField::DOUBLE)) { + field="OutputPower"; + } + if (!error.isNoError()) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl,dummy,error); + dummy.setFieldName((const char *)field); + throw dummy; + } + if (!m_loTable->openTable(error)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + m_loTable->First(); + len=m_loTable->recordCount(); + try { + m_loVector=new TLOValue[len]; + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"SYNTH_VALUE_ENTRY_NUMBER: %d",len)); + for (WORD i=0;i<len;i++) { + m_loVector[i].frequency=(*m_loTable)["Frequency"]->asDouble(); + m_loVector[i].outputPower=(*m_loTable)["OutputPower"]->asDouble(); + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"SYNTH_VALUE_ENTRY: %lf %lf",m_loVector[i].frequency,m_loVector[i].outputPower)); + m_loTable->Next(); + } + m_loVectorLen=len; + m_loTable->closeTable(); + delete m_loTable; + m_loTable=NULL; + // The feeds + try { + m_feedsTable=new IRA::CDBTable(Services,"Feed",FEEDTABLE_PATH); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + error.Reset(); + if (!m_feedsTable->addField(error,"feedCode",IRA::CDataField::LONGLONG)) { + field="feedCode"; + } + else if (!m_feedsTable->addField(error,"xOffset",IRA::CDataField::DOUBLE)) { + field="xOffset"; + } + else if (!m_feedsTable->addField(error,"yOffset",IRA::CDataField::DOUBLE)) { + field="yOffset"; + } + else if (!m_feedsTable->addField(error,"relativePower",IRA::CDataField::DOUBLE)) { + field="relativePower"; + } + if (!error.isNoError()) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl,dummy,error); + dummy.setFieldName((const char *)field); + throw dummy; + } + if (!m_feedsTable->openTable(error)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + m_feedsTable->First(); + if (m_feeds!=m_feedsTable->recordCount()) { + _EXCPT(ComponentErrors::CDBAccessExImpl, dummy, "CConfiguration::init()"); + dummy.setFieldName("feed table size"); + throw dummy; + } + len=m_feeds; + try { + m_feedVector=new TFeedValue[len]; + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + for (WORD i=0;i<len;i++) { + m_feedVector[i].xOffset=(*m_feedsTable)["xOffset"]->asDouble(); + m_feedVector[i].yOffset=(*m_feedsTable)["yOffset"]->asDouble(); + m_feedVector[i].relativePower=(*m_feedsTable)["relativePower"]->asDouble(); + m_feedVector[i].code=(WORD)(*m_feedsTable)["feedCode"]->asLongLong(); + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"FEED_VALUE_ENTRY: %d %lf %lf %lf",m_feedVector[i].code,m_feedVector[i].xOffset,m_feedVector[i].yOffset,m_feedVector[i].relativePower)); + m_feedsTable->Next(); + } + m_feedsTable->closeTable(); + delete m_feedsTable; + m_feedsTable=NULL; + //The taper..... + try { + m_taperTable=new IRA::CDBTable(Services,"TaperEntry",TAPERTABLE_PATH); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + error.Reset(); + if (!m_taperTable->addField(error,"Frequency",IRA::CDataField::DOUBLE)) { + field="Frequency"; + } + else if (!m_taperTable->addField(error,"Taper",IRA::CDataField::DOUBLE)) { + field="OutputPower"; + } + if (!error.isNoError()) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl,dummy,error); + dummy.setFieldName((const char *)field); + throw dummy; + } + if (!m_taperTable->openTable(error)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + m_taperTable->First(); + len=m_taperTable->recordCount(); + try { + m_taperVector=new TTaperValue[len]; + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"CConfiguration::init()"); + throw dummy; + } + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"TAPER_ENTRY_NUMBER: %d",len)); + for (WORD i=0;i<len;i++) { + m_taperVector[i].frequency=(*m_taperTable)["Frequency"]->asDouble(); + m_taperVector[i].taper=(*m_taperTable)["Taper"]->asDouble(); + ACS_LOG(LM_FULL_INFO,"CConfiguration::init()",(LM_DEBUG,"SYNTH_VALUE_ENTRY: %lf %lf",m_taperVector[i].frequency,m_taperVector[i].taper)); + m_taperTable->Next(); + } + m_taperVectorLen=len; + m_taperTable->closeTable(); + delete m_taperTable; + m_taperTable=NULL; +} + +DWORD CConfiguration::getSynthesizerTable(double * &freq,double *&power) const +{ + freq= new double [m_loVectorLen]; + power=new double [m_loVectorLen]; + for (DWORD j=0;j<m_loVectorLen;j++) { + freq[j]=m_loVector[j].frequency; + power[j]=m_loVector[j].outputPower; + } + return m_loVectorLen; +} + +DWORD CConfiguration::getTaperTable(double * &freq,double *&taper) const +{ + freq= new double [m_taperVectorLen]; + taper=new double [m_taperVectorLen]; + for (DWORD j=0;j<m_taperVectorLen;j++) { + freq[j]=m_taperVector[j].frequency; + taper[j]=m_taperVector[j].taper; + } + return m_taperVectorLen; +} + +DWORD CConfiguration::getLeftMarkTable(double *& freq,double *& markValue) const +{ + freq= new double [m_markVectorLen]; + markValue=new double [m_markVectorLen]; + DWORD count=0; + for (DWORD j=0;j<m_markVectorLen;j++) { + if (m_markVector[j].polarization==Receivers::RCV_LCP) { + freq[count]=m_markVector[j].skyFrequency; + markValue[count]=m_markVector[j].markValue; + count++; + } + } + return count; +} + +DWORD CConfiguration::getRightMarkTable(double *& freq,double *& markValue) const +{ + freq= new double [m_markVectorLen]; + markValue=new double [m_markVectorLen]; + DWORD count=0; + for (DWORD j=0;j<m_markVectorLen;j++) { + if (m_markVector[j].polarization==Receivers::RCV_RCP) { + freq[count]=m_markVector[j].skyFrequency; + markValue[count]=m_markVector[j].markValue; + count++; + } + } + return count; +} + +DWORD CConfiguration::getFeedInfo(WORD *& code,double *& xOffset,double *& yOffset,double *& relativePower) const +{ + code=new WORD[m_feeds]; + xOffset=new double [m_feeds]; + yOffset=new double [m_feeds]; + relativePower=new double [m_feeds]; + for (DWORD j=0;j<m_feeds;j++) { + code[j]=m_feedVector[j].code; + xOffset[j]=m_feedVector[j].xOffset; + yOffset[j]=m_feedVector[j].yOffset; + relativePower[j]=m_feedVector[j].relativePower; + } + return m_feeds; +} + diff --git a/SRT/Servers/SRT5GHzReceiver/src/Makefile b/SRT/Servers/SRT5GHzReceiver/src/Makefile new file mode 100644 index 000000000..fc802c270 --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/src/Makefile @@ -0,0 +1,209 @@ +#******************************************************************************* +# PPPPPPPP +# +# "@(#) $Id$" +# +# Makefile of ........ +# +# who when what +# -------- -------- ---------------------------------------------- +# andrea 01/08/11 created +# + +#******************************************************************************* +# This Makefile follows VLT Standards (see Makefile(5) for more). +#******************************************************************************* +# REMARKS +# None +#------------------------------------------------------------------------ + +# +# user definable C-compilation flags +#USER_CFLAGS = + +# +# additional include and library search paths +#USER_INC = +#USER_LIB = + +# +# MODULE CODE DESCRIPTION: +# ------------------------ +# As a general rule: public file are "cleaned" and "installed" +# local (_L) are not "installed". + +# +# C programs (public and local) +# ----------------------------- +EXECUTABLES = +EXECUTABLES_L = + +# +# <brief description of xxxxx program> +xxxxx_OBJECTS = +xxxxx_LDFLAGS = +xxxxx_LIBS = + +# +# special compilation flags for single c sources +#yyyyy_CFLAGS = + +# +# Includes (.h) files (public only) +# --------------------------------- +INCLUDES = + +# +# Libraries (public and local) +# ---------------------------- +LIBRARIES = SRT5GHzImpl +LIBRARIES_L = + +# +# <brief description of lllll library> +SRT5GHzImpl_OBJECTS = Configuration SRT5GHzImpl ComponentCore MonitorThread +SRT5GHzImpl_LIBS = IRALibrary ComponentErrors ManagementErrors ReceiversErrors CommonReceiverInterfaceStubs GenericReceiverStubs SRT5GHzStubs \ + LocalOscillatorInterfaceStubs ReceiversDefinitionsStubs ManagmentDefinitionsStubs + +# +# Scripts (public and local) +# ---------------------------- +SCRIPTS = +SCRIPTS_L = + +# +# TCL scripts (public and local) +# ------------------------------ +TCL_SCRIPTS = +TCL_SCRIPTS_L = + +# +# Python stuff (public and local) +# ---------------------------- +PY_SCRIPTS = +PY_SCRIPTS_L = + +PY_MODULES = +PY_MODULES_L = + +PY_PACKAGES = +PY_PACKAGES_L = +pppppp_MODULES = + +# +# <brief description of tttttt tcl-script> +tttttt_OBJECTS = +tttttt_TCLSH = +tttttt_LIBS = + +# +# TCL libraries (public and local) +# ------------------------------ +TCL_LIBRARIES = +TCL_LIBRARIES_L = + +# +# <brief description of tttlll library> +tttlll_OBJECTS = + +# +# Configuration Database Files +# ---------------------------- +CDB_SCHEMAS = SRT5GHzReceiver + +# +# IDL Files and flags +# +IDL_FILES = +TAO_IDLFLAGS = +USER_IDL = +# +# Jarfiles and their directories +# +JARFILES= +jjj_DIRS= +jjj_EXTRAS= +# +# java sources in Jarfile on/off +DEBUG= +# +# ACS XmlIdl generation on/off +# +XML_IDL= +# +# Java Component Helper Classes generation on/off +# +COMPONENT_HELPERS= +# +# Java Entity Classes generation on/off +# +XSDBIND= +# +# Schema Config files for the above +# +XSDBIND_INCLUDE= +# man pages to be done +# -------------------- +MANSECTIONS = +MAN1 = +MAN3 = +MAN5 = +MAN7 = +MAN8 = + +# +# local man pages +# --------------- +MANl = + +# +# ASCII file to be converted into Framemaker-MIF +# -------------------- +ASCII_TO_MIF = + +# +# other files to be installed +#---------------------------- +INSTALL_FILES = + +# +# list of all possible C-sources (used to create automatic dependencies) +# ------------------------------ +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +# +#>>>>> END OF standard rules + +# +# INCLUDE STANDARDS +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + + +#___oOo___ diff --git a/SRT/Servers/SRT5GHzReceiver/src/MonitorThread.cpp b/SRT/Servers/SRT5GHzReceiver/src/MonitorThread.cpp new file mode 100644 index 000000000..f7cd32f3a --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/src/MonitorThread.cpp @@ -0,0 +1,199 @@ +#include "MonitorThread.h" +#include <LogFilter.h> + +_IRA_LOGFILTER_IMPORT; + +CMonitorThread::CMonitorThread(const ACE_CString& name,CComponentCore *param, + const ACS::TimeInterval& responseTime,const ACS::TimeInterval& sleepTime) : ACS::Thread(name,responseTime,sleepTime), m_core(param) +{ + AUTO_TRACE("CMonitorThread::CMonitorThread()"); + m_core=param; +} + +CMonitorThread::~CMonitorThread() +{ + AUTO_TRACE("CMonitorThread::~CMonitorThread()"); +} + +void CMonitorThread::onStart() +{ + AUTO_TRACE("CMonitorThread::onStart()"); + m_currentStage=VACUUM; +} + + void CMonitorThread::onStop() +{ + AUTO_TRACE("CMonitorThread::onStop()"); +} + + void CMonitorThread::setLNASamplingTime(const DDWORD& time) +{ + m_currentResponseTime=getResponseTime(); + m_currentSampling=time*10; // uSec to 100 nanoSec + if (m_currentResponseTime<m_currentSampling+m_currentSampling/10) { + m_currentResponseTime=m_currentSampling+m_currentSampling/10; // force the response time to be at least 10% more than sampling time + ACS_LOG(LM_FULL_INFO, + "CMonitorThread::setLNASamplingTime", + ( + LM_WARNING, + "The watchdog response time has been adjusted to fit sampling time: %llu uSec", + static_cast<long long unsigned int>(m_currentResponseTime)/10 + ) + ); + setResponseTime(m_currentResponseTime); + } +} + + void CMonitorThread::runLoop() +{ + m_core->updateComponent(); + switch( m_currentStage) { + case VACUUM: { + m_currentStage=STATUS; + try { + m_core->updateVacuum(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case STATUS: { + m_currentStage=LNA; + break; + } + case LNA: { + try { + m_core->updateLNAControls(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + m_currentStage=CTEMPCOOLHEAD; + break; + } + case CTEMPCOOLHEAD: { + m_currentStage=CTEMPCOOLHEADW; + try { + m_core->updateCryoCoolHead(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case CTEMPCOOLHEADW: { + m_currentStage=CTEMPLNA; + try { + m_core->updateCryoCoolHeadWin(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case CTEMPLNA: { + m_currentStage=CTEMPLNAW; + try { + m_core->updateCryoLNA(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case CTEMPLNAW: { + m_currentStage=ENVTEMP; + try { + m_core->updateCryoLNAWin(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case ENVTEMP: { + m_currentStage=REMOTE; + try { + m_core->updateEnvironmentTemperature(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case REMOTE: { + m_currentStage=COOLHEAD; + try { + m_core->updateIsRemote(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case COOLHEAD: { + m_currentStage=VACUUMPUMP; + try { + m_core->updateCoolHead(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case VACUUMPUMP: { + m_currentStage=VACUUMVALVE; + try { + m_core->updateVacuumPump(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case VACUUMVALVE: { + m_currentStage=NOISEMARK; + try { + m_core->updateVacuumValve(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case NOISEMARK: { + m_currentStage=UNLOCKED; + try { + m_core->updateNoiseMark(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + case UNLOCKED: { + m_currentStage=VACUUM; + try { + m_core->checkLocalOscillator(); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,impl,ex,"CMonitorThread::runLoop"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + break; + } + } +} diff --git a/SRT/Servers/SRT5GHzReceiver/src/SRT5GHzImpl.cpp b/SRT/Servers/SRT5GHzReceiver/src/SRT5GHzImpl.cpp new file mode 100644 index 000000000..14ced49fa --- /dev/null +++ b/SRT/Servers/SRT5GHzReceiver/src/SRT5GHzImpl.cpp @@ -0,0 +1,581 @@ +#include "SRT5GHzImpl.h" +#include "DevIOBandWidth.h" +#include "DevIOInitialFrequency.h" +#include "DevIOLocalOscillator.h" +#include "DevIOPolarization.h" +#include "DevIOMode.h" +#include "DevIOVacuum.h" +#include "DevIOCryoTemperatureCoolHead.h" +#include "DevIOCryoTemperatureCoolHeadWindow.h" +#include "DevIOCryoTemperatureLNA.h" +#include "DevIOCryoTemperatureLNAWindow.h" +#include "DevIOEnvTemperature.h" +#include "DevIOLNAControls.h" +#include "DevIOStatus.h" +#include "DevIOComponentStatus.h" +#include <LogFilter.h> + + +_IRA_LOGFILTER_DECLARE; + +SRT5GHzImpl::SRT5GHzImpl(const ACE_CString &CompName,maci::ContainerServices *containerServices) : + CharacteristicComponentImpl(CompName,containerServices), + m_plocalOscillator(this), + m_pfeeds(this), + m_pIFs(this), + m_pinitialFrequency(this), + m_pbandWidth(this), + m_ppolarization(this), + m_pstatus(this), + m_pvacuum(this), + m_pVd_1(this), + m_pVd_2(this), + m_pId_1(this), + m_pId_2(this), + m_pVg_1(this), + m_pVg_2(this), + m_pcryoTemperatureCoolHead(this), + m_pcryoTemperatureCoolHeadWindow(this), + m_pcryoTemperatureLNA(this), + m_pcryoTemperatureLNAWindow(this), + m_penvironmentTemperature(this), + m_pmode(this), + m_preceiverStatus(this) +{ + AUTO_TRACE("SRT5GHzImpl::SRT5GHzImpl()"); +} + +SRT5GHzImpl::~SRT5GHzImpl() +{ + AUTO_TRACE("SRT5GHzImpl::~SRT5GHzImpl()"); +} + +//throw (ACSErr::ACSbaseExImpl) +void SRT5GHzImpl::initialize() +{ + AUTO_TRACE("SRT5GHzImpl::initialize()"); + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZING")); + m_core.initialize(getContainerServices()); + m_monitor=NULL; + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED")); +} + +//throw (ACSErr::ACSbaseExImpl) +void SRT5GHzImpl::execute() +{ + AUTO_TRACE("SRT5GHzImpl::execute()"); + ACS::Time timestamp; + const CConfiguration *config=m_core.execute(); //throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl,ComponentErrors::SocketErrorExImpl) + + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::execute()",(LM_INFO,"ACTIVATING_LOG_REPETITION_FILTER")); + _IRA_LOGFILTER_ACTIVATE(config->getRepetitionCacheTime(),config->getRepetitionExpireTime()); + + try { + m_plocalOscillator=new baci::ROdoubleSeq(getContainerServices()->getName()+":LO",getComponent(),new DevIOLocalOscillator(&m_core),true); + m_ppolarization=new baci::ROlongSeq(getContainerServices()->getName()+":polarization",getComponent(),new DevIOPolarization(&m_core),true); + m_pmode=new baci::ROstring(getContainerServices()->getName()+":mode",getComponent(),new DevIOMode(&m_core),true); + m_pinitialFrequency=new baci::ROdoubleSeq(getContainerServices()->getName()+":initialFrequency",getComponent(),new DevIOInitialFrequency(&m_core),true); + m_pbandWidth=new baci::ROdoubleSeq(getContainerServices()->getName()+":bandWidth",getComponent(),new DevIOBandWidth(&m_core),true); + m_pIFs=new baci::ROlong(getContainerServices()->getName()+":IFs",getComponent()); + m_pfeeds=new baci::ROlong(getContainerServices()->getName()+":feeds",getComponent()); + m_pvacuum=new baci::ROdouble(getContainerServices()->getName()+":vacuum",getComponent(),new DevIOVacuum(&m_core),true); + m_pVd_1=new baci::ROdouble(getContainerServices()->getName()+":Vd_1",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::DRAIN_VOLTAGE,0),true); + m_pVd_2=new baci::ROdouble(getContainerServices()->getName()+":Vd_2",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::DRAIN_VOLTAGE,1),true); + m_pId_1=new baci::ROdouble(getContainerServices()->getName()+":Id_1",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::DRAIN_CURRENT,0),true); + m_pId_2=new baci::ROdouble(getContainerServices()->getName()+":Id_2",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::DRAIN_CURRENT,1),true); + m_pVg_1=new baci::ROdouble(getContainerServices()->getName()+":Vg_1",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::GATE_VOLTAGE,0),true); + m_pVg_2=new baci::ROdouble(getContainerServices()->getName()+":Vg_2",getComponent(), + new DevIOLNAControls(&m_core,IRA::ReceiverControl::GATE_VOLTAGE,1),true); + m_pcryoTemperatureCoolHead=new baci::ROdouble(getContainerServices()->getName()+":cryoTemperatureCoolHead",getComponent(), + new DevIOCryoTemperatureCoolHead(&m_core),true); + m_pcryoTemperatureCoolHeadWindow=new baci::ROdouble(getContainerServices()->getName()+":cryoTemperatureCoolHeadWindow",getComponent(), + new DevIOCryoTemperatureCoolHeadWin(&m_core),true); + m_pcryoTemperatureLNA=new baci::ROdouble(getContainerServices()->getName()+":cryoTemperatureLNA",getComponent(), + new DevIOCryoTemperatureLNA(&m_core),true); + m_pcryoTemperatureLNAWindow=new baci::ROdouble(getContainerServices()->getName()+":cryoTemperatureLNAWindow",getComponent(), + new DevIOCryoTemperatureLNAWin(&m_core),true); + m_penvironmentTemperature=new baci::ROdouble(getContainerServices()->getName()+":environmentTemperature",getComponent()); + // new DevIOEnvTemperature(&m_core),true); // Is there a sensor? + m_pstatus=new baci::ROpattern(getContainerServices()->getName()+":status",getComponent(), + new DevIOStatus(&m_core),true); + m_preceiverStatus=new ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus),POA_Management::ROTSystemStatus> + (getContainerServices()->getName()+":receiverStatus",getComponent(),new DevIOComponentStatus(&m_core),true); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"SRT5GHzImpl::initialize()"); + throw dummy; + } + + // write some fixed values + m_pfeeds->getDevIO()->write(m_core.getFeeds(),timestamp); + m_pIFs->getDevIO()->write(m_core.getIFs(),timestamp); + m_core.setVacuumDefault(m_pvacuum->default_value()); + + CComponentCore *temp=&m_core; + try { + m_monitor=getContainerServices()->getThreadManager()->create<CMonitorThread,CComponentCore*> ( + "WHATCHDOG5GHZ",temp,config->getWarchDogResponseTime()*10,config->getWatchDogSleepTime()*10); + } + catch (acsthreadErrType::acsthreadErrTypeExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,_dummy,ex,"SRT5GHzImpl::execute()"); + throw _dummy; + } + catch (...) { + _THROW_EXCPT(ComponentErrors::UnexpectedExImpl,"SRT5GHzImpl::execute()"); + } + m_monitor->setLNASamplingTime(config->getLNASamplingTime()); + m_monitor->resume(); + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::execute()",(LM_INFO,"WATCH_DOG_SPAWNED")); + try { + startPropertiesMonitoring(); + } + catch (acsthreadErrType::CanNotStartThreadExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,__dummy,E,"SRT5GHzImpl::execute()"); + throw __dummy; + } + catch (ACSErrTypeCommon::NullPointerExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,__dummy,E,"SRT5GHzImpl::execute()"); + throw __dummy; + } + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::execute()",(LM_INFO,"COMPSTATE_OPERATIONAL")); +} + +void SRT5GHzImpl::cleanUp() +{ + AUTO_TRACE("SRT5GHzImpl::cleanUp()"); + stopPropertiesMonitoring(); + if (m_monitor!=NULL) { + m_monitor->suspend(); + getContainerServices()->getThreadManager()->destroy(m_monitor); + m_monitor=NULL; + } + m_core.cleanup(); + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; + CharacteristicComponentImpl::cleanUp(); +} + +void SRT5GHzImpl::aboutToAbort() +{ + AUTO_TRACE("SRT5GHzImpl::aboutToAbort()"); + if (m_monitor!=NULL) { + getContainerServices()->getThreadManager()->destroy(m_monitor); + } + m_core.cleanup(); +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::activate(const char * setup_mode) +{ + try { + m_core.activate(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::activate()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::deactivate() +{ + try { + m_core.deactivate(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::deactivate()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::calOn() +{ + try { + m_core.calOn(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::calOn()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::calOff() +{ + try { + m_core.calOff(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::calOff()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::externalCalOn() +{ + try { + m_core.externalCalOn(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl, impl, "SRT5GHzImpl::externalCalOn()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::externalCalOff() +{ + try { + m_core.externalCalOff(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl, impl, "SRT5GHzImpl::externalCalOff()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::setLO(const ACS::doubleSeq& lo) +{ + try { + m_core.setLO(lo); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::setLO()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::setMode(const char * mode) +{ + try { + m_core.setMode(mode); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::setMode()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +ACS::doubleSeq *SRT5GHzImpl::getCalibrationMark(const ACS::doubleSeq& freqs, const ACS::doubleSeq& bandwidths, const ACS::longSeq& feeds,const ACS::longSeq& ifs, + ACS::doubleSeq_out skyFreq,ACS::doubleSeq_out skyBw,CORBA::Boolean_out onoff,CORBA::Double_out scaleFactor) +{ + ACS::doubleSeq_var result=new ACS::doubleSeq; + ACS::doubleSeq_var resFreq=new ACS::doubleSeq; + ACS::doubleSeq_var resBw=new ACS::doubleSeq; + try { + m_core.getCalibrationMark(result.inout(),resFreq.inout(),resBw.inout(),freqs,bandwidths,feeds,ifs,onoff,scaleFactor); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::getCalibrationMark()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } + skyFreq=resFreq._retn(); + skyBw=resBw._retn(); + return result._retn(); +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +CORBA::Long SRT5GHzImpl::getFeeds(ACS::doubleSeq_out X,ACS::doubleSeq_out Y,ACS::doubleSeq_out power) +{ + ACS::doubleSeq_var tempX=new ACS::doubleSeq; + ACS::doubleSeq_var tempY=new ACS::doubleSeq; + ACS::doubleSeq_var tempPower=new ACS::doubleSeq; + long res; + try { + res=m_core.getFeeds(tempX.inout(),tempY.inout(),tempPower.inout()); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::getFeeds()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } + X=tempX._retn(); + Y=tempY._retn(); + power=tempPower._retn(); + return res; +} + +// throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::getIFOutput( + const ACS::longSeq& feeds, + const ACS::longSeq& ifs, + ACS::doubleSeq_out freqs, + ACS::doubleSeq_out bw, + ACS::longSeq_out pols, + ACS::doubleSeq_out LO +) +{ + ACS::doubleSeq_var freqs_res = new ACS::doubleSeq; + ACS::doubleSeq_var bw_res = new ACS::doubleSeq; + ACS::longSeq_var pols_res = new ACS::longSeq; + ACS::doubleSeq_var LO_res = new ACS::doubleSeq; + + try { + m_core.getIFOutput(feeds, ifs, freqs_res.inout(), bw_res.inout(), pols_res.inout(), LO_res.inout()); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::getIFOutput()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } + freqs = freqs_res._retn(); + bw = bw_res._retn(); + pols = pols_res._retn(); + LO = LO_res._retn(); +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +CORBA::Double SRT5GHzImpl::getTaper(CORBA::Double freq,CORBA::Double bandWidth,CORBA::Long feed,CORBA::Long ifNumber,CORBA::Double_out waveLen) +{ + CORBA::Double res; + double wL; + try { + res=(CORBA::Double)m_core.getTaper(freq,bandWidth,feed,ifNumber,wL); + waveLen=wL; + return res; + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::getTaper()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnLNAsOn() +{ + try { + m_core.lnaOn(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::turnLNAsOn()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnLNAsOff() +{ + try { + m_core.lnaOff(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::turnLNAsOff()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnVacuumSensorOn() +{ + try { + m_core.vacuumSensorOn(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::turnVacuumSensorOn()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnVacuumSensorOff() +{ + try { + m_core.vacuumSensorOff(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getReceiversErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SRT5GHzImpl::turnVacuumSensorOff()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnAntennaUnitOn() +{ + //has it to be implemented? + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::turnAntennaUnitOn()",(LM_WARNING,"Antenna Unit not supported")); +} + +//throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ReceiversErrors::ReceiversErrorsEx) +void SRT5GHzImpl::turnAntennaUnitOff() +{ + //has it to be implemented? + ACS_LOG(LM_FULL_INFO,"SRT5GHzImpl::turnAntennaUnitOff()",(LM_NOTICE,"Antenna Unit not supported")); +} + +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdoubleSeq,m_plocalOscillator,LO); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROpattern,m_pstatus,status); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROlongSeq,m_ppolarization,polarization); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROlong,m_pfeeds,feeds); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROlong,m_pIFs,IFs); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdoubleSeq,m_pbandWidth,bandWidth); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdoubleSeq,m_pinitialFrequency,initialFrequency); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pvacuum,vacuum); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pVd_1,Vd_1); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pVd_2,Vd_2); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pId_1,Id_1); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pId_2,Id_2); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pVg_1,Vg_1); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pVg_2,Vg_2); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pcryoTemperatureCoolHead,cryoTemperatureCoolHead); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pcryoTemperatureCoolHeadWindow,cryoTemperatureCoolHeadWindow); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pcryoTemperatureLNA,cryoTemperatureLNA); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_pcryoTemperatureLNAWindow,cryoTemperatureLNAWindow); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROdouble,m_penvironmentTemperature,environmentTemperature); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,ACS::ROstring,m_pmode,mode); +_PROPERTY_REFERENCE_CPP(SRT5GHzImpl,Management::ROTSystemStatus,m_preceiverStatus,receiverStatus); + + +/* --------------- [ MACI DLL support functions ] -----------------*/ +#include <maciACSComponentDefines.h> +MACI_DLL_SUPPORT_FUNCTIONS(SRT5GHzImpl) diff --git a/SystemMake/Makefile b/SystemMake/Makefile index 683311521..0eeb149da 100644 --- a/SystemMake/Makefile +++ b/SystemMake/Makefile @@ -52,7 +52,7 @@ SRT_INTERFACES:=SRTAntennaInterface SRTActiveSurfaceInterface \ SRTReceiversInterface SRT_LIBRARIES:=SRTMinorServoLibrary SRT_SERVERS:=SRTMount SRTActiveSurfaceBoss SRTMinorServo SRTKBandMFReceiver \ - SRT7GHzReceiver SRTLPBandReceiver SRTPyIFDistributor WeatherStation + SRT7GHzReceiver SRT5GHzReceiver SRTLPBandReceiver SRTPyIFDistributor WeatherStation SRT_CLIENTS:=SRTActiveSurfaceGUIClient SRTMountTextClient \ MinorServoBossTextClient SRT_MISC:=SRTScripts @@ -83,7 +83,8 @@ ifeq ($(STATION),SRT) SRTAntennaInterface SRTActiveSurfaceInterface SRTWeatherStationInterface SRTReceiversInterface \ SlaLibrary IRALibrary TextWindowLibrary ParserLibrary XarcosLibrary SRTMinorServoLibrary ComponentProxy ModbusChannel PyTestingLibrary \ AntennaBoss Observatory OTF PointingModel Refraction SkySource Moon FitsWriter Scheduler ReceiversBoss ExternalClients CalibrationTool TotalPower NoiseGenerator DBBC CustomLogger XBackend \ - SRTMount SRTActiveSurfaceBoss SRTMinorServo SRTKBandMFReceiver SRTWeatherStation SRT7GHzReceiver SRTLPBandReceiver PyDewarPositioner \ + SRTMount SRTActiveSurfaceBoss SRTMinorServo SRTKBandMFReceiver SRTWeatherStation SRT7GHzReceiver SRTLPBandReceiver \ + SRT5GHzReceiver PyDewarPositioner \ SRTPyIFDistributor AntennaBossTextClient ObservatoryTextClient GenericBackendTextClient ReceiversBossTextClient SystemTerminal CaltoolClient CustomLoggingClient SchedulerTextClient \ SRTActiveSurfaceGUIClient SRTMountTextClient MinorServoBossTextClient \ Plotter KStars SRTScripts -- GitLab From 06733f741c0ef6f95d12a3bb1712788dfbc0bd91 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 28 Nov 2023 15:05:26 +0000 Subject: [PATCH 042/150] Some CDB updates --- .../Components/AS/SECTOR01/LAN01/LAN01.xml | 26 +++++++-------- .../Components/AS/SECTOR01/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR01/LAN03/LAN03.xml | 30 ++++++++--------- .../Components/AS/SECTOR01/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR01/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR01/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR01/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR01/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR01/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR01/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR01/LAN11/LAN11.xml | 32 +++++++++---------- .../Components/AS/SECTOR01/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN01/LAN01.xml | 28 ++++++++-------- .../Components/AS/SECTOR02/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN03/LAN03.xml | 32 +++++++++---------- .../Components/AS/SECTOR02/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR02/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR02/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR02/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR02/LAN11/LAN11.xml | 30 ++++++++--------- .../Components/AS/SECTOR02/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN01/LAN01.xml | 26 +++++++-------- .../Components/AS/SECTOR03/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN03/LAN03.xml | 30 ++++++++--------- .../Components/AS/SECTOR03/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR03/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR03/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR03/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR03/LAN11/LAN11.xml | 32 +++++++++---------- .../Components/AS/SECTOR03/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN01/LAN01.xml | 28 ++++++++-------- .../Components/AS/SECTOR04/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN03/LAN03.xml | 32 +++++++++---------- .../Components/AS/SECTOR04/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR04/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR04/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR04/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR04/LAN11/LAN11.xml | 30 ++++++++--------- .../Components/AS/SECTOR04/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN01/LAN01.xml | 26 +++++++-------- .../Components/AS/SECTOR05/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN03/LAN03.xml | 30 ++++++++--------- .../Components/AS/SECTOR05/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR05/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR05/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR05/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR05/LAN11/LAN11.xml | 32 +++++++++---------- .../Components/AS/SECTOR05/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN01/LAN01.xml | 28 ++++++++-------- .../Components/AS/SECTOR06/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN03/LAN03.xml | 32 +++++++++---------- .../Components/AS/SECTOR06/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR06/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR06/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR06/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR06/LAN11/LAN11.xml | 30 ++++++++--------- .../Components/AS/SECTOR06/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN01/LAN01.xml | 26 +++++++-------- .../Components/AS/SECTOR07/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN03/LAN03.xml | 30 ++++++++--------- .../Components/AS/SECTOR07/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR07/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR07/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR07/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR07/LAN11/LAN11.xml | 32 +++++++++---------- .../Components/AS/SECTOR07/LAN12/LAN12.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN01/LAN01.xml | 28 ++++++++-------- .../Components/AS/SECTOR08/LAN02/LAN02.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN03/LAN03.xml | 32 +++++++++---------- .../Components/AS/SECTOR08/LAN04/LAN04.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN05/LAN05.xml | 26 +++++++-------- .../Components/AS/SECTOR08/LAN06/LAN06.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN07/LAN07.xml | 30 ++++++++--------- .../Components/AS/SECTOR08/LAN08/LAN08.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN09/LAN09.xml | 26 +++++++-------- .../Components/AS/SECTOR08/LAN10/LAN10.xml | 18 +++++------ .../Components/AS/SECTOR08/LAN11/LAN11.xml | 30 ++++++++--------- .../Components/AS/SECTOR08/LAN12/LAN12.xml | 18 +++++------ SRT/Configuration/CDB/alma/AS/Boss/Boss.xml | 12 +------ .../ExternalClients/ExternalClients.xml | 6 ++-- .../RFIMonitoring/RFIMonitoring.xml | 6 ++-- 99 files changed, 1123 insertions(+), 1133 deletions(-) diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml index 8bc5508cc..e8942676e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml index 6391c8df3..231c3bb71 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml index d439973c1..01579f7be 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml index 6d33e567d..e192f6bf0 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml index 57ea31e36..ead90682f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml index 5cc781c38..4bade23d1 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml index 5aac64ded..f81bf8281 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml index 7d8f9feb3..d0cecd58c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml index fa91a50ea..3333f401a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml index b2310ec7f..fea579d38 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml index 2aa9b8e1d..bb4af221b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml index 2a9007dd5..d8e56106d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml index caa700e97..52dc6c157 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml index 16e89b6d9..2157b0597 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml index b6d31e4cc..6d712909a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml index a9fdc2d88..a9626036f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml index 29abc97fc..6b7e46ec9 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml index f360b7e7a..9e45bab17 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml index 999066c02..9666dff3a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml index 295606563..c43dfe99d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml index 26a03b430..5ede45ebd 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml index 09d1d964c..d8a2e8896 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml index e96617e9a..095bc39a3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml index 744444bd5..cae010a49 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml index 11e898b00..87d0f3205 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml index 3def242bb..cd8f2580f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml index 54a6ea0e4..48388e3a2 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml index c22932d1a..db9c6666e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml index 5331ea2b7..582d5a928 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml index 12bcaf600..9d73c6621 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml index a1370059f..c5512f87b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml index 1f0e25636..845b6072a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml index 8699f989e..94cf298cb 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml index e3b8bf8f4..acb51354c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml index b55ec707c..0302f4250 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml index f6689b087..dcdcbf2dd 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml index 5d4fcb766..66326fc50 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml index ce1b77284..9686c34ba 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml index 5cf57b618..55aae257d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml index 12401d925..1862b31bb 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml index 96e61c5cc..0028e40ad 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml index cec53799d..56a45c10f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml index 1900df40d..dcd347f71 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml index fd85efc77..351010da3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml index b637f43ad..0209db330 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml index ea79c93a5..e0ebdaf01 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml index 304c5334a..83101bb08 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml index 0a6229206..4408f2d95 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml index ef39cebf7..d6b92595b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml index 3bd9fe4ee..1969dc8f4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml index df8f0bb14..32200ba2b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml index b7702ace5..f03cb859e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml index e75901745..f0a5e1655 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml index 7ed23e07f..15dc033a9 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml index f2dde4d04..3cdbf85e4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml index 131d98aac..6065d5ce9 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml index 3e1955bc1..aeaae849b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml index ee372d3c1..9a58a14dd 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml index 11749f479..3d9545964 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml index 7ea89856d..d50332639 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR05/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer05" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml index 38a9b181a..55396e1be 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml index cf0a2ad42..f1b5d74e8 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml index d468eda2c..0480687c6 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml index d4189765d..cfd67e74a 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml index a67365828..63411a875 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml index 3ef5dd8c7..ee100c060 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml index cdbcef502..91347f499 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml index 5d9abb89d..65d06e24f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml index a41b056f7..343b413e3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml index 0498a63c6..ff59156e8 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml index 25efd6430..655f6425c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml index 3791a78c6..67dcf4264 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR06/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer06" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml index 3b2ce1c76..4a6957b9c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN01/LAN01.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml index d7ad9cbc3..7d3fe67cf 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml index 0e50139fb..abbded010 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN03/LAN03.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml index 0ca0c44d1..a93071da4 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml index ed705d2e5..d0603a2c6 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml index 6a1ba51df..4d5d4491e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml index 5714b794a..11ec6a180 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml index 24f9c84f1..4b63d4e43 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml index ae84c1d81..414e2feda 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml index 860a35c33..fb3b2067d 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml index 36fb1d033..314520a74 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN11/LAN11.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml index 5c2b50f19..765e1a726 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR07/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer07" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml index 020181fb5..1c162760b 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN01/LAN01.xml @@ -4,19 +4,19 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD17" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD17" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml index 801a3c8de..ec5342599 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN02/LAN02.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml index f7ebec3de..340b60fa7 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN03/LAN03.xml @@ -4,21 +4,21 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD16" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD16" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml index 91e991e74..912cc820f 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN04/LAN04.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml index b0169afd9..e13bb61fe 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN05/LAN05.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml index dfaa871f3..96089448e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN06/LAN06.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml index df6a67575..2a3300a16 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN07/LAN07.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml index 8d160570b..f689948b3 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN08/LAN08.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml index a9d25aed4..319cd9f6c 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN09/LAN09.xml @@ -4,18 +4,18 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml index b07e1d1b4..6daa3f300 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN10/LAN10.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml index 899028eb8..1573bc289 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN11/LAN11.xml @@ -4,20 +4,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD01" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD02" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD03" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD04" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD05" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD06" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml index 600054140..a2c09e33e 100644 --- a/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml +++ b/SRT/Configuration/CDB/MACI/Components/AS/SECTOR08/LAN12/LAN12.xml @@ -4,14 +4,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"> - <e Name="USD07" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD08" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD09" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD10" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD11" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD12" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD13" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD14" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> - <e Name="USD15" Code="usdImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD08" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD09" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD10" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD11" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD12" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD13" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD14" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> + <e Name="USD15" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="SRTActiveSurfaceContainer08" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/SRT/Configuration/CDB/alma/AS/Boss/Boss.xml b/SRT/Configuration/CDB/alma/AS/Boss/Boss.xml index 4bb5f1cfc..3482c5193 100644 --- a/SRT/Configuration/CDB/alma/AS/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/AS/Boss/Boss.xml @@ -1,17 +1,7 @@ <?xml version='1.0' encoding='ISO-8859-1'?> -<SRTActiveSurfaceBoss - xmlns="urn:schemas-cosylab-com:SRTActiveSurfaceBoss:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - WatchingThreadTime="200000" - WorkingThreadTime="500000" - RepetitionCacheTime="2000000" - RepetitionExpireTime="5000000" - profile="4"> +<SRTActiveSurfaceBoss xmlns="urn:schemas-cosylab-com:SRTActiveSurfaceBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" WatchingThreadTime="200000" WorkingThreadTime="500000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" profile="4"> <status /> <enabled /> <pprofile /> <tracking /> </SRTActiveSurfaceBoss> - diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/ExternalClients/ExternalClients.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/ExternalClients/ExternalClients.xml index 74b1e4cdd..2c525ef7f 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/ExternalClients/ExternalClients.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/ExternalClients/ExternalClients.xml @@ -7,11 +7,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - IPAddress="192.168.200.203" + IPAddress="0.0.0.0" Port="30000" - ReceiveTimeout="10000000" + ReceiveTimeout="10000000" ControlThreadPeriod="10000000" SuperVisor="Gavino"> - <status description="The status of the external client component" /> + <status description="The status of the external client component" /> </ExternalClients> diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/RFIMonitoring/RFIMonitoring.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/RFIMonitoring/RFIMonitoring.xml index 66085c8b3..db61aa7aa 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/RFIMonitoring/RFIMonitoring.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/RFIMonitoring/RFIMonitoring.xml @@ -7,11 +7,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - IPAddress="192.168.200.203" + IPAddress="0.0.0.0" Port="40000" - ReceiveTimeout="10000000" + ReceiveTimeout="10000000" ControlThreadPeriod="10000000" SuperVisor="Gavino"> - <status description="The status of the RFI monitoring component" /> + <status description="The status of the RFI monitoring component" /> </RFIMonitoring> -- GitLab From f5920395ff34e988a59af8d6d8725a965464d528 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 28 Nov 2023 15:15:55 +0000 Subject: [PATCH 043/150] Minor Servos update --- .../MACI/Components/MINORSERVO/Boss/Boss.xml | 9 +- .../MACI/Components/MINORSERVO/GFR/GFR.xml | 7 +- .../MACI/Components/MINORSERVO/SRP/GFR.xml | 14 + .../MACI/Components/MINORSERVO/SRP/SRP.xml | 8 +- .../MinorServoBossContainer.xml | 20 +- .../GFR/LookupTables/LookupTables.xml | 42 ++ .../MinorServo/GFR/Properties/Properties.xml | 22 + .../M3R/LookupTables/LookupTables.xml | 33 ++ .../MinorServo/M3R/Properties/Properties.xml | 22 + .../MinorServo/PFP/Properties/Properties.xml | 32 ++ .../SRP/LookupTables/LookupTables.xml | 106 +++++ .../MinorServo/SRP/Properties/Properties.xml | 40 ++ .../alma/MANAGEMENT/FitsZilla/FitsZilla.xml | 2 +- SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- SRT/CDB/alma/MANAGEMENT/Point/Point.xml | 2 +- SRT/CDB/alma/MINORSERVO/Boss/Boss.xml | 207 +-------- SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 362 +-------------- SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 363 +-------------- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 364 +-------------- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 365 +-------------- SRT/CDB/alma/MINORSERVO/Socket/Socket.xml | 12 + .../idl/SRTMinorServo.idl | 60 +++ .../idl/SRTMinorServoBoss.idl | 74 +++ .../idl/SRTMinorServoCommon.idl | 131 ++++++ .../idl/SRTMinorServoCommon.midl | 84 ++++ .../SRTMinorServoInterface/src/Makefile | 65 +++ .../SRTMinorServoInterface/test/Makefile | 92 ++++ .../test/external/__init__.py | 0 .../test/functional/__init__.py | 0 .../test/functional/commands/__init__.py | 0 .../functional/commands/test_servoSetup.py | 62 +++ .../commands/test_setServoASConfiguration.py | 44 ++ .../test_setServoElevationTracking.py | 46 ++ .../commands/test_setServoOffset.py | 38 ++ .../test/functional/test_clearUserOffset.py | 58 +++ .../test/functional/test_getAxesInfo.py | 92 ++++ .../test/functional/test_getAxesPosition.py | 87 ++++ .../functional/test_getCentralScanPosition.py | 58 +++ .../test/functional/test_position.py | 126 +++++ .../test/functional/test_scan.py | 430 ++++++++++++++++++ .../functional/test_setASConfiguration.py | 56 +++ .../functional/test_setElevationTracking.py | 56 +++ .../test/functional/test_systemOffset.py | 95 ++++ .../test/functional/test_userOffset.py | 96 ++++ .../test/pyunit/__init__.py | 0 .../SRTMinorServoInterface/test/unittest.cpp | 6 + .../src/SRTMinorServoCommandLibrary.cpp | 2 +- .../config/CDB/schemas/SRTMinorServo.xsd | 61 +++ .../config/CDB/schemas/SRTMinorServoBoss.xsd | 71 +++ .../CDB/schemas/SRTMinorServoLookupTable.xsd | 44 ++ .../CDB/schemas/SRTMinorServoProperties.xsd | 34 ++ .../CDB/schemas/SRTMinorServoSocket.xsd | 32 ++ SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 213 +++++++++ .../include/SRTMinorServoBossCore.h | 78 ++++ .../include/SRTMinorServoBossImpl.h | 93 ++++ .../SRTMinorServo/include/SRTMinorServoImpl.h | 142 ++++++ .../include/SRTMinorServoParkThread.h | 68 +++ .../include/SRTMinorServoSetupThread.h | 68 +++ .../include/SRTMinorServoSocket.h | 31 +- .../include/SRTMinorServoStatusThread.h | 65 +++ .../SRTMinorServo/include/SuppressWarnings.h | 12 + SRT/Servers/SRTMinorServo/src/Makefile | 24 +- .../src/SRTBaseMinorServoImpl.cpp | 318 +++++++++++++ .../src/SRTGenericMinorServoImpl.cpp | 15 + .../src/SRTMinorServoBossCore.cpp | 213 +++++++++ .../src/SRTMinorServoBossImpl.cpp | 250 ++++++++++ .../src/SRTMinorServoParkThread.cpp | 59 +++ .../src/SRTMinorServoSetupThread.cpp | 111 +++++ .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 62 ++- .../src/SRTMinorServoStatusThread.cpp | 47 ++ .../src/SRTProgramTrackMinorServoImpl.cpp | 34 ++ 71 files changed, 4410 insertions(+), 1627 deletions(-) create mode 100644 SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml create mode 100644 SRT/CDB/alma/MINORSERVO/Socket/Socket.xml create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/src/Makefile create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/Makefile create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/external/__init__.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/__init__.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/__init__.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd create mode 100644 SRT/Servers/SRTMinorServo/include/MSDevIOs.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SuppressWarnings.h create mode 100644 SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp diff --git a/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml b/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml index 2705230c3..b7a0bfd41 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Boss" - Code="MinorServoBossImpl" + Code="SRTMinorServoBossImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/MinorServoBoss:1.0" - Container="MinorServoBossContainer" - Default="true" - + Type="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" + Container="MinorServoContainer" + Default="true" /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml b/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml index ed2c44f77..23da6db86 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="GFR" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" - Default="true" - + Default="true" /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml b/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml new file mode 100644 index 000000000..6e6b16d10 --- /dev/null +++ b/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="GFR" + Code="SRTGenericMinorServoImpl" + ImplLang="cpp" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" + Container="MinorServoContainer" + Default="true" +/> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml b/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml index 4534c3d82..b957480d6 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml @@ -5,11 +5,11 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Name="SRP" - Code="WPServoImpl" + Name="SRP" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" - Default="true" + Default="true" /> diff --git a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml index 64fcda240..508635633 100644 --- a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml @@ -15,17 +15,13 @@ <cdb:e string="baci" /> </Autoload> - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1"> + </LoggingConfig> </Container> - - - diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml new file mode 100644 index 000000000..715f7031c --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -0,0 +1,42 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <!-- Primario - GFR not used --> + <Primario><axis>ROTATION</axis> <coefficients></coefficients></Primario> + + <!-- Gregoriano1 == CCG (initialized with KKG) --> + <Gregoriano1><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano1> + <!-- Gregoriano2 == KKG --> + <Gregoriano2><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano2> + <!-- Gregoriano3 --> + <Gregoriano3><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano3> + <!-- Gregoriano4 --> + <Gregoriano4><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano4> + <!-- Gregoriano5 --> + <Gregoriano5><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano5> + <!-- Gregoriano6 --> + <Gregoriano6><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano6> + <!-- Gregoriano7 --> + <Gregoriano7><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano7> + <!-- Gregoriano8 --> + <Gregoriano8><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano8> + + <!-- BWG1 - GFR open --> + <BWG1><axis>ROTATION</axis> <coefficients>0</coefficients></BWG1> + <!-- BWG2 - GFR open --> + <BWG2><axis>ROTATION</axis> <coefficients>0</coefficients></BWG2> + <!-- BWG3 - GFR open --> + <BWG3><axis>ROTATION</axis> <coefficients>0</coefficients></BWG3> + <!-- BWG4 - GFR open --> + <BWG4><axis>ROTATION</axis> <coefficients>0</coefficients></BWG4> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml new file mode 100644 index 000000000..0c087d882 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml new file mode 100644 index 000000000..ce0cb0857 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <!-- Primary and gregorian configurations - M3R not used --> + <Primario><axis>ROTATION</axis> <coefficients>0</coefficients></Primario> + <Gregoriano1><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano1> + <Gregoriano2><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano2> + <Gregoriano3><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano3> + <Gregoriano4><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano4> + <Gregoriano5><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano5> + <Gregoriano6><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano6> + <Gregoriano7><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano7> + <Gregoriano8><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano8> + + <!-- BWG1 --> + <BWG1><axis>ROTATION</axis> <coefficients>0</coefficients></BWG1> + <!-- BWG2 --> + <BWG2><axis>ROTATION</axis> <coefficients>0</coefficients></BWG2> + <!-- BWG3 --> + <BWG3><axis>ROTATION</axis> <coefficients>0</coefficients></BWG3> + <!-- BWG4 --> + <BWG4><axis>ROTATION</axis> <coefficients>0</coefficients></BWG4> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml new file mode 100644 index 000000000..0c087d882 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml new file mode 100644 index 000000000..0dd96f036 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -0,0 +1,32 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <axes_enabled><property_name>X_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Z_MASTER_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></axes_enabled> + + <physical_positions><property_name>ELONG_X</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_SLAVE</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_SLAVE</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RTHETA</property_name></virtual_positions> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..3c2c8cfcb --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -0,0 +1,106 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <Primario><axis>TX</axis> <coefficients>0 </coefficients></Primario> + <Primario><axis>TY</axis> <coefficients>0 </coefficients></Primario> + <Primario><axis>TZ</axis> <coefficients>0 </coefficients></Primario> + <Primario><axis>RX</axis> <coefficients>0 </coefficients></Primario> + <Primario><axis>RY</axis> <coefficients>0 </coefficients></Primario> + <Primario><axis>RZ</axis> <coefficients>0 </coefficients></Primario> + + <!-- Gregoriano1 == CCB (initialized with KKG) --> + <Gregoriano1><axis>TX</axis> <coefficients>-1.5 </coefficients></Gregoriano1> + <Gregoriano1><axis>TY</axis> <coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></Gregoriano1> + <Gregoriano1><axis>TZ</axis> <coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></Gregoriano1> + <Gregoriano1><axis>RX</axis> <coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></Gregoriano1> + <Gregoriano1><axis>RY</axis> <coefficients>-0.03611111111111111 </coefficients></Gregoriano1> + <Gregoriano1><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano1> + + <!-- Gregoriano2 == KKG --> + <Gregoriano2><axis>TX</axis> <coefficients>-1.5 </coefficients></Gregoriano2> + <Gregoriano2><axis>TY</axis> <coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></Gregoriano2> + <Gregoriano2><axis>TZ</axis> <coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></Gregoriano2> + <Gregoriano2><axis>RX</axis> <coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></Gregoriano2> + <Gregoriano2><axis>RY</axis> <coefficients>-0.03611111111111111 </coefficients></Gregoriano2> + <Gregoriano2><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano2> + + <Gregoriano3><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano3> + <Gregoriano3><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano3> + <Gregoriano3><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano3> + <Gregoriano3><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano3> + <Gregoriano3><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano3> + <Gregoriano3><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano3> + + <Gregoriano4><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano4> + <Gregoriano4><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano4> + <Gregoriano4><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano4> + <Gregoriano4><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano4> + <Gregoriano4><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano4> + <Gregoriano4><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano4> + + <Gregoriano5><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano5> + <Gregoriano5><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano5> + <Gregoriano5><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano5> + <Gregoriano5><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano5> + <Gregoriano5><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano5> + <Gregoriano5><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano5> + + <Gregoriano6><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano6> + <Gregoriano6><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano6> + <Gregoriano6><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano6> + <Gregoriano6><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano6> + <Gregoriano6><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano6> + <Gregoriano6><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano6> + + <Gregoriano7><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano7> + <Gregoriano7><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano7> + <Gregoriano7><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano7> + <Gregoriano7><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano7> + <Gregoriano7><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano7> + <Gregoriano7><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano7> + + <Gregoriano8><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano8> + <Gregoriano8><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano8> + <Gregoriano8><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano8> + <Gregoriano8><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano8> + <Gregoriano8><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano8> + <Gregoriano8><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano8> + + <BWG1><axis>TX</axis> <coefficients>0 </coefficients></BWG1> + <BWG1><axis>TY</axis> <coefficients>0 </coefficients></BWG1> + <BWG1><axis>TZ</axis> <coefficients>0 </coefficients></BWG1> + <BWG1><axis>RX</axis> <coefficients>0 </coefficients></BWG1> + <BWG1><axis>RY</axis> <coefficients>0 </coefficients></BWG1> + <BWG1><axis>RZ</axis> <coefficients>0 </coefficients></BWG1> + + <BWG2><axis>TX</axis> <coefficients>0 </coefficients></BWG2> + <BWG2><axis>TY</axis> <coefficients>0 </coefficients></BWG2> + <BWG2><axis>TZ</axis> <coefficients>0 </coefficients></BWG2> + <BWG2><axis>RX</axis> <coefficients>0 </coefficients></BWG2> + <BWG2><axis>RY</axis> <coefficients>0 </coefficients></BWG2> + <BWG2><axis>RZ</axis> <coefficients>0 </coefficients></BWG2> + <BWG3><axis>TX</axis> <coefficients>0 </coefficients></BWG3> + + <BWG3><axis>TY</axis> <coefficients>0 </coefficients></BWG3> + <BWG3><axis>TZ</axis> <coefficients>0 </coefficients></BWG3> + <BWG3><axis>RX</axis> <coefficients>0 </coefficients></BWG3> + <BWG3><axis>RY</axis> <coefficients>0 </coefficients></BWG3> + <BWG3><axis>RZ</axis> <coefficients>0 </coefficients></BWG3> + + <BWG4><axis>TX</axis> <coefficients>0 </coefficients></BWG4> + <BWG4><axis>TY</axis> <coefficients>0 </coefficients></BWG4> + <BWG4><axis>TZ</axis> <coefficients>0 </coefficients></BWG4> + <BWG4><axis>RX</axis> <coefficients>0 </coefficients></BWG4> + <BWG4><axis>RY</axis> <coefficients>0 </coefficients></BWG4> + <BWG4><axis>RZ</axis> <coefficients>0 </coefficients></BWG4> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml new file mode 100644 index 000000000..896b0e8c4 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -0,0 +1,40 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <axes_enabled><property_name>Z1_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Z2_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Z3_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Y1_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>Y2_ENABLED</property_name></axes_enabled> + <axes_enabled><property_name>X1_ENABLED</property_name></axes_enabled> + + <physical_positions><property_name>ELONG_Z1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z2</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z3</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y2</property_name></physical_positions> + <physical_positions><property_name>ELONG_X1</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TY</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RX</property_name></virtual_positions> + <virtual_positions><property_name>RY</property_name></virtual_positions> + <virtual_positions><property_name>RZ</property_name></virtual_positions> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RZ</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml index c17f54267..a40bd6376 100644 --- a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +++ b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml @@ -20,7 +20,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > diff --git a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 32d8ca7d9..4c835f64c 100644 --- a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -23,7 +23,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" ActiveSurfaceBossInterface="IDL:alma/ActiveSurface/SRTActiveSurfaceBoss:1.0" CustomLoggerInterface="IDL:alma/Management/CustomLogger:1.0" WeatherStationInstance="IDL:alma/Weather/GenericWeatherStation:1.0" diff --git a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml index 88c537650..b067e56eb 100644 --- a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml +++ b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="0" diff --git a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml index d4e2d5e3d..4d647f16c 100644 --- a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -1,197 +1,24 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - Andrea Orlati, aorlati@ira.inaf.it + Authors: + Giuseppe Carboni, giuseppe.carboni@inaf.it --> -<!-- ASACTIVE means the active sufrace is enabled and changing with the elevation, - otherwise the code without the ASACTIVE suffice is the configuration with - no active sufrace enabled. ---> -<!-- The order of axises of every minor servo have to be the same as MSCU one. - Legend: - * TX means translation in X - * RX means rotation in X - - Given a setup code , if we have the following values: (C0, C1, C2), the axis value will be: - - C0 + C1*E + C2*E^2 - - Let's suppose the PFP LX is (2.222, 1.111, 0), we'll have the following value for - the PFP x axis: - - x = 2.222 + 1.111*E + 0*E**2 - - PS. The rotation unit is sec, not arc sec. ---> -<!-- The action order must be: park; active servos; none --> -<MinorServoBoss - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServoBoss + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - - CCB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (91.5590595452, -16.4202062811, 1.16941963489, -0.040640240455, 0.000733782714288, -6.62393455442e-06, 2.36410838911e-08); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (286.67); - " - CCB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (286.67); - " - - XB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-38.3143893309, 4.30888128547, -0.18265795755, 0.00350049382452, -3.17057523513e-05, 1.11006707448e-07); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (860.8); - " - XB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ = (7.92754535681, -1.73279985542, 0.147346047014, -0.00516934108597, 7.69094654954e-05, -4.0697957632e-07 ); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (860.8); - " - - KKG_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - KKG_TEST_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (83.53947196, -9.17664589, 0.42877766, -0.00940768, 0.00009361, -0.00000035); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - - KKG=" - @ PFP: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - - LLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm)= (-46.2); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PPP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - HHP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.72); TX(mm) = (1312.0); TZ(mm) = (-40.0); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - XKP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (-1060); TZ(mm) = (-45.9); - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - - slaves="GFR, M3R, PFP, SRP" -> - <!-- MinorServo Status --> - <status description="The summary status of MinorServoBoss"/> - <actualSetup description="Mnemonic code that defines a setup" /> - <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." /> - <ready description="True if the system is ready" /> - <starting description="True if the system is starting" /> - <asConfiguration description="True if the the AS configuration is active" /> - <elevationTrack description="True if the M2 position is tracking the elevation" /> - <scanActive description="True if a scan is active" /> - <scanning description="True if the system is performing a scan" /> - <tracking description="Is the minor servo system in tracking?" /> - - <!-- - MinorServoBoss Verbose Status (ROpattern) - <verbose_status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServoBoss verbose status" - format="I don't know" - units="none" - resolution="65535" - alarm_mask="1" - alarm_trigger="0" - alarm_timer_trig="0" - bitDescription="Ok, Tracking, Configuring, Parking, Parked, Warning, Failure" - whenSet="3,3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0,0" - archive_priority="1" - archive_min_int="1" - archive_max_int="1" - archive_delta="1" - /> - --> - - -</MinorServoBoss> + status_thread_period="0.05"> + + <current_configuration description="Current minor servos focal configuration" /> + <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> + <plc_time description="UNIX time of the minor servo PLC" /> + <plc_version description="PLC software version" /> + <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> + <power description="All drive cabinets power status" /> + <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> + <gregorian_cover description="Status of the gregorian cover" /> + <last_executed_command description="UNIX time of the last correctly executed command" /> + +</SRTMinorServoBoss> diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index e13e504db..c7bd27cbb 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -1,356 +1,22 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-1745,1745) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="2" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-1745, 1745)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + physical_axes="2" + virtual_axes="1"> - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_positions description="Sequence, virtual axes positions" /> + <virtual_offsets description="Sequence, virtual axes offsets" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature (ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index c741e7cd8..c7bd27cbb 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -1,357 +1,22 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-945,945) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="2" + virtual_axes="1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="3" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-945, 945)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_positions description="Sequence, virtual axes positions" /> + <virtual_offsets description="Sequence, virtual axes offsets" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 0c7cd46b3..fd8362d3f 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -1,358 +1,22 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - modified: 23/05/2013: limits - modified: 29/01/2018: changed the limits of PFP theta + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_y(-28.51,2740), x(-1400,1400), z(-199,40) --> -<!-- Park position: theta_y(2730.15), x(0), z(-195) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="5" + virtual_axes="3"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="3" - number_of_slaves="5" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="0" - zero="0" - park_position="2730.15,0,-195" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-28.51, 2740); (-1480, 1480); (-199, 40)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm or degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_positions description="Sequence, virtual axes positions" /> + <virtual_offsets description="Sequence, virtual axes offsets" /> -</WPServo> +</SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index 44730072b..5dea1dfd2 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -1,359 +1,22 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 - + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits: x(-50,50), y(-110,110), z(-110,110), theta_x(-0.25,0.25), theta_y(-0.25,0.25), theta_z(-0.25,0.25) --> -<!-- Elongation Limits: Z1(-125,125), Z2(-125,125), Z3(-125,125), Y4(-125,125), Y5(-125,125), X6(-125,125) --> -<!-- Park position (elongations): Z1(-125), Z2(-125), Z3(-125), Y4(0), Y5(0), X6(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="6" + virtual_axes="6"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="6" - number_of_slaves="7" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="1" - zero="1570.00" - park_position="-5,5,-125,0,0,0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "1" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-50, 50); (-110, 110); (-110, 110); (-0.25, 0.25); (-0.25, 0.25); (-0.25, 0.25)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_positions description="Sequence, virtual axes positions" /> + <virtual_offsets description="Sequence, virtual axes offsets" /> -</WPServo> +</SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml new file mode 100644 index 000000000..69aceac45 --- /dev/null +++ b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -0,0 +1,12 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoSocket + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IPAddress="127.0.0.1" + Port="12800"/> diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl new file mode 100644 index 000000000..29972eb8e --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -0,0 +1,60 @@ +/***************************************************************\ + * Authors: + * Giuseppe Carboni <giuseppe.carboni@inaf.it> + * + * Created: Mon Mar 06 12:30:00 CEST 2023 + * Last Modified: Mon Mar 06 12:30:00 CEST 2023 +\***************************************************************/ + +#ifndef __SRTMINORSERVO_IDL__ +#define __SRTMINORSERVO_IDL__ + +#include <baci.idl> +#include "SRTMinorServoCommon.idl" + +#pragma prefix "alma" + +module MinorServo +{ + interface SRTBaseMinorServo : ACS::CharacteristicComponent + { + readonly attribute ACS::ROboolean enabled; + + readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status; + + readonly attribute ACS::ROboolean block; + + readonly attribute ROSRTMinorServoOperativeMode operative_mode; + + readonly attribute ACS::RObooleanSeq axes_enabled; + + readonly attribute ACS::ROdoubleSeq physical_positions; + + readonly attribute ACS::ROdoubleSeq virtual_positions; + + readonly attribute ACS::ROdoubleSeq virtual_offsets; + + void status(); + + void stow(in long stow_position); + + void stop(); + + void preset(in ACS::doubleSeq coordinates); + + void offset(in ACS::doubleSeq offsets); + + void setup(in string configuration); + }; + + interface SRTGenericMinorServo : SRTBaseMinorServo + { + }; + + interface SRTProgramTrackMinorServo : SRTBaseMinorServo + { + void programTrack(in long trajectory_id, in long point_id, in double start_time, in ACS::doubleSeq coordinates); + }; +}; + +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl new file mode 100644 index 000000000..0eeb13b74 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -0,0 +1,74 @@ +/***************************************************************\ + * Authors: + * Giuseppe Carboni <giuseppe.carboni@inaf.it> + * + * Created: Mon Mar 06 12:30:00 CEST 2023 + * Last Modified: Mon Mar 06 12:30:00 CEST 2023 +\***************************************************************/ +#ifndef __SRTMINORSERVOBOSS_IDL__ +#define __SRTMINORSERVOBOSS_IDL__ + +#include <baci.idl> +#include <ComponentErrors.idl> +#include <MinorServoErrors.idl> +#include <AntennaDefinitions.idl> +#include "MinorServoDefinitions.idl" +#include "SRTMinorServoCommon.idl" + +#pragma prefix "alma" + +module MinorServo +{ + interface SRTMinorServoBoss: ACS::CharacteristicComponent + { + readonly attribute ROSRTMinorServoFocalConfiguration current_configuration; + readonly attribute ACS::ROboolean simulation_enabled; + readonly attribute ACS::ROdouble plc_time; + readonly attribute ACS::ROstring plc_version; + readonly attribute ROSRTMinorServoControlStatus control; + readonly attribute ACS::ROboolean power; + readonly attribute ACS::ROboolean emergency; + readonly attribute ROSRTMinorServoGregorianCoverStatus gregorian_cover; + readonly attribute ACS::ROdouble last_executed_command; + + void setElevationTracking(in string value) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + void setASConfiguration(in string value) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + + /** + * Starts the scan of one axis of the MinorServo target. + * + * @param starting_time the time the scan will start or 0 if the scan is required to start immediately + * @param scan structure containing the description of the scan to be executed + * @param antennaInfo auxiliary information from the antenna + * + */ + void startScan(inout ACS::Time starting_time, in MinorServoScan scan, in Antenna::TRunTimeParameters antennaInfo) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + + /** + * Closes the current scan and force the minor servo system to its normal behaviour + * @param timeToStop stores the expected epoch in which the scan will be stopped (closed). It could be zero meaning the + * scan will be closed immediately + * @throw ComponentErrors::ComponentErrorsEx + * @throw ReceiversErrors::ReceiversErrorsEx + */ + void closeScan(out ACS::Time timeToStop) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + + /** + * Checks if it is possible to execute a scan along a given axis + * + * @param starting_time the time the scan will start or 0 if the scan is required to start immediately + * @param scan structure containing the description of the scan to be executed + * @param antennaInfo auxiliary information from the antenna + * @param runTime auxiliary information computed at run time by the subsystem + */ + boolean checkScan(in ACS::Time starting_time, in MinorServoScan scan, in Antenna::TRunTimeParameters antennaInfo, out TRunTimeParameters runtime) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + + /** + * Setup all the minor servos to the given configuration + * @param configuration a string representing the given configuration + */ + void setup(in string configuration) raises (MinorServoErrors::MinorServoErrorsEx); + }; +}; + +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl new file mode 100644 index 000000000..924fb3996 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl @@ -0,0 +1,131 @@ +/******************************************************************************** $Id: JacPrep,v 1.13 2010/01/04 15:34:48 gchiozzi Exp $ +* DO NOT EDIT +* Automatically generated from ../idl/SRTMinorServoCommon.midl +* on Mon Nov 27 14:03:33 2023 +*******************************************************************************/ +#ifndef _SRTMinorServoCommon_midl_ +#define _SRTMinorServoCommon_midl_ +#ifndef _ACS_PREPROCESSED_ +#define _ACS_PREPROCESSED_ +#endif +#include <baci.idl> +#include <enumpropMACRO.idl> + + + + + + + +#pragma prefix "alma" + +module MinorServo +{ + enum SRTMinorServoFocalConfiguration + { + CONFIGURATION_UNKNOWN, + CONFIGURATION_PARK, + CONFIGURATION_PRIMARY, + CONFIGURATION_GREGORIAN1, + CONFIGURATION_GREGORIAN2, + CONFIGURATION_GREGORIAN3, + CONFIGURATION_GREGORIAN4, + CONFIGURATION_GREGORIAN5, + CONFIGURATION_GREGORIAN6, + CONFIGURATION_GREGORIAN7, + CONFIGURATION_GREGORIAN8, + CONFIGURATION_BWG1, + CONFIGURATION_BWG2, + CONFIGURATION_BWG3, + CONFIGURATION_BWG4 + }; + + + typedef sequence<SRTMinorServoFocalConfiguration> SRTMinorServoFocalConfigurationSeq; interface CBSRTMinorServoFocalConfiguration : ACS::Callback { oneway void working(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoFocalConfiguration SRTMinorServoFocalConfigurationCB; interface AlarmSRTMinorServoFocalConfiguration : ACS::Callback { oneway void alarm_raised(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoFocalConfiguration SRTMinorServoFocalConfigurationAlarm; interface PSRTMinorServoFocalConfiguration: ACS::TypelessProperty { SRTMinorServoFocalConfiguration get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoFocalConfigurationSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoFocalConfiguration default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoFocalConfigurationSeq allStates; }; + interface ROSRTMinorServoFocalConfiguration: PSRTMinorServoFocalConfiguration{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoFocalConfigurationSeq alarm_on; readonly attribute SRTMinorServoFocalConfigurationSeq alarm_off; }; + interface RWSRTMinorServoFocalConfiguration: PSRTMinorServoFocalConfiguration { ACSErr::Completion set_sync(in SRTMinorServoFocalConfiguration value); void set_async(in SRTMinorServoFocalConfiguration value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoFocalConfiguration value);}; + + + enum SRTMinorServoControlStatus + { + CONTROL_DISCOS, + CONTROL_VBRAIN + }; + + + typedef sequence<SRTMinorServoControlStatus> SRTMinorServoControlStatusSeq; interface CBSRTMinorServoControlStatus : ACS::Callback { oneway void working(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoControlStatus SRTMinorServoControlStatusCB; interface AlarmSRTMinorServoControlStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoControlStatus SRTMinorServoControlStatusAlarm; interface PSRTMinorServoControlStatus: ACS::TypelessProperty { SRTMinorServoControlStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoControlStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoControlStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoControlStatusSeq allStates; }; + interface ROSRTMinorServoControlStatus: PSRTMinorServoControlStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoControlStatusSeq alarm_on; readonly attribute SRTMinorServoControlStatusSeq alarm_off; }; + interface RWSRTMinorServoControlStatus: PSRTMinorServoControlStatus { ACSErr::Completion set_sync(in SRTMinorServoControlStatus value); void set_async(in SRTMinorServoControlStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoControlStatus value);}; + + + enum SRTMinorServoGregorianCoverStatus + { + COVER_STATUS_UNKNOWN, + COVER_STATUS_OPEN, + COVER_STATUS_CLOSED + }; + + + typedef sequence<SRTMinorServoGregorianCoverStatus> SRTMinorServoGregorianCoverStatusSeq; interface CBSRTMinorServoGregorianCoverStatus : ACS::Callback { oneway void working(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoGregorianCoverStatus SRTMinorServoGregorianCoverStatusCB; interface AlarmSRTMinorServoGregorianCoverStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoGregorianCoverStatus SRTMinorServoGregorianCoverStatusAlarm; interface PSRTMinorServoGregorianCoverStatus: ACS::TypelessProperty { SRTMinorServoGregorianCoverStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoGregorianCoverStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoGregorianCoverStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoGregorianCoverStatusSeq allStates; }; + interface ROSRTMinorServoGregorianCoverStatus: PSRTMinorServoGregorianCoverStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoGregorianCoverStatusSeq alarm_on; readonly attribute SRTMinorServoGregorianCoverStatusSeq alarm_off; }; + interface RWSRTMinorServoGregorianCoverStatus: PSRTMinorServoGregorianCoverStatus { ACSErr::Completion set_sync(in SRTMinorServoGregorianCoverStatus value); void set_async(in SRTMinorServoGregorianCoverStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoGregorianCoverStatus value);}; + + + enum SRTMinorServoCabinetStatus + { + DRIVE_CABINET_OK, + DRIVE_CABINET_WARNING, + DRIVE_CABINET_ERROR + }; + + + typedef sequence<SRTMinorServoCabinetStatus> SRTMinorServoCabinetStatusSeq; interface CBSRTMinorServoCabinetStatus : ACS::Callback { oneway void working(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoCabinetStatus SRTMinorServoCabinetStatusCB; interface AlarmSRTMinorServoCabinetStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoCabinetStatus SRTMinorServoCabinetStatusAlarm; interface PSRTMinorServoCabinetStatus: ACS::TypelessProperty { SRTMinorServoCabinetStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoCabinetStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoCabinetStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoCabinetStatusSeq allStates; }; + interface ROSRTMinorServoCabinetStatus: PSRTMinorServoCabinetStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoCabinetStatusSeq alarm_on; readonly attribute SRTMinorServoCabinetStatusSeq alarm_off; }; + interface RWSRTMinorServoCabinetStatus: PSRTMinorServoCabinetStatus { ACSErr::Completion set_sync(in SRTMinorServoCabinetStatus value); void set_async(in SRTMinorServoCabinetStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoCabinetStatus value);}; + + + enum SRTMinorServoOperativeMode + { + OPERATIVE_MODE_UNKNOWN, + OPERATIVE_MODE_SETUP, + OPERATIVE_MODE_STOW, + OPERATIVE_MODE_STOP, + OPERATIVE_MODE_PRESET, + OPERATIVE_MODE_PROGRAMTRACK + }; + + + typedef sequence<SRTMinorServoOperativeMode> SRTMinorServoOperativeModeSeq; interface CBSRTMinorServoOperativeMode : ACS::Callback { oneway void working(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoOperativeMode SRTMinorServoOperativeModeCB; interface AlarmSRTMinorServoOperativeMode : ACS::Callback { oneway void alarm_raised(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoOperativeMode SRTMinorServoOperativeModeAlarm; interface PSRTMinorServoOperativeMode: ACS::TypelessProperty { SRTMinorServoOperativeMode get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoOperativeModeSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoOperativeMode default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoOperativeModeSeq allStates; }; + interface ROSRTMinorServoOperativeMode: PSRTMinorServoOperativeMode{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoOperativeModeSeq alarm_on; readonly attribute SRTMinorServoOperativeModeSeq alarm_off; }; + interface RWSRTMinorServoOperativeMode: PSRTMinorServoOperativeMode { ACSErr::Completion set_sync(in SRTMinorServoOperativeMode value); void set_async(in SRTMinorServoOperativeMode value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoOperativeMode value);}; + + + enum SRTMinorServoBossStatus + { + BOSS_STATUS_UNCONFIGURED, + BOSS_STATUS_SETUP_IN_PROGRESS, + BOSS_STATUS_PARK_IN_PROGRESS, + BOSS_STATUS_ERROR, + BOSS_STATUS_CONFIGURED + }; + + + typedef sequence<SRTMinorServoBossStatus> SRTMinorServoBossStatusSeq; interface CBSRTMinorServoBossStatus : ACS::Callback { oneway void working(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; +typedef CBSRTMinorServoBossStatus SRTMinorServoBossStatusCB; interface AlarmSRTMinorServoBossStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; + typedef AlarmSRTMinorServoBossStatus SRTMinorServoBossStatusAlarm; interface PSRTMinorServoBossStatus: ACS::TypelessProperty { SRTMinorServoBossStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoBossStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoBossStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoBossStatusSeq allStates; }; + interface ROSRTMinorServoBossStatus: PSRTMinorServoBossStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoBossStatusSeq alarm_on; readonly attribute SRTMinorServoBossStatusSeq alarm_off; }; + interface RWSRTMinorServoBossStatus: PSRTMinorServoBossStatus { ACSErr::Completion set_sync(in SRTMinorServoBossStatus value); void set_async(in SRTMinorServoBossStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoBossStatus value);}; + +}; + +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl new file mode 100644 index 000000000..01ab82321 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -0,0 +1,84 @@ +/***************************************************************\ + * Author: Giuseppe Carboni <giuseppe.carboni@inaf.it> +\***************************************************************/ +#ifndef __SRTMINORSERVOCOMMON_MIDL__ +#define __SRTMINORSERVOCOMMON_MIDL__ + +#include <baci.idl> +#include <enumpropMACRO.idl> + +#pragma prefix "alma" + +module MinorServo +{ + enum SRTMinorServoFocalConfiguration + { + CONFIGURATION_UNKNOWN, + CONFIGURATION_PARK, + CONFIGURATION_PRIMARY, + CONFIGURATION_GREGORIAN1, + CONFIGURATION_GREGORIAN2, + CONFIGURATION_GREGORIAN3, + CONFIGURATION_GREGORIAN4, + CONFIGURATION_GREGORIAN5, + CONFIGURATION_GREGORIAN6, + CONFIGURATION_GREGORIAN7, + CONFIGURATION_GREGORIAN8, + CONFIGURATION_BWG1, + CONFIGURATION_BWG2, + CONFIGURATION_BWG3, + CONFIGURATION_BWG4 + }; + + ACS_ENUM(SRTMinorServoFocalConfiguration); + + enum SRTMinorServoControlStatus + { + CONTROL_DISCOS, + CONTROL_VBRAIN + }; + + ACS_ENUM(SRTMinorServoControlStatus); + + enum SRTMinorServoGregorianCoverStatus + { + COVER_STATUS_UNKNOWN, + COVER_STATUS_OPEN, + COVER_STATUS_CLOSED + }; + + ACS_ENUM(SRTMinorServoGregorianCoverStatus); + + enum SRTMinorServoCabinetStatus + { + DRIVE_CABINET_OK, + DRIVE_CABINET_WARNING, + DRIVE_CABINET_ERROR + }; + + ACS_ENUM(SRTMinorServoCabinetStatus); + + enum SRTMinorServoOperativeMode + { + OPERATIVE_MODE_UNKNOWN, + OPERATIVE_MODE_SETUP, + OPERATIVE_MODE_STOW, + OPERATIVE_MODE_STOP, + OPERATIVE_MODE_PRESET, + OPERATIVE_MODE_PROGRAMTRACK + }; + + ACS_ENUM(SRTMinorServoOperativeMode); + + enum SRTMinorServoBossStatus + { + BOSS_STATUS_UNCONFIGURED, + BOSS_STATUS_SETUP_IN_PROGRESS, + BOSS_STATUS_PARK_IN_PROGRESS, + BOSS_STATUS_ERROR, + BOSS_STATUS_CONFIGURED + }; + + ACS_ENUM(SRTMinorServoBossStatus); +}; +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/src/Makefile b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile new file mode 100644 index 000000000..c9465cced --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile @@ -0,0 +1,65 @@ +#************************************************************************************** +# E.S.O. - ACS project +# +# Makefile of SRTMinorServo IDL +# +#-------------------------------------------------------------------------------------- +# Giuseppe Carboni (giuseppe.carboni@inaf.it) +#-------------------------------------------------------------------------------------- +# +#************************************************************************************** + +#************************************************************************************** +# This Makefile follows VLT Standards (see Makefile(5) for more). +#************************************************************************************** + +MAKE_PDF = ON + +# list of all possible C-sources (used to create automatic dependencies) +# ------------------------------ +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +# +# IDL FILES +# +IDL_FILES = SRTMinorServoBoss SRTMinorServo SRTMinorServoCommon + +SRTMinorServoCommonStubs_LIBS = baciStubs +SRTMinorServoStubs_LIBS = baciStubs SRTMinorServoCommonStubs +SRTMinorServoBossStubs_LIBS = baciStubs SRTMinorServoCommonStubs ComponentErrorsStubs \ + MinorServoErrorsStubs AntennaDefinitionsStubs MinorServoDefinitionsStubs + +# +# INCLUDE STANDARDS +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + + +# TARGETS +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + $(RM) *~ ../include/*~ ../idl/*~ ../*~ ../../*~ core + $(RM) ../doc/html + $(RM) tmp.txt acsexmplbeans.jar ../doc/abeans.log + @echo " . . . clean done" + +clean_dist : clean clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + # cp ../doc/html/group__ACSEXMPLDOC.html ../doc/html/main.html + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + +#___oOo___ diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/Makefile b/SRT/Interfaces/SRTMinorServoInterface/test/Makefile new file mode 100644 index 000000000..e70daa63e --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/Makefile @@ -0,0 +1,92 @@ +# CPP UNIT TESTING SETUP +#-------------- +# GTEST_HOME=/usr/local/include/gtest +# GMOCK_HOME=/usr/local/include/gmock +# GTEST_LIBS=gtest gtest_main + +# USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# USER_LIBS=C++ pthread +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +# EXECUTABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + python -m unittest functional/commands + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + rm -rf ../lib/python/site-packages/* + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/external/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py new file mode 100644 index 000000000..aa862cae0 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py @@ -0,0 +1,62 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestServoSetupCmd(unittest.TestCase): + """Test the servoSetup command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_code(self): + success, answer = self.boss.command('servoSetup=FOO') + self.assertFalse(success) + time.sleep(0.2) + if self.boss.isStarting(): + self.wait_ready() + + def test_right_code(self): + success, answer = self.boss.command('servoSetup=' + self.setup_code) + self.assertTrue(success) + time.sleep(0.2) + if self.boss.isStarting(): + self.wait_ready() + + def wait_ready(self): + while not self.boss.isReady(): + time.sleep(0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from PyMinorServoTest import simunittest + simunittest.run(TestServoSetupCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py new file mode 100644 index 000000000..a4d0b257d --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py @@ -0,0 +1,44 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from PyMinorServoTest import simunittest +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoASConfigurationCmd(unittest.TestCase): + """Test the setServoASConfiguration command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_axis_code(self): + success, answer = self.boss.command('setServoASConfiguration=FOO') + self.assertFalse(success) + + def test_right_axis_code(self): + success, answer = self.boss.command('setServoASConfiguration=on') + self.assertTrue(success) + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + simunittest.run(TestSetServoASConfigurationCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py new file mode 100644 index 000000000..7d67f7ad1 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py @@ -0,0 +1,46 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoElevationTrackingCmd(unittest.TestCase): + """Test the setServoElevationTracking command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_flag(self): + success, answer = self.boss.command('setServoElevationTracking=FOO') + self.assertFalse(success) + + def test_right_flag(self): + #FIXME: we need servoSetup before this + success, answer = self.boss.command('setServoElevationTracking=on') + self.assertTrue(success) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from PyMinorServoTest import simunittest + simunittest.run(TestSetServoElevationTrackingCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py new file mode 100644 index 000000000..64888d527 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py @@ -0,0 +1,38 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoOffsetCmd(unittest.TestCase): + """Test the setServoOffset command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.boss.park() + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_axis_code(self): + success, answer = self.boss.command('setServoOffset=FOO_TX,0') + self.assertFalse(success) + + +if __name__ == '__main__': + unittest.main() diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py new file mode 100644 index 000000000..98ab9110f --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py @@ -0,0 +1,58 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestClearUserOffset(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.clearUserOffset('FOO') + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestClearUserOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py new file mode 100644 index 000000000..ed2b37f2c --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py @@ -0,0 +1,92 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime + +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestGetAxesInfo(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + cls.client.disconnect() + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + with self.assertRaises(MinorServoErrorsEx): + axes, units = self.boss.getAxesInfo() + + def test_ready(self): + """Get the axes information""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + axes, units = self.boss.getAxesInfo() + self.assertTrue(any(axes)) + self.assertTrue(any(units)) + self.assertEqual(len(units), len(axes)) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetAxesInfo, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py new file mode 100644 index 000000000..7a1f57511 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py @@ -0,0 +1,87 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime + +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestGetAxesPosition(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + with self.assertRaises(MinorServoErrorsEx): + position = self.boss.getAxesPosition(0) + + def test_ready(self): + """Get the axes position""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + position = self.boss.getAxesPosition(0) + self.assertTrue(any(position)) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetAxesPosition, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py new file mode 100644 index 000000000..600c3ea58 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py @@ -0,0 +1,58 @@ +from __future__ import with_statement + +import os + +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + +class TestGetCentralScanPosition(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + @classmethod + def tearDownClass(cls): + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_scan_not_active(self): + """Raise a MinorServoErrorsEx if the scan is not active""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.getCentralScanPosition() + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetCentralScanPosition, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py new file mode 100644 index 000000000..892aa9be6 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py @@ -0,0 +1,126 @@ +from __future__ import with_statement +import random +import math +import time +import os +from datetime import datetime + +import unittest +import Management +import MinorServo +import Antenna + +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp +from Acspy.Clients.SimpleClient import PySimpleClient +from Acspy.Util import ACSCorba + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class PositionTest(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.axis_code='SRP_TZ' if self.telescope == 'SRT' else 'Z' + setupCode = 'KKG' if self.telescope == 'SRT' else 'CCC' + # Wait (maximum one minute) in case the boss is parking + if self.boss.isParking(): + t0 = datetime.now() + while self.boss.isParking() and (datetime.now() - t0).seconds < 60: + time.sleep(2) + if self.boss.isParking(): + self.fail('The system can not exit form a parking state') + + if self.boss.getActualSetup() != setupCode: + self.boss.setup(setupCode) + # Wait (maximum 5 minutes) in case the boss is starting + t0 = datetime.now() + while not self.boss.isReady() and (datetime.now() - t0).seconds < 60*5: + time.sleep(2) + if not self.boss.isReady(): + self.fail('The system is not ready for executing the tests') + self.boss.setElevationTracking('OFF') + self.boss.setASConfiguration('OFF') + axes, units = self.boss.getAxesInfo() + self.idx = axes.index(self.axis_code) + + def tearDown(self): + # self.boss.clearUserOffset(self.axis_code) + self.boss.setUserOffset(self.axis_code, 0) + self.wait_tracking() + + def test_get_current_position(self): + timestamp = getTimeStamp().value + position = self.get_position() + position_now = self.get_position(timestamp) + self.assertAlmostEqual(position, position_now, delta=0.1) + + def test_get_offset_position(self): + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + position_now = self.get_position() + self.assertAlmostEqual(position_now, position + 10, delta=0.1) + + def test_get_past_position(self): + timestamp = getTimeStamp().value + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + position_past = self.get_position(timestamp) + self.assertAlmostEqual(position, position_past, delta=0.1) + + def test_get_past_position_with_sleep(self): + timestamp = getTimeStamp().value + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + time.sleep(10) + position_past = self.get_position(timestamp) + self.assertAlmostEqual(position, position_past, delta=0.1) + + def wait_tracking(self): + time.sleep(1) # Give the time to command the new position + # TODO: we need a better solution than this sleep to be sure the tests + # procuce always the same results + while not self.boss.isTracking(): + time.sleep(0.1) + + def get_position(self, timestamp=0): + return self.boss.getAxesPosition(timestamp)[self.idx] + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main(verbosity=2, failfast=True) # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(PositionTest, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py new file mode 100644 index 000000000..1c0c266f8 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py @@ -0,0 +1,430 @@ +from __future__ import with_statement +import random +import math +import time +import os +from datetime import datetime + +import unittest +import Management +import MinorServo +import Antenna + +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp +from Acspy.Clients.SimpleClient import PySimpleClient +from Acspy.Util import ACSCorba + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class ScanBaseTest(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + cls.client.disconnect() + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.antennaInfo = Antenna.TRunTimeParameters( + targetName='dummy', + azimuth=math.pi, + elevation=math.pi/2 * 1/random.randrange(2, 10), + rightAscension=0, + declination=0, + startEpoch=getTimeStamp().value + 100000000, + onTheFly=False, + slewingTime=100000000, + section=Antenna.ANT_SOUTH, + axis=Management.MNG_TRACK, + timeToStop=0) + + self.scan = MinorServo.MinorServoScan( + range=20, + total_time=100000000, # 10 seconds + axis_code='SRP_TZ' if self.telescope == 'SRT' else 'Z', + is_empty_scan=False) + + def tearDown(self): + if self.boss.isScanActive(): + t = self.boss.closeScan() + self.waitUntilTime(t) + + def waitUntilTime(self, targetTime): + while getTimeStamp().value < targetTime: + time.sleep(0.1) + + def waitUntil(self, action, value): + """For instance: waitUntil(isReady, True)""" + while action() != value: + time.sleep(0.1) + + +class ScanTest(ScanBaseTest): + """Test checkScan(), startScan() and closeScan()""" + + def setUp(self): + super(ScanTest, self).setUp() + setupCode = 'KKG' if self.telescope == 'SRT' else 'CCC' + + # Wait (maximum one minute) in case the boss is parking + if self.boss.isParking(): + t0 = datetime.now() + while self.boss.isParking() and (datetime.now() - t0).seconds < 60: + time.sleep(2) + if self.boss.isParking(): + self.fail('The system can not exit form a parking state') + + if self.boss.getActualSetup() != setupCode or not self.boss.isReady(): + self.boss.setup(setupCode) + + # Wait (maximum 5 minutes) in case the boss is starting + t0 = datetime.now() + while not self.boss.isReady() and (datetime.now() - t0).seconds < 60*5: + time.sleep(2) + + if not self.boss.isReady(): + self.fail('The system is not ready for executing the tests') + + self.boss.setElevationTracking('OFF') + self.boss.setASConfiguration('OFF') + axes, units = self.boss.getAxesInfo() + self.idx = axes.index(self.scan.axis_code) + + getPosition = getattr(self, 'get%sPosition' %self.telescope) + centerScanPosition = getPosition( + self.boss.getActualSetup(), + 'SRP', + math.degrees(self.antennaInfo.elevation)) + self.centerScan = centerScanPosition[self.idx] + + def test_startScan_empty_scan_system_ready(self): + """Do nothing in case of empty scan and system ready""" + self.scan.is_empty_scan = True + startTime = 0 + self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_startScan_empty_scan_system_not_ready(self): + """Do nothing in case of empty scan and system NOT ready""" + self.scan.is_empty_scan = True + startTime = 0 + self.boss.park() + self.waitUntil(self.boss.isReady, False) + self.assertFalse(self.boss.isReady()) + self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_startScan_ASAP(self): + """Starting time unknown: the scan must start ASAP""" + startTime = 0 + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertGreater(t, getTimeStamp().value) + self.isAssertScan(t) + + def test_startScan_ASAP_at_checkScan_time(self): + """Starting time given by checkScan()""" + startTime = 0 + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + startTime = msInfo.startEpoch + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertGreater(t, getTimeStamp().value) + self.isAssertScan(t) + + def test_startScan_at_given_time(self): + """Start at given time""" + startTime = getTimeStamp().value + 60*10**7 # Start in one minute + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertEqual(t, startTime) + self.isAssertScan(t) + + def test_startScan_too_fast(self): + """Servo not enough fast for accomplishing the scan in total_time""" + startTime = getTimeStamp().value + 60*10**7 # Start in one minute + self.scan.total_time = 5000000 # 0.5 seconds + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_startScan_out_of_range(self): + """Scan out of the servo position limits""" + startTime = 0 + self.scan.range = 5000 # 5 meters + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_startScan_time_too_close_to_now(self): + """Starting time too close to the current time""" + startTime = getTimeStamp().value + 1*10**7 # Start in 1 second from now + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_closeScan_time_to_stop(self): + """Return the time_to_stop""" + startTime = 0 + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.waitUntilTime(startTime) + time_to_stop = self.boss.closeScan() + # The time_to_stop should be greater than now + self.assertGreater(time_to_stop, getTimeStamp().value) + + def test_checkScan_with_scanActive(self): + """checkScan() raises an exception in case there is an active scan.""" + startTime = getTimeStamp().value + 15*10**7 # Start in 15 seconds + self.boss.startScan(startTime, self.scan, self.antennaInfo) + # Wait untill the scan finishes (one second after the scan) + targetTime = startTime + self.scan.total_time + 1*10**7 + self.waitUntilTime(targetTime) + with self.assertRaises(MinorServoErrorsEx): + self.boss.checkScan(startTime, self.scan, self.antennaInfo) + + def test_checkScan_with_scan_in_execution(self): + """checkScan() raises an exception in case there is a scan in execution.""" + startTime = getTimeStamp().value + 15*10**7 # Start in 15 seconds + self.boss.startScan(startTime, self.scan, self.antennaInfo) + # Wait untill the scan starts + targetTime = startTime + 2*10**7 # 2 seconds after the starting time + self.waitUntilTime(targetTime) + with self.assertRaises(MinorServoErrorsEx): + self.boss.checkScan(startTime, self.scan, self.antennaInfo) + + def test_checkScan_empty_scan_start_ASAP(self): + """Starting time unknown: the scan must start ASAP""" + startTime = 0 + self.scan.is_empty_scan = True + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertGreater(msInfo.startEpoch, getTimeStamp().value) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual(msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_not_empty_scan_start_ASAP(self): + """Scan not empty: starting time unknown, the scan must start ASAP""" + startTime = 0 + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertTrue(msInfo.onTheFly) + self.assertGreater(msInfo.startEpoch, getTimeStamp().value) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_empty_scan_start_at_given_time(self): + """Starting time known and achievable""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute + self.scan.is_empty_scan = True + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertFalse(msInfo.onTheFly) + self.assertEqual(msInfo.startEpoch, startTime) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_not_empty_scan_start_at_given_time(self): + """Scan not empty: starting time known and achievable""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertTrue(msInfo.onTheFly) + self.assertEqual(msInfo.startEpoch, startTime) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_too_fast(self): + """Servo not enough fast for accomplishing the scan in total_time""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute from now + self.scan.total_time = 5000000 # 0.5 seconds + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def test_checkScan_out_of_range(self): + """The scan goes out of the servo position limits""" + startTime = 0 + self.scan.range = 1000 # 1 meter + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def test_checkScan_start_time_too_close_to_now(self): + """Starting time too close to the current time""" + startTime = getTimeStamp().value + 1*10**6 # Start in 0.1 second from now + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def isAssertScan(self, startTime): + self.assertFalse(self.boss.isScanning()) + self.assertTrue(self.boss.isScanActive()) + # Assertions to verify right after startTime + self.waitUntilTime(startTime) + self.assertTrue(self.boss.isScanning()) + self.assertTrue(self.boss.isScanActive()) + self.assertAlmostEqual( + self.boss.getCentralScanPosition(), + self.centerScan, + delta=0.1) + # Wait untill the scan finishes (one second after the scan) + targetTime = startTime + self.scan.total_time + 1*10**7 + self.waitUntilTime(targetTime) + startPos = self.boss.getAxesPosition(startTime)[self.idx] + endPos = self.boss.getAxesPosition(targetTime)[self.idx] + self.assertTrue(self.boss.isScanActive()) + self.assertFalse(self.boss.isScanning()) + self.assertAlmostEqual(startPos + self.scan.range, endPos, delta=0.1) + + def getSRTPosition(self, conf_code, servo_name, elevation=45): + """Return the servo position related to the elevation. + + Parameters: + - conf_code: value returned by getActualSetup() (CCB, CCB_ASACTIVE,...) + - servo_name: SRP, GFR, M3R, PFP + - elevation: the antenna elevation, in degrees + """ + dal = ACSCorba.cdb() + dao = dal.get_DAO_Servant('alma/MINORSERVO/Boss') + body = dao.get_field_data(conf_code) + configurations = body.strip().split('@') + servos_conf = {} + for conf in configurations: + if conf: + name, value = conf.split(':') + servos_conf[name.strip()] = value.strip() + + # Example of servo_conf: + # >>> servos_conf['PFP'] + # 'RY(mm)=(-25.75); TX(mm)=(458); TZ(mm)=(-46.2);' + srp_conf = servos_conf[servo_name] + srp_items = [item.strip() for item in srp_conf.split(';')] + srp_axes = [] + for item in srp_items: + if '=' in item: + name, value = item.split('=') + srp_axes.append(value.strip()) + + # Example of srp_axes: + # >>> srp_axes + # ['(-25.75)', '(458)', '(-46.2)'] + position = [] + for axis in srp_axes: + axis = axis.lstrip('(') + axis = axis.rstrip(')') + # At this point, axis is something like '-0.23, 0.01, 3.2' + coeffs = [float(item) for item in axis.split(',')] + value = 0 + for idx, coeff in enumerate(coeffs): + value += coeff * elevation**idx + # Value: -25.75*elevation**0 + 485*elevation**1 -46.2*elevation**2 + position.append(value) + return position + + def getMEDPosition(self, conf_code, servo_name="", elevation=45): + """Return the servo position related to the elevation for MED + radiotelescope. + + Parameters: + - conf_code: value returned by getActualSetup() (CCC, KKC,...) + - servo_name: "" not use at Med + - elevation: the antenna elevation, in degrees + """ + from xml.dom.minidom import parseString + dal = ACSCorba.cdb() + dao = dal.get_DAO('alma/DataBlock/MinorServoParameters') + root = parseString(dao).documentElement + position = [] + coefficients = [] + for minorservo in root.getElementsByTagName("MinorServo"): + for code in minorservo.getElementsByTagName("code"): + if code.firstChild.data == conf_code: + if minorservo.getElementsByTagName("primary")[0].firstChild.data == "1": + yp_string_poly = minorservo.getElementsByTagName("YPaxis")[0].firstChild.data + coefficients.append(map(float,yp_string_poly.split(",")[3:])) + zp_string_poly = minorservo.getElementsByTagName("ZPaxis")[0].firstChild.data + coefficients.append(map(float,zp_string_poly.split(",")[3:])) + else: + x_string_poly = minorservo.getElementsByTagName("Xaxis")[0].firstChild.data + coefficients.append(map(float,x_string_poly.split(",")[3:])) + y_string_poly = minorservo.getElementsByTagName("Yaxis")[0].firstChild.data + coefficients.append(map(float,y_string_poly.split(",")[3:])) + z_string_poly = minorservo.getElementsByTagName("Zaxis")[0].firstChild.data + coefficients.append(map(float,z_string_poly.split(",")[3:])) + tx_string_poly = minorservo.getElementsByTagName("THETAXaxis")[0].firstChild.data + coefficients.append(map(float,tx_string_poly.split(",")[3:])) + ty_string_poly = minorservo.getElementsByTagName("THETAYaxis")[0].firstChild.data + coefficients.append(map(float,ty_string_poly.split(",")[3:])) + for coefficient in coefficients: + axis_position = 0 + for exp, coeff in enumerate(coefficient): + axis_position += (elevation)**(exp) * coeff + position.append(axis_position) + return position + + +class ScanInterfaceTest(ScanBaseTest): + """Test the interface of startScan() and closeScan()""" + + def test_checkScan_not_empty_system_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + try: + with self.assertRaises(MinorServoErrorsEx): + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + except: + with self.assertRaises(MinorServoErrorsEx): + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + + def _test_checkScan_empty_scan_system_not_ready(self): + """Do nothing in case of empty scan and system NOT ready""" + self.scan.is_empty_scan = True + self.assertFalse(self.boss.isReady()) + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_closeScan_scan_not_active(self): + """Do nothing in case no scan is active""" + try: + self.boss.closeScan() + except: + self.boss.closeScan() + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main(verbosity=2, failfast=True) # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(ScanTest, 'srt-mscu-sim') + simulator.run(ScanInterfaceTest, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py new file mode 100644 index 000000000..b9cf28096 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py @@ -0,0 +1,56 @@ +from __future__ import with_statement + +import os +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetASConfiguration(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_right_flag(self): + """Set the AS configuration properly""" + self.boss.setASConfiguration('on') + self.assertTrue(self.boss.isASConfiguration()) + + def test_wrong_flag(self): + """Raise a MinorServoErrorsEx in case of wrong code""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.setASConfiguration('foo') + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSetASConfiguration, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py new file mode 100644 index 000000000..8f24da6d3 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py @@ -0,0 +1,56 @@ +from __future__ import with_statement + +import os +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetElevationTracking(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_right_flag(self): + """Set the elevation tracking properly""" + self.boss.setElevationTracking('on') + self.assertTrue(self.boss.isElevationTrackingEn()) + + def test_wrong_flag(self): + """Raise a MinorServoErrorsEx in case of wrong code""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.setElevationTracking('foo') + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSetElevationTracking, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py new file mode 100644 index 000000000..e25314614 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSystemOffset(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + self.axis_code = "SRP_TX" if self.telescope == "SRT" else "X" + + def tearDown(self): + #self.boss.clearSystemOffset(self.axis_code) + self.boss.setSystemOffset(self.axis_code, 0) # TODO + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + with self.assertRaises(MinorServoErrorsEx): + self.boss.setSystemOffset(self.axis_code + "WRONG", 0) + + def test_get_offset(self): + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + target_offset = 5.0 + self.boss.setSystemOffset(self.axis_code, target_offset) + offset = self.boss.getSystemOffset()[0] # SRP_TX and X both have index 0 + self.assertAlmostEqual(offset, target_offset, delta=0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSystemOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py new file mode 100644 index 000000000..269c44ce6 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py @@ -0,0 +1,96 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestUserOffset(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + self.axis_code = "SRP_TX" if self.telescope == "SRT" else "X" + + def tearDown(self): + # self.boss.clearUserOffset(self.axis_code) + self.boss.setUserOffset(self.axis_code, 0) # TODO + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + with self.assertRaises(MinorServoErrorsEx): + self.boss.setUserOffset(self.axis_code + "WRONG", 0) + + def test_get_offset(self): + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + target_offset = 5.0 + self.boss.setUserOffset(self.axis_code, target_offset) + offset = self.boss.getUserOffset()[0] # SRP_TX and X both have index 0 + self.assertAlmostEqual(offset, target_offset, delta=0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestUserOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp b/SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp new file mode 100644 index 000000000..59cb6295f --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp @@ -0,0 +1,6 @@ +#include "gtest/gtest.h" + +TEST(FakeTest, Success){ + EXPECT_EQ(1, 1); +} + diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index ba0e1fb6c..1c5ee5be8 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -146,7 +146,7 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ if(args.find("OUTPUT") == args.end()) throw std::invalid_argument(std::string("Missing OUTPUT value!")); - else if(args.find("TIMESTAMP") == args.end()) + else if(std::get<std::string>(args["OUTPUT"]) == "GOOD" && args.find("TIMESTAMP") == args.end()) throw std::invalid_argument(std::string("Missing TIMESTAMP value!")); } catch(const std::invalid_argument& e) diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd new file mode 100644 index 000000000..73b8de58c --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServo:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoCabinetStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OK,WARNING,OFF" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoOperativeModeType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="5" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="UNKNOWN_MODE,SETUP,STOW,STOP,PRESET,PROGRAMTRACK" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:sequence> + <xs:element name="enabled" type="baci:ROboolean" /> + <xs:element name="drive_cabinet_status" type="SRTMinorServoCabinetStatusType" /> + <xs:element name="block" type="baci:ROboolean" /> + <xs:element name="operative_mode" type="SRTMinorServoOperativeModeType" /> + <xs:element name="axes_enabled" type="baci:RObooleanSeq" /> + <xs:element name="physical_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_offsets" type="baci:ROdoubleSeq" /> + </xs:sequence> + <xs:attribute name="physical_axes" type="xs:unsignedShort" use="required" /> + <xs:attribute name="virtual_axes" type="xs:unsignedShort" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServo" type="SRTMinorServoType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd new file mode 100644 index 000000000..7b8fb9fe6 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd @@ -0,0 +1,71 @@ +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoFocalConfigurationType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="13" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" + default="UNKNOWN_CONFIGURATION,PRIMARY,GREGORIAN_1,GREGORIAN_2,GREGORIAN_3,GREGORIAN_4,GREGORIAN_5,GREGORIAN_6,GREGORIAN_7,GREGORIAN_8,BWG_1,BWG_2,BWG_3,BWG_4" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoGregorianCoverStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="UNKNOWN_STATUS,OPEN,CLOSED" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoControlStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="1" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DISCOS,VBRAIN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoBossType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:sequence> + <xs:element name="current_configuration" type="SRTMinorServoFocalConfigurationType" /> + <xs:element name="simulation_enabled" type="baci:ROboolean" /> + <xs:element name="plc_time" type="baci:ROdouble" /> + <xs:element name="plc_version" type="baci:ROstring" /> + <xs:element name="control" type="SRTMinorServoControlStatusType" /> + <xs:element name="power" type="baci:ROboolean" /> + <xs:element name="emergency" type="baci:ROboolean" /> + <xs:element name="gregorian_cover" type="SRTMinorServoGregorianCoverStatusType" /> + <xs:element name="last_executed_command" type="baci:ROdouble" /> + </xs:sequence> + <xs:attribute name="status_thread_period" type="xs:double" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServoBoss" type="SRTMinorServoBossType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd new file mode 100644 index 000000000..7dc0034ef --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + + <xs:complexType name="SRTMinorServoCoefficientsType"> + <xs:sequence> + <xs:element name="axis" type="xs:string" /> + <xs:element name="coefficients" type="xs:string" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SRTMinorServoLookupTableType"> + <xs:sequence> + <xs:element name="Primario" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano1" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano2" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano3" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano4" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano5" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano6" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano7" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="Gregoriano8" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="BWG1" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="BWG2" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="BWG3" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="BWG4" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:element name="SRTMinorServoLookupTable" type="SRTMinorServoLookupTableType" /> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd new file mode 100644 index 000000000..accb3d172 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + + <xs:complexType name="SRTMinorServoPropertyType"> + <xs:sequence> + <xs:element name="property_name" type="xs:string" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SRTMinorServoPropertiesType"> + <xs:sequence> + <xs:element name="axes_enabled" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="physical_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_offsets" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:element name="SRTMinorServoProperties" type="SRTMinorServoPropertiesType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd new file mode 100644 index 000000000..3b88dbbba --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoSocketType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:attribute name="IPAddress" type="xs:string" use="required" /> + <xs:attribute name="Port" type="xs:unsignedShort" use="required" /> + <xs:attribute name="SocketTimeout" type="xs:double" use="optional" default="0.1"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServoSocket" type="SRTMinorServoSocketType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h new file mode 100644 index 000000000..dd4c3a799 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -0,0 +1,213 @@ +#ifndef _MSDEVIOS_H +#define _MSDEVIOS_H + +/**********************************************************/ +/* Giuseppe Carboni <giuseppe.carboni@inaf.it> 20/09/2023 */ +/**********************************************************/ + +#include "SuppressWarnings.h" +#include <type_traits> +#include <baciDevIO.h> +#include <IRA> +#include <AntennaErrors.h> +#include <ComponentErrors.h> +#include <SRTMinorServoCommonS.h> +#include "SRTMinorServoCommandLibrary.h" + + +struct SRTMinorServoDevIOInfo +{ + IRA::CSecureArea<SRTMinorServoAnswerMap>* secure_area; + std::string prefix = ""; + std::string property_name; + std::vector<std::string> property_fields; +}; + + +/** +i * This template class is derived from DevIO and it is used by the almost all attributes of the SRT Minor Servos components. + * The associeted property can be selected at construction time and cannot be changed anymore. + * @author Giuseppe Carboni <giuseppe.carboni@inaf.it>, + */ +template <class T> class MSDevIO : public DevIO<T> +{ +public: + /** + * Constructor + * @param data pointer to a SecureArea that protects a SRTMinorServoAnswerMap object. + * @param property_info an std::pair containing the name of the property as shown in the Object Explorer and the fields to read from the SRTMinorServoAnswerMap + */ + MSDevIO(SRTMinorServoDevIOInfo property_info) + { + // The following expression will produce an error at compile time if the T class type is not one of the following + static_assert( + std::disjunction< + std::is_same<T, CORBA::Boolean>, + std::is_same<T, CORBA::Double>, + std::is_same<T, ACE_CString>, + std::is_same<T, ACS::booleanSeq>, + std::is_same<T, ACS::doubleSeq>, + std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>, + std::is_same<T, MinorServo::SRTMinorServoControlStatus>, + std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>, + std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>, + std::is_same<T, MinorServo::SRTMinorServoOperativeMode> + >::value, + "Not accepted MSDevIO type!" + ); + + m_secure_area = property_info.secure_area; + m_prefix = property_info.prefix; + m_property_name = property_info.property_name; + m_property_fields = property_info.property_fields; + } + + /** + * Destructor + */ + ~MSDevIO() + { + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @arg \c ComponentErrors::Timeout</a> + * @arg \c AntennaErrors::Connection</a> + * @arg \c ComponentErrors::SocketError + * @param timestamp epoch when the operation completes + */ + T read(ACS::Time& timestamp) + { + if(m_secure_area) + { + IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> data = m_secure_area->Get(); + + try + { + if constexpr(std::is_same<T, CORBA::Boolean>::value) + { + unsigned int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); + m_value = (value == 1) ? true : false; + } + else if constexpr(std::is_same<T, CORBA::Double>::value) + { + auto object = data->at(m_prefix + m_property_fields[0]); + if(object.index() == 0) + { + m_value = double(std::get<long>(object)); + } + else if(object.index() == 1) + { + m_value = std::get<double>(object); + } + } + else if constexpr(std::is_same<T, ACE_CString>::value) + { + auto object = data->at(m_prefix + m_property_fields[0]); + if(object.index() == 0) + { + m_value = std::to_string(std::get<long>(object)).c_str(); + } + else if(object.index() == 1) + { + m_value = std::to_string(std::get<double>(object)).c_str(); + } + else + { + m_value = std::get<std::string>(object).c_str(); + } + } + else if constexpr(std::is_same<T, ACS::booleanSeq>::value) + { + m_value.length(m_property_fields.size()); + + for(size_t i = 0; i < m_property_fields.size(); i++) + { + m_value[i] = std::get<long>(data->at(m_prefix + m_property_fields[i])); + } + } + else if constexpr(std::is_same<T, ACS::doubleSeq>::value) + { + m_value.length(m_property_fields.size()); + + for(size_t i = 0; i < m_property_fields.size(); i++) + { + m_value[i] = std::get<double>(data->at(m_prefix + m_property_fields[i])); + } + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>::value) + { + int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); + if(value > 20) + { + //BWG + value -= 11; + } + else if(value > 10) + { + //Gregorian + value -= 9; + } + + m_value = MinorServo::SRTMinorServoFocalConfiguration(value+1); + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoControlStatus>::value) + { + m_value = MinorServo::SRTMinorServoControlStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>::value) + { + m_value = MinorServo::SRTMinorServoGregorianCoverStatus(std::get<long>(data->at(m_prefix + m_property_fields[0]))); + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>::value) + { + m_value = MinorServo::SRTMinorServoCabinetStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoOperativeMode>::value) + { + m_value = MinorServo::SRTMinorServoOperativeMode(std::get<long>(data->at(m_prefix + m_property_fields[0])) / 10); + } + else + { + std::cout << "Unknown type" << std::endl; + } + } + catch(ACSErr::ACSbaseExImpl& ex) + { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, dummy, ex, "MSDevIO::read()"); + dummy.setPropertyName(m_property_name.c_str()); + dummy.setReason("Property could not be read"); + throw dummy; + } + } + timestamp = getTimeStamp(); //completion time + return m_value; + } + + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const T& value, ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + return; + } + +private: + IRA::CSecureArea<SRTMinorServoAnswerMap>* m_secure_area; + T m_value; + std::string m_prefix; + std::string m_property_name; + std::vector<std::string> m_property_fields; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h new file mode 100644 index 000000000..bae147497 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -0,0 +1,78 @@ +#ifndef __SRTMINORSERVOBOSSCORE_H__ +#define __SRTMINORSERVOBOSSCORE_H__ + +/** + * SRTMinorServoBossCore.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <IRA> +#include <baciSmartPropertyPointer.h> +#include <baciROboolean.h> +#include <baciROdouble.h> +#include <baciROstring.h> +#include <enumpropROImpl.h> +#include <SRTMinorServoBossS.h> +#include <SRTMinorServoS.h> +#include <boost/bimap.hpp> +#include "ManagementErrors.h" +#include "MinorServoErrors.h" +#include "SRTMinorServoSocket.h" +#include "MSDevIOs.h" +#include "SRTMinorServoBossImpl.h" +#include "SRTMinorServoSetupThread.h" +#include "SRTMinorServoParkThread.h" + +class SRTMinorServoBossImpl; +class SRTMinorServoSetupThread; +class SRTMinorServoParkThread; + +using SRTMinorServoFocalConfigurationsTable = boost::bimap<std::string, MinorServo::SRTMinorServoFocalConfiguration>; + + +class SRTMinorServoBossCore +{ +friend class SRTMinorServoBossImpl; +friend class SRTMinorServoStatusThread; +friend class SRTMinorServoSetupThread; +friend class SRTMinorServoParkThread; + +public: + SRTMinorServoBossCore(SRTMinorServoBossImpl* component); + virtual ~SRTMinorServoBossCore(); + +private: + void setup(std::string configuration); + void park(); + void status(); + bool checkControl(); + + SRTMinorServoSocketConfiguration* m_socket_configuration; + SRTMinorServoSocket* m_socket; + + SRTMinorServoSetupThread* m_setup_thread; + SRTMinorServoParkThread* m_park_thread; + + SRTMinorServoAnswerMap m_status; + + SRTMinorServoFocalConfigurationsTable m_focal_configurations_table; + + IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_secure_area; + + MinorServo::SRTMinorServoFocalConfiguration m_requested_configuration; + MinorServo::SRTMinorServoFocalConfiguration m_current_configuration; + + MinorServo::SRTGenericMinorServo_var m_GFR; + MinorServo::SRTProgramTrackMinorServo_var m_SRP; + + MinorServo::SRTMinorServoBossStatus m_boss_status; + + SRTMinorServoBossImpl* m_component; + + bool m_ready; + + std::vector<MinorServo::SRTBaseMinorServo_ptr> m_servos; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h new file mode 100644 index 000000000..7aca8cafa --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -0,0 +1,93 @@ +#ifndef __SRTMINORSERVOBOSSIMPL_H__ +#define __SRTMINORSERVOBOSSIMPL_H__ + +/** + * SRTMinorServoBossImpl.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <IRA> +#include <baciCharacteristicComponentImpl.h> +#include <baciSmartPropertyPointer.h> +#include <baciROboolean.h> +#include <baciROdouble.h> +#include <baciROstring.h> +#include <enumpropROImpl.h> +#include <SRTMinorServoBossS.h> +#include <SRTMinorServoS.h> +#include <SP_parser.h> +#include "ManagementErrors.h" +#include "MinorServoErrors.h" +#include "SRTMinorServoBossCore.h" +#include "SRTMinorServoStatusThread.h" +#include "MSDevIOs.h" + +#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTMinorServoBossImpl::PROPERTYNAME()\ +{ \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + +// Forward classes definitions +class SRTMinorServoBossCore; +class SRTMinorServoStatusThread; + +class SRTMinorServoBossImpl: public baci::CharacteristicComponentImpl, public virtual POA_MinorServo::SRTMinorServoBoss +{ +friend class SRTMinorServoBossCore; +public: + // Constructor and destructor + SRTMinorServoBossImpl(const ACE_CString&, maci::ContainerServices*); + virtual ~SRTMinorServoBossImpl(); + + // Characteristic component methods + virtual void initialize(); + virtual void execute(); + virtual void cleanUp(); + virtual void aboutToAbort(); + + // Parser methods + virtual void setup(const char*); + virtual void park(); + virtual void setElevationTracking(const char*); + virtual void setASConfiguration(const char*); + virtual void setOffsets(const char*, const double&); + virtual void clearOffsets(); + + // MinorServoBoss interface methods + virtual CORBA::Boolean checkScan(const ACS::Time, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&, MinorServo::TRunTimeParameters_out); + virtual void startScan(ACS::Time&, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&); + virtual void closeScan(ACS::Time&); + + CORBA::Boolean command(const char*, CORBA::String_out); + + // Properties methods + virtual MinorServo::ROSRTMinorServoFocalConfiguration_ptr current_configuration(); + virtual ACS::ROboolean_ptr simulation_enabled(); + virtual ACS::ROdouble_ptr plc_time(); + virtual ACS::ROstring_ptr plc_version(); + virtual MinorServo::ROSRTMinorServoControlStatus_ptr control(); + virtual ACS::ROboolean_ptr power(); + virtual ACS::ROboolean_ptr emergency(); + virtual MinorServo::ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); + virtual ACS::ROdouble_ptr last_executed_command(); +private: + SRTMinorServoBossCore* m_core; + SRTMinorServoStatusThread* m_status_thread; + SimpleParser::CParser<SRTMinorServoBossImpl> *m_parser; + + // Properties pointers + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration> > m_current_configuration_ptr; + baci::SmartPropertyPointer<baci::ROboolean> m_simulation_enabled_ptr; + baci::SmartPropertyPointer<baci::ROdouble> m_plc_time_ptr; + baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus> > m_control_ptr; + baci::SmartPropertyPointer<baci::ROboolean> m_power_ptr; + baci::SmartPropertyPointer<baci::ROboolean> m_emergency_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus> > m_gregorian_cover_ptr; + baci::SmartPropertyPointer<baci::ROdouble> m_last_executed_command_ptr; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h new file mode 100644 index 000000000..b3910c5ea --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -0,0 +1,142 @@ +#ifndef __SRTMINORSERVOIMPL_H__ +#define __SRTMINORSERVOIMPL_H__ + +/** + * SRTMinorServoImpl.h + * 21/06/2023 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <regex> +#include <IRA> +#include <baciCharacteristicComponentImpl.h> +#include <baciSmartPropertyPointer.h> +#include <baciROlong.h> +#include <baciROboolean.h> +#include <baciRObooleanSeq.h> +#include <baciROdoubleSeq.h> +#include <enumpropROImpl.h> +#include <SRTMinorServoS.h> +#include <maciACSComponentDefines.h> +#include "ManagementErrors.h" +#include "MinorServoErrors.h" +#include "SRTMinorServoSocket.h" +#include "MSDevIOs.h" + +#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTBaseMinorServoImpl::PROPERTYNAME()\ +{ \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + +using SRTMinorServoLookupTable = std::map<std::string, std::vector<double> >; + + +class SRTBaseMinorServoImpl: public baci::CharacteristicComponentImpl +{ +public: + SRTBaseMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + virtual ~SRTBaseMinorServoImpl(); + + virtual void initialize(); + virtual void execute(); + virtual void cleanUp(); + virtual void aboutToAbort(); + + virtual void status(); + virtual void stow(CORBA::Long stow_position = 1); + virtual void stop(); + virtual void preset(const ACS::doubleSeq& coordinates); + virtual void offset(const ACS::doubleSeq& offsets); + virtual void setup(const char* configuration_name); + + virtual ACS::ROboolean_ptr enabled(); + virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); + virtual ACS::ROboolean_ptr block(); + virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode(); + virtual ACS::RObooleanSeq_ptr axes_enabled(); + virtual ACS::ROdoubleSeq_ptr physical_positions(); + virtual ACS::ROdoubleSeq_ptr virtual_positions(); + virtual ACS::ROdoubleSeq_ptr virtual_offsets(); + +protected: + unsigned int m_physical_axes, m_virtual_axes; + SRTMinorServoSocket* m_socket; + std::string m_servo_name; + +private: + SRTMinorServoSocketConfiguration* m_socket_configuration; + + SRTMinorServoAnswerMap m_status; + IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_securearea; + + std::vector<std::string> m_virtual_axes_names; + SRTMinorServoLookupTable m_current_lookup_table; + + baci::SmartPropertyPointer<baci::ROboolean> m_enabled_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus> > m_drive_cabinet_status_ptr; + baci::SmartPropertyPointer<baci::ROboolean> m_block_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode> > m_operative_mode_ptr; + baci::SmartPropertyPointer<baci::RObooleanSeq> m_axes_enabled_ptr; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_physical_positions_ptr; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_offsets_ptr; + + std::vector<std::string> getPropertiesTable(std::string properties_name); + SRTMinorServoLookupTable getLookupTable(std::string configuration_name); + + void checkErrors(); +}; + + +class SRTGenericMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTGenericMinorServo +{ +public: + SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + ~SRTGenericMinorServoImpl(); + + void status() { SRTBaseMinorServoImpl::status(); }; + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; + void stop() { SRTBaseMinorServoImpl::stop(); }; + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; + void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; + void setup(const char* configuration_name) { SRTBaseMinorServoImpl::setup(configuration_name); }; + + virtual ACS::ROboolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; + virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; + virtual ACS::ROboolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; + virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; + virtual ACS::RObooleanSeq_ptr axes_enabled() { return SRTBaseMinorServoImpl::axes_enabled(); }; + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; +}; + +class SRTProgramTrackMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTProgramTrackMinorServo +{ +public: + SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + ~SRTProgramTrackMinorServoImpl(); + + void status() { SRTBaseMinorServoImpl::status(); }; + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; + void stop() { SRTBaseMinorServoImpl::stop(); }; + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; + void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; + void setup(const char* configuration_name) { SRTBaseMinorServoImpl::setup(configuration_name); }; + + void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, CORBA::Double start_time, const ACS::doubleSeq& coordinates); + + virtual ACS::ROboolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; + virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; + virtual ACS::ROboolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; + virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; + virtual ACS::RObooleanSeq_ptr axes_enabled() { return SRTBaseMinorServoImpl::axes_enabled(); }; + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h new file mode 100644 index 000000000..bfdd81105 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -0,0 +1,68 @@ +#ifndef _SRTMINORSERVOPARKTHREAD_H_ +#define _SRTMINORSERVOPARKTHREAD_H_ + +/*************************************************************************************/ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMinorServoParkThread.h */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ +/*************************************************************************************/ + +#include "SuppressWarnings.h" +#include <IRA> +#include <thread> +#include <chrono> +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoBossCore.h" + +#define PARK_TIMEOUT 60 + +class SRTMinorServoBossCore; + + +/** + * This class implements a parking thread. This thread is in charge of checking the status of the minor servos parking procedure +*/ +class SRTMinorServoParkThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoParkThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void run(); + +private: + std::string m_thread_name; + SRTMinorServoBossCore* m_core; +}; + +#endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h new file mode 100644 index 000000000..157a41c5d --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -0,0 +1,68 @@ +#ifndef _SRTMINORSERVOSETUPTHREAD_H_ +#define _SRTMINORSERVOSETUPTHREAD_H_ + +/*************************************************************************************/ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMinorServoSetupThread.h */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ +/*************************************************************************************/ + +#include "SuppressWarnings.h" +#include <IRA> +#include <thread> +#include <chrono> +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoBossCore.h" + +#define SETUP_TIMEOUT 60 + +class SRTMinorServoBossCore; + + +/** + * This class implements a setup thread. This thread is in charge of checking the status of the minor servos setup procedure +*/ +class SRTMinorServoSetupThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoSetupThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void run(); + +private: + std::string m_thread_name; + SRTMinorServoBossCore* m_core; +}; + +#endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index e00f63cb7..716260101 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -7,12 +7,19 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include <mutex> +#include "SuppressWarnings.h" #include <IRA> +#include <mutex> #include <ComponentErrors.h> +#include <optional> +#include <functional> #include "SRTMinorServoCommandLibrary.h" + #define TIMEOUT 0.1 +#define CONFIG_DOMAIN "alma/" +#define CONFIG_DIRNAME "/MINORSERVO/Socket" + using namespace IRA; @@ -48,7 +55,7 @@ public: * @param command the command to be sent over the socket * @return the received answer to the given command */ - SRTMinorServoAnswerMap sendCommand(std::string command); + SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); /** * Copy constructor operator disabled by default @@ -117,4 +124,24 @@ private: IRA::CError m_error; }; + +class SRTMinorServoSocketConfiguration +{ +public: + static SRTMinorServoSocketConfiguration& getInstance(maci::ContainerServices* containerServices); + + SRTMinorServoSocketConfiguration(SRTMinorServoSocketConfiguration const&) = delete; + void operator=(SRTMinorServoSocketConfiguration const&) = delete; + + std::string m_ip_address; + int m_port; + double m_timeout; + +private: + SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices); + ~SRTMinorServoSocketConfiguration(); + + inline static SRTMinorServoSocketConfiguration* m_instance = nullptr; +}; + #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h new file mode 100644 index 000000000..f88870faa --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -0,0 +1,65 @@ +#ifndef _SRTMINORSERVOSTATUSTHREAD_H_ +#define _SRTMINORSERVOSTATUSTHREAD_H_ + +/*************************************************************************************/ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMinorServoStatusThread.h */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ +/*************************************************************************************/ + +#include "SuppressWarnings.h" +#include <IRA> +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoBossCore.h" + +class SRTMinorServoBossCore; + + +/** + * This class implements a status thread. This thread is in charge of checking the status of +*/ +class SRTMinorServoStatusThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoStatusThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + +private: + std::string m_thread_name; + SRTMinorServoBossCore* m_core; + double m_sleep_time; +}; + +#endif /*_SRTMINORSERVOSTATUSTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h new file mode 100644 index 000000000..1421fd156 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h @@ -0,0 +1,12 @@ +#ifndef __SUPPRESSWARNINGS_H__ +#define __SUPPRESSWARNINGS_H__ + +#include <Cplusplus11Helper.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wdeprecated-declarations") +C11_IGNORE_WARNING("-Wmisleading-indentation") +C11_IGNORE_WARNING("-Wcatch-value=") +C11_IGNORE_WARNING_POP +#include <IRA> + +#endif diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile index 6cca032de..39ea58207 100644 --- a/SRT/Servers/SRTMinorServo/src/Makefile +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -11,16 +11,34 @@ EXECUTABLES_L = # On-Line Database Files # ---------------------- -CDB_SCHEMAS = +CDB_SCHEMAS = SRTMinorServoBoss SRTMinorServo SRTMinorServoSocket SRTMinorServoProperties SRTMinorServoLookupTable # ---------------------------- # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoSocket +LIBRARIES = SRTMinorServoSocket SRTGenericMinorServoImpl SRTProgramTrackMinorServoImpl SRTMinorServoBossImpl SRTMinorServoSocket_OBJECTS = SRTMinorServoSocket -SRTMinorServoSocket_CFLAGS = -std=c++17 SRTMinorServoSocket_LIBS = IRALibrary ComponentErrors SRTMinorServoCommandLibrary +SRTMinorServoSocket_CFLAGS = -std=c++17 + +SRTMinorServoBossImpl_OBJECTS = SRTMinorServoStatusThread SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoBossCore SRTMinorServoBossImpl +SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket ParserErrors DiscosVersion +SRTMinorServoBossImpl_CFLAGS = -std=c++17 +SRTMinorServoBossCore_CFLAGS = -std=c++17 +SRTMinorServoStatusThread_CFLAGS = -std=c++17 +SRTMinorServoSetupThread_CFLAGS = -std=c++17 +SRTMinorServoParkThread_CFLAGS = -std=c++17 + +SRTGenericMinorServoImpl_OBJECTS = SRTGenericMinorServoImpl SRTBaseMinorServoImpl +SRTGenericMinorServoImpl_LIBS = SRTBaseMinorServoImpl IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion +SRTGenericMinorServoImpl_CFLAGS = -std=c++17 + +SRTProgramTrackMinorServoImpl_OBJECTS = SRTProgramTrackMinorServoImpl SRTBaseMinorServoImpl +SRTProgramTrackMinorServoImpl_LIBS = SRTBaseMinorServoImpl IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion +SRTProgramTrackMinorServoImpl_CFLAGS = -std=c++17 + +SRTBaseMinorServoImpl_CFLAGS = -std=c++17 # ---------------------------------------------------------------------- diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp new file mode 100644 index 000000000..d9440e71b --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -0,0 +1,318 @@ +#include "SRTMinorServoImpl.h" + +using namespace maci; + +SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : + CharacteristicComponentImpl(componentName, containerServices), + m_enabled_ptr(this), + m_drive_cabinet_status_ptr(this), + m_block_ptr(this), + m_operative_mode_ptr(this), + m_axes_enabled_ptr(this), + m_physical_positions_ptr(this), + m_virtual_positions_ptr(this), + m_virtual_offsets_ptr(this) +{ + std::string component_name(componentName.c_str()); + m_servo_name = component_name.substr(component_name.rfind('/') + 1); + + AUTO_TRACE(m_servo_name + "::SRTBaseMinorServoImpl()"); +} + +SRTBaseMinorServoImpl::~SRTBaseMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTBaseMinorServoImpl()"); +} + +void SRTBaseMinorServoImpl::initialize() +{ + AUTO_TRACE(m_servo_name + "::initialize()"); + + if(!IRA::CIRATools::getDBValue(getContainerServices(), "physical_axes", m_physical_axes)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, (m_servo_name + "::initialize()").c_str()); + exImpl.setFieldName("physical_axes"); + throw exImpl; + } + if(!IRA::CIRATools::getDBValue(getContainerServices(), "virtual_axes", m_virtual_axes)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, (m_servo_name + "::initialize()").c_str()); + exImpl.setFieldName("virtual_axes"); + throw exImpl; + } + + m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(getContainerServices()); + m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); + + m_status = SRTMinorServoAnswerMap(); + m_socket->sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); + m_status_securearea = new IRA::CSecureArea<SRTMinorServoAnswerMap>(&m_status); + + try + { + std::string component_name = getContainerServices()->getName().c_str(); + + SRTMinorServoDevIOInfo dev_io_info; + dev_io_info.prefix = m_servo_name + "_"; + dev_io_info.secure_area = m_status_securearea; + + dev_io_info.property_name = "enabled"; + dev_io_info.property_fields = std::vector<std::string>{ "ENABLED" }; + m_enabled_ptr = new baci::ROboolean((component_name + ":enabled").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + + dev_io_info.property_name = "drive_cabinet_status"; + dev_io_info.property_fields = std::vector<std::string>{ "STATUS" }; + m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((component_name + ":drive_cabinet_status").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoCabinetStatus>(dev_io_info), true); + + dev_io_info.property_name = "block"; + dev_io_info.property_fields = std::vector<std::string>{ "BLOCK" }; + m_block_ptr = new baci::ROboolean((component_name + ":block").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + + dev_io_info.property_name = "operative_mode"; + dev_io_info.property_fields = std::vector<std::string>{ "OPERATIVE_MODE" }; + m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((component_name + ":operative_mode").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoOperativeMode>(dev_io_info), true); + + dev_io_info.property_name = "axes_enabled"; + dev_io_info.property_fields = getPropertiesTable("axes_enabled"); + if(dev_io_info.property_fields.size() != m_physical_axes) + { + // Wrong length for axes_enabled property + } + m_axes_enabled_ptr = new baci::RObooleanSeq((component_name + ":axes_enabled").c_str(), getComponent(), new MSDevIO<ACS::booleanSeq>(dev_io_info), true); + + dev_io_info.property_name = "physical_positions"; + dev_io_info.property_fields = getPropertiesTable("physical_positions"); + if(dev_io_info.property_fields.size() != m_physical_axes) + { + // Wrong length for physical_positions property + } + m_physical_positions_ptr = new baci::ROdoubleSeq((component_name + ":physical_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); + + m_virtual_axes_names = getPropertiesTable("virtual_positions"); + dev_io_info.property_name = "virtual_positions"; + dev_io_info.property_fields = m_virtual_axes_names; + if(m_virtual_axes_names.size() != m_virtual_axes) + { + // Wrong length for virtual_axes property + } + m_virtual_positions_ptr = new baci::ROdoubleSeq((component_name + ":virtual_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); + + dev_io_info.property_name = "virtual_offsets"; + dev_io_info.property_fields = getPropertiesTable("virtual_offsets"); + if(dev_io_info.property_fields.size() != m_virtual_axes) + { + // Wrong length for virtual_offsets property + } + m_virtual_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_offsets").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); + } + catch(std::bad_alloc& ex) + { + _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl, std::string(m_servo_name + "::initialize()").c_str()); + } +} + +void SRTBaseMinorServoImpl::execute() +{ + AUTO_TRACE(m_servo_name + "::execute()"); +} + +void SRTBaseMinorServoImpl::cleanUp() +{ + AUTO_TRACE(m_servo_name + "::cleanUp()"); +} + +void SRTBaseMinorServoImpl::aboutToAbort() +{ + AUTO_TRACE(m_servo_name + "::aboutToAbort()"); +} + +void SRTBaseMinorServoImpl::status() +{ + AUTO_TRACE(m_servo_name + "::status()"); + + IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> area = m_status_securearea->Get(); + m_socket->sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), *area); +} + +void SRTBaseMinorServoImpl::stow(CORBA::Long stow_position) +{ + AUTO_TRACE(m_servo_name + "::stow()"); + checkErrors(); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::stow(m_servo_name, (unsigned int)stow_position)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::StowErrorExImpl, std::string(m_servo_name + "::stow()").c_str()); + } +} + +void SRTBaseMinorServoImpl::stop() +{ + AUTO_TRACE(m_servo_name + "::stop()"); + checkErrors(); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::stop(m_servo_name)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, std::string(m_servo_name + "::stop()").c_str()); + } +} + +void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) +{ + AUTO_TRACE(m_servo_name + "::preset()"); + checkErrors(); + + if(virtual_coordinates.length() != m_virtual_axes) + { + //Wrong number of virtual_coordinates + } + else if(m_current_lookup_table.empty()) + { + // Empty lookup table, cannot execute + } + + std::vector<double> coords(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::preset(m_servo_name, coords)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::PositioningErrorExImpl, std::string(m_servo_name + "::preset()").c_str()); + } +} + +void SRTBaseMinorServoImpl::offset(const ACS::doubleSeq& virtual_offsets) +{ + AUTO_TRACE(m_servo_name + "::offset()"); + checkErrors(); + + if(virtual_offsets.length() != m_virtual_axes) + { + //Wrong number of virtual_offsets + } + + std::vector<double> offsets(virtual_offsets.get_buffer(), virtual_offsets.get_buffer() + virtual_offsets.length()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::OffsetErrorExImpl, std::string(m_servo_name + "::offset()").c_str()); + } +} + +void SRTBaseMinorServoImpl::setup(const char* configuration_name) +{ + m_current_lookup_table = getLookupTable(std::string(configuration_name)); +} + +std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(std::string properties_name) +{ + AUTO_TRACE(m_servo_name + "::getPropertiesTable()"); + + std::vector<std::string> properties; + + IRA::CDBTable table(getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "property_name", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field property_name", 0); + } + if(!error.isNoError()) + { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, dummy, error); + dummy.setCode(error.getErrorCode()); + dummy.setDescription((const char *)error.getDescription()); + throw dummy; + } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + properties.push_back(std::string(table["property_name"]->asString())); + } + table.closeTable(); + + return properties; +} + +SRTMinorServoLookupTable SRTBaseMinorServoImpl::getLookupTable(std::string configuration_name) +{ + AUTO_TRACE(m_servo_name + "::getLookupTable()"); + + IRA::CDBTable table(getContainerServices(), configuration_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "axis", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field axis", 0); + } + if(!table.addField(error, "coefficients", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field coefficients", 0); + } + if(!error.isNoError()) + { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, dummy, error); + dummy.setCode(error.getErrorCode()); + dummy.setDescription((const char *)error.getDescription()); + throw dummy; + } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + + SRTMinorServoLookupTable lookup_table; + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + std::string axis = std::string(table["axis"]->asString()); + + std::vector<double> coefficients; + + std::string coefficient_str; + std::stringstream stream(std::string(table["coefficients"]->asString())); + + while(std::getline(stream, coefficient_str, ',')) + { + coefficients.push_back(std::stod(std::regex_replace(coefficient_str, std::regex("\\s+"), ""))); + } + + lookup_table[axis] = coefficients; + } + table.closeTable(); + + return lookup_table; +} + +void SRTBaseMinorServoImpl::checkErrors() +{ + ACSErr::Completion_var comp; + if(block()->get_sync(comp.out()) || drive_cabinet_status()->get_sync(comp.out()) == MinorServo::DRIVE_CABINET_ERROR) + { + _THROW_EXCPT(MinorServoErrors::StatusErrorExImpl, std::string(m_servo_name + "::checkErrors()").c_str()); + } +} + +GET_PROPERTY_REFERENCE(ACS::ROboolean, m_enabled_ptr, enabled); +GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoCabinetStatus, m_drive_cabinet_status_ptr, drive_cabinet_status); +GET_PROPERTY_REFERENCE(ACS::ROboolean, m_block_ptr, block); +GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoOperativeMode, m_operative_mode_ptr, operative_mode); +GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, m_axes_enabled_ptr, axes_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_physical_positions_ptr, physical_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_positions_ptr, virtual_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_offsets_ptr, virtual_offsets); diff --git a/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp new file mode 100644 index 000000000..1fe27bfc1 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp @@ -0,0 +1,15 @@ +#include "SRTMinorServoImpl.h" + +using namespace maci; + +SRTGenericMinorServoImpl::SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : SRTBaseMinorServoImpl(componentName, containerServices) +{ + AUTO_TRACE(m_servo_name + "::SRTGenericMinorServoImpl()"); +} + +SRTGenericMinorServoImpl::~SRTGenericMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTGenericMinorServoImpl()"); +} + +MACI_DLL_SUPPORT_FUNCTIONS(SRTGenericMinorServoImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp new file mode 100644 index 000000000..d832853ce --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -0,0 +1,213 @@ +#include "SRTMinorServoBossCore.h" + +using namespace maci; + +SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl* component) +{ + AUTO_TRACE("SRTMinorServoBossCore::SRTMinorServoBossCore()"); + + m_boss_status = MinorServo::BOSS_STATUS_UNCONFIGURED; + + m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + m_requested_configuration = MinorServo::CONFIGURATION_UNKNOWN; + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Primario", MinorServo::CONFIGURATION_PRIMARY)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano1", MinorServo::CONFIGURATION_GREGORIAN1)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano2", MinorServo::CONFIGURATION_GREGORIAN2)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano3", MinorServo::CONFIGURATION_GREGORIAN3)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano4", MinorServo::CONFIGURATION_GREGORIAN4)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano5", MinorServo::CONFIGURATION_GREGORIAN5)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano6", MinorServo::CONFIGURATION_GREGORIAN6)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano7", MinorServo::CONFIGURATION_GREGORIAN7)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano8", MinorServo::CONFIGURATION_GREGORIAN8)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG1", MinorServo::CONFIGURATION_BWG1)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG2", MinorServo::CONFIGURATION_BWG2)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG3", MinorServo::CONFIGURATION_BWG3)); + m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG4", MinorServo::CONFIGURATION_BWG4)); + + m_component = component; + + m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(m_component->getContainerServices()); + m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); + + m_status = SRTMinorServoAnswerMap(); + m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); + m_status_secure_area = new IRA::CSecureArea<SRTMinorServoAnswerMap>(&m_status); + + m_GFR = m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); + m_SRP = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); + + m_servos.push_back((MinorServo::SRTBaseMinorServo_ptr)m_GFR); + m_servos.push_back((MinorServo::SRTBaseMinorServo_ptr)m_SRP); + + m_setup_thread = NULL; + m_park_thread = NULL; + + m_ready = false; +} + +SRTMinorServoBossCore::~SRTMinorServoBossCore() +{ + AUTO_TRACE("SRTMinorServoBossCore::~SRTMinorServoBossCore()"); + + if(m_setup_thread != NULL) + { + m_setup_thread->suspend(); + m_setup_thread->terminate(); + m_component->getContainerServices()->getThreadManager()->destroy(m_setup_thread); + } + if(m_park_thread != NULL) + { + m_park_thread->suspend(); + m_park_thread->terminate(); + m_component->getContainerServices()->getThreadManager()->destroy(m_park_thread); + } +} + +void SRTMinorServoBossCore::setup(std::string configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::setup()"); + + ACSErr::Completion_var comp; + + if(!checkControl() || m_component->emergency()->get_sync(comp.out())) + { + // Minor servos are controlled by VBrain or there is an emergency button pressed somewhere + // I raise OperationNotPermitted since there is no other, more fitting error + _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, "SRTMinorServoBossCore::setup()"); + } + + MinorServo::SRTMinorServoFocalConfiguration requested_configuration; + + try + { + requested_configuration = m_focal_configurations_table.left.at(configuration); + } + catch(std::out_of_range& ex) // Unknown configuration + { + _THROW_EXCPT(MinorServoErrors::ConfigurationErrorExImpl, "SRTMinorServoBossCore::setup()"); + } + + // Exit if commanded configuration is already in place + if(requested_configuration == m_current_configuration && (m_boss_status == MinorServo::BOSS_STATUS_CONFIGURED || m_boss_status == MinorServo::BOSS_STATUS_SETUP_IN_PROGRESS)) + { + return; + } + + m_requested_configuration = requested_configuration; + + // Stop the setup and park threads if running + if(m_setup_thread != NULL) + { + m_setup_thread->suspend(); + m_setup_thread->terminate(); + } + if(m_park_thread != NULL) + { + m_park_thread->suspend(); + m_park_thread->terminate(); + } + + m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + m_boss_status = MinorServo::BOSS_STATUS_SETUP_IN_PROGRESS; + + // Send the STOP command to each servo + for(auto& servo : m_servos) + { + servo->stop(); + } + + // Start the setup thread + if(m_setup_thread != NULL) + { + m_setup_thread->restart(); + } + else + { + try + { + m_setup_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoSetupThread, SRTMinorServoBossCore*>("SRTMinorServoBossCoreSetupThread", m_component->m_core); + } + catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) + { + _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::setup()"); + } + + m_setup_thread->resume(); + } +} + +void SRTMinorServoBossCore::park() +{ + AUTO_TRACE("SRTMinorServoBossCore::park()"); + + ACSErr::Completion_var comp; + + if(!checkControl() || m_component->emergency()->get_sync(comp.out())) + { + // Minor servos are controlled by VBrain or there is an emergency button pressed somewhere + // I raise OperationNotPermitted since there is no other, more fitting error + _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, "SRTMinorServoBossCore::setup()"); + } + + m_requested_configuration = MinorServos::CONFIGURATION_PARK; + + // Stop the setup and park threads if running + if(m_setup_thread != NULL) + { + m_setup_thread->suspend(); + m_setup_thread->terminate(); + } + if(m_park_thread != NULL) + { + m_park_thread->suspend(); + m_park_thread->terminate(); + } + + m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + m_boss_status = MinorServo::BOSS_STATUS_PARK_IN_PROGRESS; + + // Send the STOW command to the gregorian cover + if(std::get<std::string>(m_socket->sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2))["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::SetupErrorExImpl, "SRTMinorServoBossCore::park()"); + } + + // Send the STOP command to each servo + for(auto& servo : m_servos) + { + servo->stop(); + } + + // Start the park thread + if(m_park_thread != NULL) + { + m_park_thread->restart(); + } + else + { + try + { + m_park_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoParkThread, SRTMinorServoBossCore*>("SRTMinorServoBossCoreParkThread", m_component->m_core); + } + catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) + { + _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::park()"); + } + + m_park_thread->resume(); + } +} + +void SRTMinorServoBossCore::status() +{ + AUTO_TRACE("SRTMinorServoBossCore::status()"); + + IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> status = m_status_secure_area->Get(); + m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); +} + +bool SRTMinorServoBossCore::checkControl() +{ + ACSErr::Completion_var comp; + return m_component->control()->get_sync(comp.out()) == MinorServo::CONTROL_DISCOS ? true : false; +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp new file mode 100644 index 000000000..18aa0cf50 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -0,0 +1,250 @@ +#include "SRTMinorServoBossImpl.h" + +using namespace maci; +using namespace SimpleParser; + +SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : + CharacteristicComponentImpl(componentName, containerServices), + m_core(NULL), + m_parser(NULL), + m_current_configuration_ptr(this), + m_simulation_enabled_ptr(this), + m_plc_time_ptr(this), + m_plc_version_ptr(this), + m_control_ptr(this), + m_power_ptr(this), + m_emergency_ptr(this), + m_gregorian_cover_ptr(this), + m_last_executed_command_ptr(this) +{ + AUTO_TRACE("SRTMinorServoBossImpl::SRTMinorServoBossImpl()"); +} + +SRTMinorServoBossImpl::~SRTMinorServoBossImpl() +{ + AUTO_TRACE("SRTMinorServoBossImpl::~SRTMinorServoBossImpl()"); + + if(m_parser != NULL) + { + delete m_parser; + } + if(m_core != NULL) + { + delete m_core; + } +} + +void SRTMinorServoBossImpl::initialize() +{ + AUTO_TRACE("SRTMinorServoBossImpl::initialize()"); + + m_core = new SRTMinorServoBossCore(this); + + try + { + std::string component_name = getContainerServices()->getName().c_str(); + + SRTMinorServoDevIOInfo dev_io_info; + dev_io_info.secure_area = m_core->m_status_secure_area; + + dev_io_info.property_name = "current_configuration"; + dev_io_info.property_fields = std::vector<std::string>{ "CURRENT_CONFIG" }; + m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((component_name + ":current_configuration").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoFocalConfiguration>(dev_io_info), true); + + dev_io_info.property_name = "simulation_enabled"; + dev_io_info.property_fields = std::vector<std::string>{ "SIMULATION_ENABLED" }; + m_simulation_enabled_ptr = new baci::ROboolean((component_name + ":simulation_enabled").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + + dev_io_info.property_name = "plc_time"; + dev_io_info.property_fields = std::vector<std::string>{ "PLC_TIME" }; + m_plc_time_ptr = new baci::ROdouble((component_name + ":plc_time").c_str(), getComponent(), new MSDevIO<CORBA::Double>(dev_io_info), true); + + dev_io_info.property_name = "plc_version"; + dev_io_info.property_fields = std::vector<std::string>{ "PLC_VERSION" }; + m_plc_version_ptr = new baci::ROstring((component_name + ":plc_version").c_str(), getComponent(), new MSDevIO<ACE_CString>(dev_io_info), true); + + dev_io_info.property_name = "control"; + dev_io_info.property_fields = std::vector<std::string>{ "CONTROL" }; + m_control_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((component_name + ":control").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoControlStatus>(dev_io_info), true); + + dev_io_info.property_name = "power"; + dev_io_info.property_fields = std::vector<std::string>{ "POWER" }; + m_power_ptr = new baci::ROboolean((component_name + ":power").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + + dev_io_info.property_name = "emergency"; + dev_io_info.property_fields = std::vector<std::string>{ "EMERGENCY" }; + m_emergency_ptr = new baci::ROboolean((component_name + ":emergency").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + + dev_io_info.property_name = "gregorian_cover"; + dev_io_info.property_fields = std::vector<std::string>{ "GREGORIAN_CAP" }; + m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((component_name + ":gregorian_cover").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoGregorianCoverStatus>(dev_io_info), true); + + dev_io_info.property_name = "last_executed_command"; + dev_io_info.property_fields = std::vector<std::string>{ "LAST_EXECUTED_COMMAND" }; + m_last_executed_command_ptr = new baci::ROdouble((component_name + ":last_executed_command").c_str(), getComponent(), new MSDevIO<CORBA::Double>(dev_io_info), true); + } + catch(std::bad_alloc& ex) + { + _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl, "SRTMinorServoBossImpl::initialize()"); + } + + m_parser = new SimpleParser::CParser<SRTMinorServoBossImpl>(this, 10); + + m_parser->add("servoSetup", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setup), 1); + m_parser->add("servoPark", new function0<SRTMinorServoBossImpl, non_constant, void_type>(this, &SRTMinorServoBossImpl::park), 0); + m_parser->add("setServoElevationTracking", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setElevationTracking), 1); + m_parser->add("setServoASConfiguration", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setASConfiguration), 1); + m_parser->add("setServoOffset", new function2<SRTMinorServoBossImpl, non_constant, void_type, I<string_type>, I<double_type> >(this, &SRTMinorServoBossImpl::setOffsets), 2); + m_parser->add("clearServoOffsets", new function0<SRTMinorServoBossImpl, non_constant, void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); + + //m_GFR = getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); + //m_SRP = getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); + + try + { + double status_thread_period; + if(!IRA::CIRATools::getDBValue(getContainerServices(), "status_thread_period", status_thread_period)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoBossImpl::initialize()"); + exImpl.setFieldName("status_thread_period"); + throw exImpl; + } + m_status_thread = getContainerServices()->getThreadManager()->create<SRTMinorServoStatusThread, SRTMinorServoBossCore*>("SRTMinorServoBossImplStatusThread", m_core); + m_status_thread->setSleepTime(status_thread_period * 10000000); + m_status_thread->resume(); + } + catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) + { + _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::initialize()"); + } + catch(...) + { + _THROW_EXCPT(ComponentErrors::UnexpectedExImpl, "SRTMinorServoBossImpl::initialize()"); + } +} + +void SRTMinorServoBossImpl::execute() +{ + AUTO_TRACE("SRTMinorServoBossImpl::execute()"); +} + +void SRTMinorServoBossImpl::cleanUp() +{ + AUTO_TRACE("SRTMinorServoBossImpl::cleanUp()"); + stopPropertiesMonitoring(); + + if(m_status_thread != NULL) + { + m_status_thread->suspend(); + m_status_thread->terminate(); + } + + CharacteristicComponentImpl::cleanUp(); +} + +void SRTMinorServoBossImpl::aboutToAbort() +{ + AUTO_TRACE("SRTMinorServoBossImpl::aboutToAbort()"); + stopPropertiesMonitoring(); + + if(m_status_thread != NULL) + { + m_status_thread->suspend(); + m_status_thread->terminate(); + } + + CharacteristicComponentImpl::aboutToAbort(); +} + +void SRTMinorServoBossImpl::setup(const char* configuration) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setup()"); + m_core->setup(std::string(configuration)); +} + +void SRTMinorServoBossImpl::park() +{ + AUTO_TRACE("SRTMinorServoBossImpl::park()"); + m_core->park(); +} + +void SRTMinorServoBossImpl::setElevationTracking(const char* value) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setElevationTracking()"); +} + +void SRTMinorServoBossImpl::setASConfiguration(const char* value) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setASConfiguration()"); +} + +void SRTMinorServoBossImpl::setOffsets(const char* axis_code, const double& offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setOffset()"); +} + +void SRTMinorServoBossImpl::clearOffsets() +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); + // Loop through servos and clear their offsets +} + +CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time startingTime, const MinorServo::MinorServoScan &scan, const Antenna::TRunTimeParameters &antennaInfo, MinorServo::TRunTimeParameters_out msParameters) +{ + return true; +} + +void SRTMinorServoBossImpl::startScan(ACS::Time &startingTime, const MinorServo::MinorServoScan &scan, const Antenna::TRunTimeParameters &antennaInfo) +{ +} + +void SRTMinorServoBossImpl::closeScan(ACS::Time &timeToStop) +{ +} + +CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out answer) +{ + AUTO_TRACE("SRTMinorServoBossImpl::command()"); + + IRA::CString out; + bool res; + try + { + m_parser->run(cmd, out); + res = true; + } + catch(ParserErrors::ParserErrorsExImpl& ex) + { + res = false; + } + catch(ManagementErrors::ConfigurationErrorExImpl& ex) + { + ex.log(LM_ERROR); + res = false; + } + catch(ACSErr::ACSbaseExImpl& ex) + { + ex.log(LM_ERROR); + res = false; + } + catch(...) + { + ACS_SHORT_LOG((LM_WARNING, "SRTMinorServoBoss::command(): unknown exception.")); + res = false; + } + answer = CORBA::string_dup((const char *)out); + return res; +} + +GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoFocalConfiguration, m_current_configuration_ptr, current_configuration); +GET_PROPERTY_REFERENCE(ACS::ROboolean, m_simulation_enabled_ptr, simulation_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdouble, m_plc_time_ptr, plc_time); +GET_PROPERTY_REFERENCE(ACS::ROstring, m_plc_version_ptr, plc_version); +GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoControlStatus, m_control_ptr, control); +GET_PROPERTY_REFERENCE(ACS::ROboolean, m_power_ptr, power); +GET_PROPERTY_REFERENCE(ACS::ROboolean, m_emergency_ptr, emergency); +GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoGregorianCoverStatus, m_gregorian_cover_ptr, gregorian_cover); +GET_PROPERTY_REFERENCE(ACS::ROdouble, m_last_executed_command_ptr, last_executed_command); + +#include <maciACSComponentDefines.h> +MACI_DLL_SUPPORT_FUNCTIONS(SRTMinorServoBossImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp new file mode 100644 index 000000000..ab252745f --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -0,0 +1,59 @@ +#include "SRTMinorServoParkThread.h" + +SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): + ACS::Thread(name, responseTime, sleepTime), + m_core(core) +{ + m_thread_name = std::string(name.c_str()); + AUTO_TRACE(m_thread_name + "::SRTMinorServoParkThread()"); +} + +SRTMinorServoParkThread::~SRTMinorServoParkThread() +{ + AUTO_TRACE(m_thread_name + "::~SRTMinorServoParkThread()"); +} + +void SRTMinorServoParkThread::onStart() +{ + AUTO_TRACE(m_thread_name + "::onStart()"); +} + +void SRTMinorServoParkThread::onStop() +{ + AUTO_TRACE(m_thread_name + "::onStop()"); +} + +void SRTMinorServoParkThread::run() +{ + AUTO_TRACE(m_thread_name + "::run()"); + ACSErr::Completion_var comp; + double start_time = CIRATools::getUNIXEpoch(); + + while(true) + { + // First we check if the gregorian cover has closed + bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == MinorServo::COVER_STATUS_CLOSED ? true : false; + + // 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 MinorServo::SRTBaseMinorServo_ptr& servo) -> bool + { + ACSErr::Completion_var comp; + return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + })) + { + break; + } + + if(CIRATools::getUNIXEpoch() - start_time >= PARK_TIMEOUT) + { + m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; + m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + return; + } + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + + m_core->m_current_configuration = MinorServo::CONFIGURATION_PARK; + m_core->m_boss_status = MinorServo::BOSS_STATUS_CONFIGURED; +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp new file mode 100644 index 000000000..23a912897 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -0,0 +1,111 @@ +#include "SRTMinorServoSetupThread.h" + +SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): + ACS::Thread(name, responseTime, sleepTime), + m_core(core) +{ + m_thread_name = std::string(name.c_str()); + AUTO_TRACE(m_thread_name + "::SRTMinorServoSetupThread()"); +} + +SRTMinorServoSetupThread::~SRTMinorServoSetupThread() +{ + AUTO_TRACE(m_thread_name + "::~SRTMinorServoSetupThread()"); +} + +void SRTMinorServoSetupThread::onStart() +{ + AUTO_TRACE(m_thread_name + "::onStart()"); +} + +void SRTMinorServoSetupThread::onStop() +{ + AUTO_TRACE(m_thread_name + "::onStop()"); +} + +void SRTMinorServoSetupThread::run() +{ + AUTO_TRACE(m_thread_name + "::run()"); + double start_time = CIRATools::getUNIXEpoch(); + std::string configuration_name = m_core->m_focal_configurations_table.right.at(m_core->m_requested_configuration); + MinorServo::SRTMinorServoGregorianCoverStatus gregorian_cover_position = m_core->m_requested_configuration == MinorServo::CONFIGURATION_PRIMARY ? MinorServo::COVER_STATUS_CLOSED : MinorServo::COVER_STATUS_OPEN; + ACSErr::Completion_var comp; + + // Check if all the servos stopped + while(!std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const MinorServo::SRTBaseMinorServo_ptr& servo) -> bool + { + ACSErr::Completion_var comp; + return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + })) + { + if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) + { + m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; + m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + return; + } + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + + // Send the SETUP command + if(std::get<std::string>(m_core->m_socket->sendCommand(SRTMinorServoCommandLibrary::setup(configuration_name))["OUTPUT"]) != "GOOD") + { + _THROW_EXCPT(MinorServoErrors::SetupErrorExImpl, "SRTMinorServoBossCore::setup()"); + } + + // Wait for the system to show the commanded configuration + while(m_core->m_component->current_configuration()->get_sync(comp.out()) != m_core->m_current_configuration) + { + if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) + { + m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; + m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + return; + } + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + + // Wait for the whole system to reach the desired configuration + while(true) + { + // First we check the status of the gregorian cover + bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == gregorian_cover_position ? true : false; + + // Then we cycle through all the servos and make sure their operative mode is SETUP + if(completed && std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const MinorServo::SRTBaseMinorServo_ptr& servo) -> bool + { + ACSErr::Completion_var comp; + return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_SETUP ? true : false; + })) + { + break; + } + + if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) + { + m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; + m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + return; + } + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + + if(m_core->m_component->current_configuration()->get_sync(comp.out()) != m_core->m_requested_configuration) + { + m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; + m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; + return; + } + + // Finally load the servos coefficients + for(auto& servo : m_core->m_servos) + { + servo->setup(configuration_name.c_str()); + } + + m_core->m_current_configuration = m_requested_configuration; + m_core->m_boss_status = MinorServo::BOSS_STATUS_CONFIGURED; +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp index a66fa5e0a..2bb4529fb 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp @@ -1,5 +1,4 @@ #include "SRTMinorServoSocket.h" -#include <iostream> std::mutex SRTMinorServoSocket::c_mutex; @@ -84,7 +83,7 @@ SRTMinorServoSocket::~SRTMinorServoSocket() Close(m_error); } -SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) +SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) { std::lock_guard<std::mutex> guard(m_mutex); @@ -107,7 +106,6 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) Close(m_error); ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); exImpl.addData("Reason", "Timeout when sending command."); - std::cout << "Timeout sending command" << std::endl; throw exImpl; } } @@ -131,10 +129,64 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command) Close(m_error); ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); exImpl.addData("Reason", "Timeout when receiving answer."); - std::cout << "Timeout receiving answer" << std::endl; throw exImpl; } } + SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); + if(map) + { + map->get() = map_answer; + } + + return map_answer; +} + +SRTMinorServoSocketConfiguration& SRTMinorServoSocketConfiguration::getInstance(maci::ContainerServices* containerServices) +{ + if(m_instance == nullptr) + { + m_instance = new SRTMinorServoSocketConfiguration(containerServices); + } + + return *m_instance; +} + +SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices) +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + + IRA::CString _ip_address; + if(!IRA::CIRATools::getDBValue(containerServices, "IPAddress", _ip_address, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); + exImpl.setFieldName("IPAddress"); + throw exImpl; + } + m_ip_address = (std::string)_ip_address; + + DWORD port; + if(!IRA::CIRATools::getDBValue(containerServices, "Port", port, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); + exImpl.setFieldName("Port"); + throw exImpl; + } + else + { + m_port = port; + } + + if(!IRA::CIRATools::getDBValue(containerServices, "SocketTimeout", m_timeout, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); + exImpl.setFieldName("SocketTimeout"); + throw exImpl; + } +} + +SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration() +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration()"); - return SRTMinorServoCommandLibrary::parseAnswer(answer); + delete m_instance; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp new file mode 100644 index 000000000..34931063c --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -0,0 +1,47 @@ +#include "SRTMinorServoStatusThread.h" + +SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): + ACS::Thread(name, responseTime, sleepTime), + m_core(core) +{ + m_thread_name = std::string(name.c_str()); + AUTO_TRACE(m_thread_name + "::SRTMinorServoStatusThread()"); +} + +SRTMinorServoStatusThread::~SRTMinorServoStatusThread() +{ + AUTO_TRACE(m_thread_name + "::~SRTMinorServoStatusThread()"); +} + +void SRTMinorServoStatusThread::onStart() +{ + AUTO_TRACE(m_thread_name + "::onStart()"); + m_sleep_time = this->getSleepTime(); +} + +void SRTMinorServoStatusThread::onStop() +{ + AUTO_TRACE(m_thread_name + "::onStop()"); +} + +void SRTMinorServoStatusThread::runLoop() +{ + AUTO_TRACE(m_thread_name + "::runLoop()"); + + TIMEVALUE now; + IRA::CIRATools::getTime(now); + ACS::Time time = now.value().value; + ACS::Time next = time + m_sleep_time; + + m_core->status(); + + for(auto& servo : m_core->m_servos) + { + servo->status(); + } + + IRA::CIRATools::getTime(now); + time = now.value().value; + ACS::TimeInterval sleep_time = next - time; + this->setSleepTime(std::max(long(sleep_time), long(0))); +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp new file mode 100644 index 000000000..4a24df7cd --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -0,0 +1,34 @@ +#include "SRTMinorServoImpl.h" + +using namespace maci; + +SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : SRTBaseMinorServoImpl(componentName, containerServices) +{ + AUTO_TRACE(m_servo_name + "::SRTProgramTrackMinorServoImpl()"); +} + +SRTProgramTrackMinorServoImpl::~SRTProgramTrackMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTProgramTrackMinorServoImpl()"); +} + +void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, CORBA::Double start_time, const ACS::doubleSeq& virtual_coordinates) +{ + AUTO_TRACE("SRTProgramTrackMinorServoImpl::programTrack()"); + + if(virtual_coordinates.length() != m_virtual_axes) + { + //Wrong number of virtual_coordinates + } + + std::vector<double> coords(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coords, start_time)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + std::cout << "Cannot execute programTrack" << std::endl; + } +} + +MACI_DLL_SUPPORT_FUNCTIONS(SRTProgramTrackMinorServoImpl) -- GitLab From 2630ae611c5e5e168ce2a0dcf7185cbecef5d136 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 29 Nov 2023 09:34:03 +0100 Subject: [PATCH 044/150] Skarab component (#819) * implementing new Skarab component * adapted to skarab component * skarab components updates * skarab components updates --------- Co-authored-by: Carlo Migoni <migoni@oa-cagliari.inaf.it> --- .../BackendsInterface/idl/Skarab.idl | 138 ++ .../Interfaces/BackendsInterface/src/Makefile | 3 +- .../Skarab/config/CDB/schemas/Skarab.xsd | 134 ++ .../Skarab/config/CDB/schemas/SkarabSetup.xsd | 141 ++ Common/Servers/Skarab/include/CommandLine.h | 793 +++++++ Common/Servers/Skarab/include/Common.h | 52 + Common/Servers/Skarab/include/Configuration.h | 197 ++ Common/Servers/Skarab/include/ControlThread.h | 74 + .../Servers/Skarab/include/DevIOAttenuation.h | 99 + .../Servers/Skarab/include/DevIOBandWidth.h | 94 + Common/Servers/Skarab/include/DevIOBins.h | 95 + Common/Servers/Skarab/include/DevIOBusy.h | 100 + Common/Servers/Skarab/include/DevIOFeed.h | 94 + .../Servers/Skarab/include/DevIOFrequency.h | 95 + .../Skarab/include/DevIOInputSection.h | 95 + .../Skarab/include/DevIOInputsNumber.h | 97 + .../Servers/Skarab/include/DevIOIntegration.h | 97 + .../Skarab/include/DevIOPolarization.h | 95 + .../Servers/Skarab/include/DevIOSampleRate.h | 94 + .../Skarab/include/DevIOSectionsNumber.h | 97 + Common/Servers/Skarab/include/DevIOStatus.h | 97 + Common/Servers/Skarab/include/DevIOTime.h | 96 + Common/Servers/Skarab/include/DevIOTsys.h | 96 + Common/Servers/Skarab/include/Protocol.h | 345 +++ Common/Servers/Skarab/include/SenderThread.h | 171 ++ Common/Servers/Skarab/include/SkarabImpl.h | 503 ++++ Common/Servers/Skarab/src/CommandLine.cpp | 2093 +++++++++++++++++ Common/Servers/Skarab/src/Configuration.cpp | 224 ++ Common/Servers/Skarab/src/ControlThread.cpp | 43 + Common/Servers/Skarab/src/Makefile | 215 ++ Common/Servers/Skarab/src/Protocol.cpp | 596 +++++ Common/Servers/Skarab/src/SenderThread.cpp | 358 +++ Common/Servers/Skarab/src/SkarabImpl.cpp | 846 +++++++ .../Servers/Skarab/src/_send_backend_command | 37 + .../Components/BACKENDS/Skarab/Skarab.xml | 17 + .../SkarabContainer/SkarabContainer.xml | 30 + Medicina/CDB/alma/BACKENDS/Skarab/Skarab.xml | 45 + Medicina/CDB/alma/DataBlock/Skarab/Skarab.xml | 158 ++ 38 files changed, 8653 insertions(+), 1 deletion(-) create mode 100644 Common/Interfaces/BackendsInterface/idl/Skarab.idl create mode 100644 Common/Servers/Skarab/config/CDB/schemas/Skarab.xsd create mode 100644 Common/Servers/Skarab/config/CDB/schemas/SkarabSetup.xsd create mode 100644 Common/Servers/Skarab/include/CommandLine.h create mode 100644 Common/Servers/Skarab/include/Common.h create mode 100644 Common/Servers/Skarab/include/Configuration.h create mode 100644 Common/Servers/Skarab/include/ControlThread.h create mode 100644 Common/Servers/Skarab/include/DevIOAttenuation.h create mode 100644 Common/Servers/Skarab/include/DevIOBandWidth.h create mode 100644 Common/Servers/Skarab/include/DevIOBins.h create mode 100644 Common/Servers/Skarab/include/DevIOBusy.h create mode 100644 Common/Servers/Skarab/include/DevIOFeed.h create mode 100644 Common/Servers/Skarab/include/DevIOFrequency.h create mode 100644 Common/Servers/Skarab/include/DevIOInputSection.h create mode 100644 Common/Servers/Skarab/include/DevIOInputsNumber.h create mode 100644 Common/Servers/Skarab/include/DevIOIntegration.h create mode 100644 Common/Servers/Skarab/include/DevIOPolarization.h create mode 100644 Common/Servers/Skarab/include/DevIOSampleRate.h create mode 100644 Common/Servers/Skarab/include/DevIOSectionsNumber.h create mode 100644 Common/Servers/Skarab/include/DevIOStatus.h create mode 100644 Common/Servers/Skarab/include/DevIOTime.h create mode 100644 Common/Servers/Skarab/include/DevIOTsys.h create mode 100644 Common/Servers/Skarab/include/Protocol.h create mode 100644 Common/Servers/Skarab/include/SenderThread.h create mode 100644 Common/Servers/Skarab/include/SkarabImpl.h create mode 100644 Common/Servers/Skarab/src/CommandLine.cpp create mode 100644 Common/Servers/Skarab/src/Configuration.cpp create mode 100644 Common/Servers/Skarab/src/ControlThread.cpp create mode 100644 Common/Servers/Skarab/src/Makefile create mode 100644 Common/Servers/Skarab/src/Protocol.cpp create mode 100644 Common/Servers/Skarab/src/SenderThread.cpp create mode 100644 Common/Servers/Skarab/src/SkarabImpl.cpp create mode 100755 Common/Servers/Skarab/src/_send_backend_command create mode 100644 Medicina/CDB/MACI/Components/BACKENDS/Skarab/Skarab.xml create mode 100644 Medicina/CDB/MACI/Containers/SkarabContainer/SkarabContainer.xml create mode 100644 Medicina/CDB/alma/BACKENDS/Skarab/Skarab.xml create mode 100644 Medicina/CDB/alma/DataBlock/Skarab/Skarab.xml diff --git a/Common/Interfaces/BackendsInterface/idl/Skarab.idl b/Common/Interfaces/BackendsInterface/idl/Skarab.idl new file mode 100644 index 000000000..929a04b94 --- /dev/null +++ b/Common/Interfaces/BackendsInterface/idl/Skarab.idl @@ -0,0 +1,138 @@ +/* ******************************************************************************************* */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: Skarab.idl,v 1.1 2011-03-14 14:54:11 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Carlo Migoni (migoni@oa-cagliari.inaf.it) 12/05/2015 Creation */ + + +#ifndef _SKARAB_IDL_ +#define _SKARAB_IDL_ + +#include <baci.idl> +#include <enumpropMACRO.idl> +#include "GenericBackend.idl" + +#pragma prefix "alma" + +module Backends { + + /** + * The Skarab is a digital backend. bla bla bla + * <br> + * <table border=2> + * <tr><th>Feed</th><th>Carier board</th><th>Backend channel</th></tr> + * <tr><td>2L</td><td>1</td><td>Ch0</td></tr> + * <tr><td>2R</td><td>2</td><td>Ch1</td></tr> + * <tr><td>3L</td><td>3</td><td>Ch2</td></tr> + * <tr><td>3R</td><td>4</td><td>Ch3</td></tr> + * <tr><td>4L</td><td>5</td><td>Ch4</td></tr> + * <tr><td>4R</td><td>6</td><td>Ch5</td></tr> + * <tr><td>5L</td><td>7</td><td>Ch6</td></tr> + * <tr><td>5R</td><td>8</td><td>Ch7</td></tr> + * <tr><td>6L</td><td>9</td><td>Ch8</td></tr> + * <tr><td>6R</td><td>10</td><td>Ch9</td></tr> + * <tr><td>0L</td><td>11</td><td>Ch10</td></tr> + * <tr><td>0R</td><td>12</td><td>Ch11</td></tr> + * <tr><td>1L</td><td>13</td><td>Ch12</td></tr> + * <tr><td>1R</td><td>14</td><td>Ch13</td></tr> + * </table> + * With such a cabling in order to configure the input coming from the multi feed central beam the inputs 10 and 11 must be configured. + * @author <a href=mailto:a.orlati@ira.inaf.it>Andrea Orlati</a>, + * Istituto di Radioastronomia, Italia + * <br> + * @copybrief GenericBackend::time + * Since the multi feed total power backend is based on a FPGA that raturns the time with the precision of the second, the reported + * time has the same precision. + * @copybrief GenericBackend::frequency + * The backend has a fixed IF start frequecy which is 100 MHz, up to the bandwidth. The correct sky frequency can be set by changing + * the receivers local oscillator. + * @copybrief GenericBackend::bandWidth + * The backend provides 4 bandwidths: 2000MHz,1330MHz,825MHz,330MHz. The retunerd sequence is 14 position long, + * one for each if section. A zero means that the value if not configured yet. + * @copybrief GenericBackend::attenuation + * The values reported here correspond to the analog inputs. The attenuation range goes from 0 to 15. + * @copybrief GenericBackend::inputsNumber + * This value is hard coded and corresponds to the number of inputs of the backend. + * @copybrief GenericBackend::sampleRate + * This value is times in a second that the total power is acquired by the backend. The maximum value is 0.001 Mhz corresponding + * to a period of 1 millisecond. + * @copybrief GenericBackend::bins + * This value is fixed to 1 and cannot be changed. + * @copybrief GenericBackend::integration + * In this implementation the integration time is realized by the component using a very simple operation. Since the sample rate + * for this backend is somehow an integration time ( a sample rate of 4 Hz for example means that the total power counts are + * summed for 0.25 second) every sample is devided by the integration (seconds) and by the sample rate (Hz). Let's give a simple + * example, let's suppose 4Hz of sample rate(K) and 3 seconds of integration(M). That means that the backend will produce an output + * every 3 seconds, that output is the average of 12 samples (4 for each of the 3 seconds): + * \f$ U=\sum_{j=1}^M \sum_{i=1}^K \frac{s_{ij}}{MK} \f$. + * For better results this value should be a multiple of the sample period. + * @copybrief GenericBackend::polarization + * This values cannot be changed since they are fixed by hardware. The even inputs are connected to left polarization, the odd are + * right polarization. + * @copybrief GenericBackend::status + * The bits have the following meaning: + * @arg \c 0 if set the backend time is not properly synchronized (error) + * @arg \c 1 if set the backend is busy and cannot accept any command + * @arg \c 2 if set the backend is in tranfer mode but the transfer is suspended + * @arg \c 3 if set the backend is sampling + * @arg \c 4 set if the command line is not properly working (error) + * @arg \c 5 set if the data lineis not properly working (error) + * @copybrief GenericBackend::setTime() + * In this implementation only the fpga clock is set. The resolution is of one second. + * @copybrief GenericBackend::setSection() + * Frequency, polarization, feed and bins parameters are ignored since they could not be changed. So the user should provide a negative value + * for them, otherwise the component will post a warning log message. Since the backend is not capable of different sample rates, + * the given sampleRate is set for all the inputs. + * @copybrief GenericBackend::sendHeader() + * In this implementation the preparation for the data transfer takes some seconds. + * @copybrief GenericBackend::sendData() + * The call to this method must respect the backend latency time, if not the execution i suspended util that time is matched. + * The component must be suspended (transfer job started but data are not sent) in order for this function to complete succesfully. + * @copybrief GenericBackend::sendStop() + * The component must be active (not suspended) in order for this function to complete succefully. + * @copybrief GenericBackend::getTpi() + * Since the backend is an integrator the user has to take into account that any change will affect the integration after the change. So for example if the cal diode is fired it is wise to + * wait twice the integration time in order for the diode contribution to be fully measured. + * In case a negative is provided as argument the integration set for the 'fast' mode (<i>setIntegration()</i>) is used. + * @copybrief GenericBackend::getZero() + * Since this measure requires an input signal switching the backend is forced to wait two times the integration to allow the + * new signal level to stabilize. + */ + interface Skarab : GenericBackend { + + /** + * This method can be called to activate or disactivate the switching of the calibration noise diode. The mode the switching is done is controlled + * by the parameter and by the <i>sampleRate</i> attribute. If the component is busy it is not allowed to call this method. This method is + * only available if the connected receiver support it. + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param interleave this parmater controls the switching frequency of the calibration diode. If it is zero (default) the diode is not + * switched (always turned off). if a one is given the backend will produce one sample (using the <i>sampleRate</i>) + * with the mark switecehd off and one with the mark switched on. A two means two sample with the mark switched off and + * one with the mark switched on.....and so on. A negative will not change the value of the parameter. + */ + // void activateNoiseCalibrationSwitching(in long interleave) raises (ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This method can be used to initialize the backend. Since this hardware can be connected to various receiver some parameter must be set before + * any further use. This parameter will stay fixed until a new initilization is issued. At start up a default initialization is commanded but can be + * changed at any time. If the component is busy it is not allowed to call this method. + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param configuration this string must contain the sequence of character that identifies the configuration that must be loaded. If the sequence is not + * known an excpetion is thrown + */ + + void initialize(in string configuration) raises (ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + void getConfiguration(out string configuration); + + void getCommProtVersion(out string version); + }; + +}; + +#endif diff --git a/Common/Interfaces/BackendsInterface/src/Makefile b/Common/Interfaces/BackendsInterface/src/Makefile index 4d83ba566..a794bbbbb 100644 --- a/Common/Interfaces/BackendsInterface/src/Makefile +++ b/Common/Interfaces/BackendsInterface/src/Makefile @@ -33,7 +33,7 @@ CDB_SCHEMAS = GenericBackend DigitalXCorrelator Holography CalMuxTable # # IDL Files and flags # -IDL_FILES = GenericBackend BackendsBoss TotalPower NoiseGenerator DigitalXCorrelator Holography DBBC DFBInterface Sardara CalDiodeController CalMux +IDL_FILES = GenericBackend BackendsBoss TotalPower NoiseGenerator DigitalXCorrelator Holography DBBC DFBInterface Sardara CalDiodeController CalMux Skarab IDL_TAO_FLAGS = USER_IDL = @@ -49,6 +49,7 @@ HolographyStubs_LIBS = baciStubs GenericBackendStubs DBBCStubs_LIBS = baciStubs GenericBackendStubs DFBInterfaceStubs_LIBS = baciStubs GenericBackendStubs SardaraStubs_LIBS = baciStubs GenericBackendStubs +SkarabStubs_LIBS = baciStubs GenericBackendStubs CalDiodeControllerStubs_LIBS = baciStubs ComponentErrorsStubs CalMuxStubs_LIBS = baciStubs ComponentErrorsStubs CalDiodeControllerStubs diff --git a/Common/Servers/Skarab/config/CDB/schemas/Skarab.xsd b/Common/Servers/Skarab/config/CDB/schemas/Skarab.xsd new file mode 100644 index 000000000..f6e5b67cc --- /dev/null +++ b/Common/Servers/Skarab/config/CDB/schemas/Skarab.xsd @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + - $Id: Skarab.xsd,v 1.3 2011-05-12 14:14:31 a.orlati Exp $ + - Author: Andrea Orlati + - + - History: + - 18-09-2008 Created +--> + +<xs:schema + targetNamespace="urn:schemas-cosylab-com:Skarab:1.0" + xmlns="urn:schemas-cosylab-com:Skarab:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:bcknd="urn:schemas-cosylab-com:GenericBackend:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:GenericBackend:1.0" schemaLocation="GenericBackend.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + +<!-- + <xs:simpleType name="TBkndConfiguration"> + <xs:annotation><xs:documentation> + Enlist all possible configuration for the backend. many parameters can change for example the number of inputs, + the input type (BWG,Gregorian....) the used devices and so on. All the configuration are hard coded in the component, + so in order to add a configuration a piece of code in the component shoud reflect the addition. + </xs:documentation></xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="KKC"> + <xs:annotation><xs:documentation> + the backend is connected to the 14 inputs of the secondary focus 22GHz 7 feeds receiver + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="CCC"> + <xs:annotation><xs:documentation> + the backend is connected to the 2 inputs of the secondary focus 5GHz receiver, LCP and RCP are reported respectively + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="XXP"> + <xs:annotation><xs:documentation> + the backend is connected to the 2 inputs of the primary focus 8GHz receiver, RCP and LCP are reported respectively + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="CCB"> + <xs:annotation><xs:documentation> + the backend is connected to the 2 inputs of the 7GHz receiver of SRT, RCP and LCP are reported respectively + </xs:documentation></xs:annotation> + </xs:enumeration> + + </xs:restriction> + </xs:simpleType> +--> + + <xs:complexType name="BackendStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROpattern"> + <xs:attribute name="resolution" type="xs:unsignedLong" use="optional" default="64"/> + <xs:attribute name="bitDescription" type="xs:string" use="optional" default= + "Time_Sync,Busy,Suspended,Sampling,CmdLine,DataLine"/> + <xs:attribute name="whenSet" type="xs:string" use="optional" default= + "0, 1, 1, 1, 0, 0"/> + <xs:attribute name="whenCleared" type="xs:string" use="optional" default= + "2, 3, 3, 3, 2, 2"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SkarabType"> + <xs:complexContent> + <xs:extension base="bcknd:GenericBackendType"> + <xs:sequence> + <xs:element name="time" type="baci:ROuLongLong" /> + <xs:element name="backendName" type="baci:ROstring" /> + <xs:element name="bandWidth" type="baci:ROdoubleSeq" /> + <xs:element name="frequency" type="baci:ROdoubleSeq" /> + <xs:element name="sampleRate" type="baci:ROdoubleSeq" /> + <xs:element name="attenuation" type="baci:ROdoubleSeq" /> + <xs:element name="polarization" type="baci:ROlongSeq" /> + <xs:element name="bins" type="baci:ROlongSeq" /> + <xs:element name="feed" type="baci:ROlongSeq" /> + <xs:element name="systemTemperature" type="baci:ROdoubleSeq" /> + <xs:element name="inputSection" type="baci:ROlongSeq" /> + <xs:element name="inputsNumber" type="baci:ROlong" /> + <xs:element name="sectionsNumber" type="baci:ROlong" /> + <xs:element name="integration" type="baci:ROlong" /> + <xs:element name="status" type="BackendStatusType" /> + <xs:element name="busy" type="mng:BooleanType" /> + </xs:sequence> + <xs:attribute name="IPAddress" type="xs:string" use="required" /> + <xs:attribute name="Port" type="xs:unsignedShort" use="required" /> + <!-- timeout (microseconds) applied when trying to connect to the backend --> + <xs:attribute name="ConnectTimeout" type="xs:unsignedLong" use="required" /> + <!-- timeout (microseconds) applied when trying to receive data from the to the backend --> + <xs:attribute name="CommandLineTimeout" type="xs:unsignedLong" use="required" /> + <!-- this time (microseconds) is considered validity period of the properties. When this period is elapsed the component will equery + again the hardware --> + <xs:attribute name="PropertyRefreshTime" type="xs:unsignedLong" use="required"/> + <!-- indicates the default configuration of the backend --> + <xs:attribute name="Configuration" type="xs:string" use="required" /> + <!-- Tollerance used when dealing with time synchronization and checks, in particular to deal with jitter beween backend and host computer and with network latencies --> + <xs:attribute name="TimeTollerance" type="xs:unsignedLong" use="required" /> + <!-- the cache time (microseconds) for logging repetition filter --> + <xs:attribute name="RepetitionCacheTime" type="xs:unsignedLong" use="required" /> + <!-- the expire time (microseconds) for logging repetition filter --> + <xs:attribute name="RepetitionExpireTime" type="xs:unsignedLong" use="required" /> + <!-- data line tcp port --> + <xs:attribute name="DataPort" type="xs:unsignedShort" use="required" /> + <!-- data line tcp address --> + <xs:attribute name="DataIPAddress" type="xs:string" use="required" /> + <!-- data line latency (microseconds) --> + <xs:attribute name="DataLatency" type="xs:unsignedLong" use="required" /> + <!-- Sender thread sleep time (microseconds), sender duty cycle--> + <xs:attribute name="SenderSleepTime" type="xs:unsignedLong" use="required" /> + <!-- Sender thread response time (microseconds), hart beat time --> + <xs:attribute name="SenderResponseTime" type="xs:unsignedLong" use="required" /> + <!-- Control thread sleep time (microseconds), that's its duty cycle--> + <xs:attribute name="ControlSleepTime" type="xs:unsignedLong" use="required" /> + <!-- Control thread response time (microseconds), hart beat time --> + <xs:attribute name="ControlResponseTime" type="xs:unsignedLong" use="required" /> + <!-- Total number of installed boards--> + <xs:attribute name="BoardsNumber" type="xs:unsignedLong" use="required" /> + <!-- The size of the data buffer (bytes) --> + <xs:attribute name="DataBufferSize" type="xs:unsignedLong" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="Skarab" type="SkarabType"/> + +</xs:schema> diff --git a/Common/Servers/Skarab/config/CDB/schemas/SkarabSetup.xsd b/Common/Servers/Skarab/config/CDB/schemas/SkarabSetup.xsd new file mode 100644 index 000000000..d492a9a9b --- /dev/null +++ b/Common/Servers/Skarab/config/CDB/schemas/SkarabSetup.xsd @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + - $Id: SkarabSetup.xsd,v 1.1 2011-03-14 14:15:07 a.orlati Exp $ + - Author: Andrea Orlati + - + - History: + - 17-01-2011 Created +--> + +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SkarabSetup:1.0" + xmlns="urn:schemas-cosylab-com:SkarabSetup:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd"/> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd"/> + + <xs:simpleType name="EnabledType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="TRUE"> + <xs:annotation><xs:documentation> + boolean true value + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="FALSE"> + <xs:annotation><xs:documentation> + boolean flase value + </xs:documentation></xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="SelectedPortType"> + <xs:annotation><xs:documentation> + selects which port has to be selected for the present confuguration + </xs:documentation></xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="PRIMARY"> + <xs:annotation><xs:documentation> + the backend will selects input from primary focus + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="BWG"> + <xs:annotation><xs:documentation> + the backend will selects input from Beam Wave Guide focus + </xs:documentation></xs:annotation> + </xs:enumeration> + <xs:enumeration value="GREGORIAN"> + <xs:annotation><xs:documentation> + the backend will selects input from Gregorian focus + </xs:documentation></xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:element name="inputPort"> + <xs:simpleType> + <xs:list itemType="SelectedPortType" /> + </xs:simpleType> + </xs:element> + + <xs:complexType name="TTableHeader"> + <xs:sequence> + <xs:element name="configurationID" type="xs:string"> + <xs:annotation><xs:documentation> + identifier of the configuration + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="sections" type="xs:long"> + <xs:annotation><xs:documentation> + The number of sections exported for the present configuration + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="calSwitchingEnabled" type="EnabledType"> + <xs:annotation><xs:documentation> + true if the calibration mark switching could be used + </xs:documentation></xs:annotation> + </xs:element> + <xs:element ref="inputPort" minOccurs="1" maxOccurs="unbounded"> + <xs:annotation><xs:documentation> + selects from which port the RF inputs has to be taken for the present configuration, if more than one value is provided the inputs + are configured on sinble board basis. The numbero of enties shoudl be less than the numebr of installed boards. The board not directly + involved in the configuration (i.e stated on the section_boards section) will be configured with 0 attenuation andd full bandwidth + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="beams" type="xs:long"> + <xs:annotation><xs:documentation> + number of beams of the receiver attached to the backend + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="bandWidth" type="xs:double"> + <xs:annotation><xs:documentation> + this set the default bandwidth of the RF input + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="attenuation" type="xs:double"> + <xs:annotation><xs:documentation> + this sets the default attenuation of all the RF input + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="section_boards" type="xs:string"> + <xs:annotation><xs:documentation> + blank separated lists of boards implementing the section + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="polarizations" type="xs:string"> + <xs:annotation><xs:documentation> + for each section indicates which polarizations the section is processing, blank separated list + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="feed" type="xs:string"> + <xs:annotation><xs:documentation> + for each sections indicates which is the linked feed + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="IF" type="xs:string"> + <xs:annotation><xs:documentation> + for each section, given the feed, indicates which is the linked IF + </xs:documentation></xs:annotation> + </xs:element> + <xs:element name="bins" type="xs:long"> + <xs:annotation><xs:documentation> + number of bins of the configuration backend + </xs:documentation></xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="TSkarabSetup"> + <xs:sequence> + <xs:element name="Configuration" type="TTableHeader" + minOccurs="1" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:element name="SkarabSetup" type="TSkarabSetup"/> + +</xs:schema> diff --git a/Common/Servers/Skarab/include/CommandLine.h b/Common/Servers/Skarab/include/CommandLine.h new file mode 100644 index 000000000..0afdf2768 --- /dev/null +++ b/Common/Servers/Skarab/include/CommandLine.h @@ -0,0 +1,793 @@ +#ifndef _COMMANDLINE_H_ +#define _COMMANDLINE_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + +#include <IRA> +#include <ComponentErrors.h> +#include <BackendsErrors.h> +#include <SkarabS.h> +#include <TotalPowerS.h> +#include <GenericIFDistributorS.h> +#include <string> +#include <sstream> +#include <DiscosBackendProtocol> +#include "Common.h" +//#include "Protocol.h" +#include "Configuration.h" + +using namespace maci; +using namespace DiscosBackend; +using namespace std; + +/** + * This class is inherited from the IRA::CSocket class. It takes charge of setting the configuration to the backend. + * if the remote side disconnects or a problem affects the communication line, this class try to reconnect to the backend + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia + * <br> +*/ +class CCommandLine: public CSocket +{ +friend class CSenderThread; +public: + enum TLineStatus { + NOTCNTD, /*!< Socket is not connected, no operation available */ + CNTDING, /*!< Connection is in progress, no operation available */ + CNTD /*!< Socket is connected and ready, line is ready */ + }; + /** + * Constructor. + */ + CCommandLine(ContainerServices *service); + /** + * Destructor + */ + virtual ~CCommandLine(); + + /** + * This member function is used to enstablish and configure the communication channel. + * The first connection is performed in blocking mode(if it fails the component fails to load), the the socket is + * trasformed in non-blocking mode. + * This must be the first call before using any other function of this class. + * @param config pointer to the component configuration data structure + * @throw ComponentErrors::SocketError + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImpl + * @throw BackendsErrors::NakExImpl + */ + void Init(CConfiguration *config) throw (ComponentErrors::SocketErrorExImpl, + ComponentErrors::ValidationErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::CDBAccessExImpl); + + /** + * Call this function to get the number of inputs + * In this implementation the inputs number is the same of the number of section (SIMPLE_SECTION) + */ + //inline void getInputsNumber(long &in) const { in=m_sectionsNumber; } + inline void getInputsNumber(long &in) const { in=m_inputsNumber; } + + /** + * Call this function to get the milliseconds of integration time + */ + void getIntegration(long &integr) const { integr=m_integration; + /*resultingSampleRate(m_integration,m_commonSampleRate,integr)*/; + } + + /** + * Call this function in order to get the start frequency value for each section. + */ + void getFrequency(ACS::doubleSeq& freq) const; + void getFrequencyAttr(ACS::doubleSeq& freq) const; + + /** + * Call this function in order to get the sample rate for each section. + */ + void getSampleRate(ACS::doubleSeq& sr) const; + + /** + * Call this function in order to get the number of bins for each section. + */ + void getBins(ACS::longSeq& bins) const; + + /** + * Call this function in order to get the polarization for each section. + */ + void getPolarization(ACS::longSeq& pol) const; + + /** + * Call this function in order to get the component status back + */ + void getBackendStatus(DWORD& status); + + /** + * Call this function in order to get the feed connected to each section. + */ + void getFeed(ACS::longSeq& feed) const; + void getFeedAttr(ACS::longSeq& feed) const; + + /** + * Call this function in order to get the IF connected to each input. + */ + void getIFs(ACS::longSeq& ifs) const; + + /** + * Call this function in order to know which section an input is attached to. + */ + void getInputSection(ACS::longSeq& inpSection) const; + void getInputSectionAttr(ACS::longSeq& inpSection) const; + + /** + * Call this function in order to get the last measure of the system temperature. + */ + void getTsys(ACS::doubleSeq& tsys) const; + + /** + * Call this function in order to get the last measure of the Kelvin/Counts ratio. + */ + void getKCRatio(ACS::doubleSeq& ratio) const; + + /** + * Call this function to know if the baceknd is busy or not. This function is remapped on the BUSY field of the backed status + */ + bool getIsBusy() const { return (m_backendStatus & (1 << BUSY)); } + + /** + * Call this function in order to get the attenuation values for each input. + * @param att this is a sequence of double values that correspond to the attenuation for each analog input. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::ConnectionExImp + */ + void getAttenuation(ACS::doubleSeq& att) throw (ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl); + + void getAttenuationAttr(ACS::doubleSeq& att) throw (ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl); + /** + * Call this function in order to get the current band width of each input. + * @param bw this is a sequence of double values that correspond to the bandwidth of each analog input. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::ConnectionExImp + */ + void getBandWidth(ACS::doubleSeq& bw) throw (ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl); + void getBandWidthAttr(ACS::doubleSeq& bw) const; + + /** + * Call this function in order to get the time clock reported by the backend. + * @param tt backend time, as numebr of 100 ns from 1582-10-15 00:00:00 + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::ConnectionExImp + */ + void getTime(ACS::Time& tt) throw (ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl); + + /** + * Call this function in order to set the time of the backend FPGA. The time will be set according to the local computer + * time. + @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::BackendBusyExImpl + */ + void setTime() throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl, + BackendsErrors::BackendBusyExImpl); + + /** + * This function is called by the control thread in order to check the beackend clock matches with the host computer clock. In the two times do not + * match a log file in sent and the TIME_SYNC flag is set. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::MalformedAnswerExImpl + */ + void checkTime() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::MalformedAnswerExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl); + + /** + * This method starts the calibration diode switching. + * @throw BackendsErrors::BackendBusyExImpl + * @thorw ,ComponentErrors::NotAllowedExImpl + * @param interleave this will control the switcing mode. An integer positive(N) will command the backend to produce N samples + * when the calibration diode is turned off and then one with the calibration diode turned on. A zero disable the switching + * (default), whilst a negative will not change the current configuration + */ + void activateCalSwitching(const long& interleave) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::NotAllowedExImpl); + + /** + * This function must be called in order to change the integration time + * @throw (BackendsErrors::BackendBusyExImpl + * @param integration new integration time in milliseconds. A negative value has no effect. + */ + void setIntegration(const long& integration) throw (BackendsErrors::BackendBusyExImpl, ComponentErrors::ValueOutofRangeExImpl); + + /** + * This methos will changes the current value of the <i>m_enabled</i> array. + * @throw BackendsErrors::BackendBusyExImpl + * @param en new values sequence for the <i>m_enabled</i> elements. A value grater than zero correspond to a true, + * a zero match to a false, while a negative will keep the things unchanged. + */ + void setEnabled(const ACS::longSeq& en) throw (BackendsErrors::BackendBusyExImpl); + + /** + * This function can be called in order to load an initial setup for the backend. Some parameter are fixed and cannot be changed during normal + * operation. In order for this call to suceed the backend must be ready and not busy with other operation. This operation will also reset all configuration + * to the defaults. + * @throw BackendsErrors::BackendBusyExImpl + * @throw BackendsErrors::ConfigurationErrorExImpl + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImpl + * @throw ComponentErrors::SocketErrorExImpl + * @throw BackendsErrors::NakExImpl + * @param conf identifier of the configuration to be loaded + */ + void setup(const char *conf) throw (BackendsErrors::BackendBusyExImpl,BackendsErrors::ConfigurationErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,ComponentErrors::CDBAccessExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl); + + void setTargetFileName(const char *conf); + + void sendTargetFileName() throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl); + + /** + * This function can be used to set up an input of the backend. The input is identified by its numeric value. If a configuration + * parameter is negative the current value is not changed. Since the backend hardware does not support different sample rates + * the last commanded sample rate is considered also for all other inputs. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw ComponentErrors::ValueOutOfRangeExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw BackendErrors::BackendBusyExImpl + * @param inputId identifier of the input. If negative all the inputs are configured in one shot, otherwise + * it must be between 0 and the number of inputs. + * @param freq initial frequency of the input filter. This parameter is ignored. It is expected a negative, otherwise a warning message is logged. + * @param bw bandwidth of the filter in MHz. . + * @param feed feed identifier, this parameter is ignored. It is expected a negative, otherwise a warning message is logged. + * @param pol polarization of the input, this is fixed by hardware and could not be changed so it is ignored. It is expected a negative, otherwise a warning message is logged. + * @param sr new sample rate, the maximum allowed value is 0.001 MHz. + * @param bins number of bins of the input, it can only be 1, so it is ignored. It is expected a negative, otherwise a warning message is logged. + */ + void setConfiguration(const long& inputId,const double& freq,const double& bw,const long& feed,const long& pol, const double& sr,const long& bins) throw ( + ComponentErrors::ValidationErrorExImpl,BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::ValueOutofRangeExImpl, + BackendsErrors::BackendBusyExImpl); + + /** + * This function will start an acquisition job. The job will be created suspended and requires an explicit + * resum in order to begin the data flow. The backend will just connect to a specific socket. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendErrors::BackendBusyExImpl + */ + void startDataAcquisition() throw (BackendsErrors::BackendBusyExImpl,BackendsErrors::ConnectionExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl); + + /** + * This function will stop the current acquisition job. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw ComponentErrors::NotAllowedExImpl + */ + void stopDataAcquisition() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::NotAllowedExImpl,BackendsErrors::BackendFailExImpl); + + /** + * This function will stop the current acquisition job without caring about the component or the backend status + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw ComponentErrors::NotAllowedExImpl + */ + void stopDataAcquisitionForced() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::NotAllowedExImpl); + + /** + * This function will resume an acquisition job. This function will also check if the backend latency time is respected. + * if the time between the invocation of this method and <i>startDataAcquisition</i> is lesser than the latency the execution + * is suspended for the required time. If the component is not suspended an exception is thrown. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw ComponentErrors::NotAllowedExImpl + * @param startT epoch at which the acquisition is supposed to start + * @return the epoch of the real expected start time. + */ + ACS::Time resumeDataAcquisition(const ACS::Time& startT) throw (BackendsErrors::ConnectionExImpl,ComponentErrors::NotAllowedExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::BackendFailExImpl); + + /** + * This function will suspend the data acquisition job. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImpl + * @throw BackendsErrors::NakExImpl + * @throw ComponentErrors::NotAllowedExImpl + */ + void suspendDataAcquisition() throw (BackendsErrors::ConnectionExImpl,ComponentErrors::NotAllowedExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::BackendFailExImpl); + + /** + * Called to get a single measure of the total power for each in channel. The measure is done by the slow mode of the backend + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::BackendBusyExImpl + * @param tpi this is a sequence (allocated by the caller) of at least N positions, where N is the number of channels. Each element + * of the vector cointains the total power of the corresponding channel. + * @param zero if true the returned measure refers to a backend configuration in which the signal is coming from the 50 Ohm input. In that + * case the answer is delayed by an ammount of time that allows the signal to settled down. + */ + void getSample(ACS::doubleSeq& tpi,bool zero) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl); + + /** + * This a wrapper function of the <i>getSample()</i> method. In this case the sample correspond th the total power measurment in each channel. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::BackendBusyExImpl + * @param tpi this is a sequence (allocated by the caller) of at least N positions, where N is the number of channels. Each element + * of the vector cointains the total power of the corresponding channel. + */ + void getTpi(ACS::doubleSeq& tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl); + + + void getRms(ACS::doubleSeq& rms) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl); + + /** + * This a wrapper function of the <i>getSample()</i> method. In this case the sample correspond the power measurment in each channel with full attenuation. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::BackendBusyExImpl + * @param tpi this is a sequence (allocated by the caller) of at least N positions, where N is the number of channels. Each element + * of the vector cointains the total power of the corresponding channel. + */ + void getZero(ACS::doubleSeq& tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl); + + + /** + * Called to get the TPI measure when the attenuators are all in. Differently from <i>getSample()</i> it will return the counts returned + * by the backend for the configured sample rate. The measure also is not normalized for the integration time. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + * @throw BackendsErrors::MalformedAnswerExImpl + * @throw BackendsErrors::BackendBusyExImpl + * @param tpi array that contains for each element the tpi value for any input channel. + */ + void getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl, + BackendsErrors::BackendBusyExImpl); + + /** + * Called to configure the attenuation level for each input of the backend. + * @throw BackendsErrors::BackendBusyExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + * @throw BackendsErrors::NakExImpl, + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImpl + * @param identifier of the input. + * @param attenuation new input level. It must lay between 0 and 15. A negative will keep the previous value; + */ + void setAttenuation(const long&inputId, const double& attenuation) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl); + + /** + * Called to configure a range where compute a Tsys. + * @throw BackendsErrors::BackendBusyExImpl + * @throw ComponentErrors::ValidationErrorExImpl + * @throw ComponentErrors::ValueOutofRangeExImpl + * @throw BackendsErrors::NakExImpl, + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImpl + * @param starting frequency + * @param bandwidth range; + */ + void setTsysRange(const double& freq, const double& bw) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl); + + /** + * Called by the component to fill the <i>Backends::TMainHeader</i> with the proper informations. + * @param bkd the stucture that contains the required information. + */ + void fillMainHeader(Backends::TMainHeader& bkd); + + /** + * Called to fill the sequence of the <i>Backends:channelHeader</i> with the proper information. Only the enabled channel + * are reported. + * @param chHr pointer to a (caller allocated) vector that will contains the information section by section + * @param size size of the input vector, used to avoid to exceed the vector limits + */ + void fillChannelHeader(Backends::TSectionHeader *chHr,const long& size); + + /** + * Called by the implementation of the interface to inform the component of the last tsys measurement and the Kelvin/counts ratio. + * @param tsys sequence of doubles with the tsys for each input. + * @param ration ratio between Kelvin and counts as determined during the last tsys measurement + */ + void saveTsys(const ACS::doubleSeq& tsys,const ACS::doubleSeq& ratio); + + /** + * return the array that contains the mapping of sections over boards. + */ + long *boardsMapping() { return m_boards; } + + long sectionNumber() { return m_sectionsNumber; } + + /** + * Computes the resulting integration time considering the sample rate and the integration time. + * @param integration current integration time (msec) + * @param sr current sample rate (MHz) + * @param result integration time resulting from the two parameters + * @return true if the resulting integration has to be rounded to match the two input parameters + */ + static bool resultingSampleRate(const long& integration,const double& sr,long& result); + + //int getConfiguration(char* configuration); + void getConfiguration(char* configuration); + + int getCommProtVersion(CORBA::String_out version); + + IRA::CString m_targetFileName; + +protected: + /** + * Automatically called by the framework as a result of a connection request. See super-class for more details. + * @param ErrorCode connection operation result, zero means operation is succesful. + */ + void onConnect(int ErrorCode); + /** + * Automatically called by the framework if the connection doesn't happens before the allotted time expires. See super-class for more details. + * @param EventMask event that timeouted. + */ + void onTimeout(WORD EventMask); + +private: + + ContainerServices* m_services; + Backends::TotalPower_var m_totalPower; + //Receivers::GenericIFDistributor_var m_ifDistributor; + + /** + * List the fields of the backend status + */ + enum TstatusFields { + TIME_SYNC=0, /*!< backend time not sync */ + BUSY=1, /*!< backend is busy(transfer job initiated) and cannot accept other commands */ + SUSPEND=2, /*!< backend data flow is suspended */ + SAMPLING=3, /*!< backend is recording */ + CMDLINERROR=4, /*!< error in the command line */ + DATALINERROR=5 /*!< error in the data line */ + }; + /** Connection status */ + TLineStatus m_status; + /**This flag indicates if the socket has timedout */ + bool m_bTimedout; + bool m_reiniting; + /** It contains error information */ + CError m_Error; + /** Component configuration data */ + CConfiguration *m_configuration; + /** This is the epoch of the last update from the backend */ + TIMEVALUE m_lastUpdate; + /** + * This mark the stat time fo the acquisition, used to check if the + * real transfer respect the backend initialization latency + */ + TIMEVALUE m_acquisitionStartEpoch; + /** + * attenuator value for each backend input + */ + double m_attenuation[MAX_SECTION_NUMBER]; + /** + * bandwidth value for each backend input + */ + double m_bandWidth[MAX_SECTION_NUMBER]; + /** + * frequency value for each backend input + */ + double m_frequency[MAX_SECTION_NUMBER]; + /** + * the sample rate associated to each input + */ + double m_sampleRate[MAX_SECTION_NUMBER]; + /** + * The sample rate currently configured in the backend, given as sample period in milliseconds + */ + long m_currentSampleRate; + /** + * Since the backend is not capable to have different sample rate this is used for common + */ + double m_commonSampleRate; + /** + * allows to link a section to its proper board number + */ + long m_boards[MAX_SECTION_NUMBER]; + + /** + * Allows to link a board number to its section + */ + long m_sections[MAX_BOARDS_NUMBER]; + /** + * the polarization of each backend input + */ + Backends::TPolarization m_polarization[MAX_SECTION_NUMBER]; + /** + * the number of bins that each input will deliver + */ + long m_bins[MAX_SECTION_NUMBER]; + /** + * input type for each backend section + */ + //CProtocol::TInputs m_input[MAX_SECTION_NUMBER]; + /** + * Indicates if the input is enabled or not. A disabled input will not produce output data + */ + bool m_enabled[MAX_SECTION_NUMBER]; + /** + * indicates the feed number the input is connected to. Configuration dependent + */ + long m_feedNumber[MAX_SECTION_NUMBER]; + /** + * Indicates the if number (relative to the feed) the input is attached to. + */ + long m_ifNumber[MAX_SECTION_NUMBER]; + /** + * indicates which section the input belongs to. + */ + long m_inputSection[MAX_SECTION_NUMBER]; + /** + * input type for the initial configuration + */ + //CProtocol::TInputs m_defaultInput[MAX_BOARDS_NUMBER]; + WORD m_defaultInputSize; + /** + * That's the clock of the backend. Is has the precision of one second + */ + TIMEVALUE m_backendTime; + /** + * This is a pattern variable that soters the status of the component + */ + DWORD m_backendStatus; + /** + * millisecond of integration + */ + long m_integration; + /** + * reports for the number of inputs, for this implementation it happens that number of inputs is equal to the number of sections. + */ + long m_sectionsNumber; + + /** + * reports the number of beams (in the current configuration) that the backend deal with + */ + long m_beams; + + /** + * if true indicates that the connected receiver supports the fast calibration mark switching. It can only be changed + * by selecting a configuration (@sa <i>initializeConfiguration()</i> + */ + bool m_calSwitchingEnabled; + + /** + * reports the size of the samples in the current configuration + */ + long m_sampleSize; + /** + * Represents the period of the cal diode switching, expressed as multiple of the sample period. + * 0 means the switching is disable, 1 means that the cal diode is switched every sample period + */ + long m_calPeriod; + /** + * The configuration of the integration time when a tpi measure is done is required the first time this measure is done and every time the integration time changes. It is also required + * when the backend has started and completed an acquisition job. This flag keep track of when the initialization must be done (true). + */ + bool m_setTpiIntegration; + /** + * Name of the host that run the component + */ + IRA::CString m_hostName; + /** + * IP address of the host that run the component + */ + IRA::CString m_hostAddress; + + /** + * It stores the last available tsys measurement + */ + double m_tsys[MAX_SECTION_NUMBER]; + + /** + * It stores the last available ration Kelvin/counts + */ + double m_KCratio[MAX_SECTION_NUMBER]; + + /** + * It stores the last available total power measurement + */ + //double m_tpi[MAX_SECTION_NUMBER]; + + /** + * It stores the last measure of zero TPI + */ + double m_tpiZero[MAX_SECTION_NUMBER]; + + long m_inputsNumber; + + double m_filter; + + double m_TsysRange_freq; + double m_TsysRange_bw; + + /** + * Pointer to the configuration table, every record of the table stores a possible backend setup. + */ + IRA::CDBTable * m_configTable; + + /** + * This function will upload the default configuration into the backend. This method should be called at the component startup + * in order prevent the inconsistent status of the backend when it not configured yet. The deafult configuration is BWG, 8db + * and 2000Mhz bandwidth. The integration time is also loaded. + * @throw ComponentErrors::SocketErrorExImpl + * @arg \c ComponentErrors::IRALibraryResource + * @throw ComponentErrors::TimeoutExImpl + * @throw BackendsErrors::ConnectionExImp + * @throw BackendsErrors::NakExImpl + */ + void setDefaultConfiguration(const IRA::CString & config) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl); + + /** + * This method is called to set up the component in order to get the desired configuration. Defaults and + * hard coded values are set according to the configuration. + * @param config name of the configuration to be loaded + * @return false if the configuration name is not coded or known + */ + bool initializeConfiguration(const IRA::CString & config) throw (ComponentErrors::CDBAccessExImpl); + + /** + * Check if the connection is still up and ready. If a previuos call timed out it will check the status of the connection. + * Insted if the connection is off it will try a reconnect. In both case the return value is false. + * @return true if the connection is ok + */ + bool checkConnection(); + + /** + * Sets the antenna status. + * @param sta the new antenna status. + */ + void setStatus(TLineStatus sta); + + /** + * @return the current line status + */ + inline const TLineStatus& getStatus() const { return m_status; } + + /** + * This member function is called to send a command to the backend + * @param Msg ponter to the byte buffer that contains the message + * @param Len length of the buffer + * @return SUCCESS if the buffer was sent correctly, WOULDBLOCK if the send would block, FAIL and the <i>m_Error</i> member is set accordingly. + */ + OperationResult sendBuffer(char *Msg,WORD Len); + + /** + * This member function is called to receive a buffer. if it realizes that the remote side disconnected it sets the member <i>m_Status</i> + * to NOTCNTD. + * @param Msg ponter to the byte buffer that will contain the answer + * @param Len length of the buffer, that means the exact number of bytes that can be read + * @return the number of bytes read, 0 if the connection fell down, FAIL in case of error and the <i>m_Error</i> member is set accordingly, + * WOULDBLOCK if the timeout expires + */ + int receiveBuffer(char *Msg,WORD Len); + + /** + * This private member function is used to send a command to the connected device. It waits for the answer. + * @param Buff pointer to the buffer that contains the message to send to the device, on exit it will cointains the aswer. + * @param inLen lenght of the input buffer. + * @param outBuff pointer to the buffer that contains the message from the other side as answer to the sent message. + * @return a positive number if the command was correctly received by the other side, else -1 in case of error, -2 if the timeout expires + */ + int sendCommand(char *inBuff,const WORD& inLen,char *outBuff); + + /** + * Sends a message to the backend and return the message reply. + * @throws BackendProtocolError + */ + Message sendBackendCommand(Message request); + + /** + * This function is used to keep update the properties. At every request it checks if the last update is enough recent (update time not expired), + * if not it takes charge of collecting new data. + * @return a number greater than zero if the operation is succesfully, else FAIL in case of error, WOULDBLOCK if the timeout expires, + * 0 if the remoteside disconnected or -100 is the answer of the backend is malformed + */ + //int getConfiguration(char* configuration); + + /** + * This function will set the status bit corresponding to the given field + */ + inline void setStatusField(TstatusFields field) { m_backendStatus |= 1 << field; } + + /** + * This function will unset (cleared) the status bit corresponding to the given field + */ + inline void clearStatusField(TstatusFields field) { m_backendStatus &= ~(1 << field); } + + bool m_SKARAB_1; + bool m_SKARAB_1S; + bool m_SKARAB_2; + bool m_SKARAB_2S; + bool m_SKARAB_3; + bool m_SKARAB_3S; + bool m_SKARAB_4; + bool m_SKARAB_4S; + bool m_SKARAB_5; + bool m_SKARAB_5S; + + bool m_stationSRT; + bool m_stationMED; + + bool m_SkarabInitialized; + + bool m_stokes; + +}; + +#endif /*_COMMANDLINE_H_*/ diff --git a/Common/Servers/Skarab/include/Common.h b/Common/Servers/Skarab/include/Common.h new file mode 100644 index 000000000..a7803b39a --- /dev/null +++ b/Common/Servers/Skarab/include/Common.h @@ -0,0 +1,52 @@ +#ifndef _COMMON_H_ +#define _COMMON_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +// if define the data are not sent to the bulk data transfer but printed to the screen. For production version it must be +// commented out +//#define BKD_DEBUG + +// some hard coded, hardware dependant constants +#define STARTFREQUENCY 0.0 // this is the start frequency of all IF inputs +#define MIN_FREQUENCY 0.0 // min frequency of all IF inputs +#define MAX_FREQUENCY 1500.0 // max frequency of all IF inputs +#define BINSNUMBER 1000 +#define SAMPLETYPE float +#define SAMPLESIZE sizeof(SAMPLETYPE) // + +#define SENDBUFFERSIZE 512 +#define RECBUFFERSIZE 512 +#define DATABUFFERSIZE 64000 +#define MAX_SECTION_NUMBER 14 +#define MAX_BOARDS_NUMBER 14 + +#define DEFAULT_SAMPLE_RATE 3000.0 //one sample every 40 milliseconds +//#define DEFAULT_SAMPLE_RATE 0.001 //one sample every 1 milliseconds +#define DEFAULT_INTEGRATION 40 // milliseconds of integration +#define MIN_INTEGRATION 5 // milliseconds of integration +#define MAX_INTEGRATION 1000 // milliseconds of integration +#define DEFAULT_DIODE_SWITCH_PERIOD 0 // the cal diode is not switched + +#define MAX_BAND_WIDTH 2300.0 +#define MIN_BAND_WIDTH 0.0 + +#define MAX_ATTENUATION 15.0 +#define MIN_ATTENUATION 0.0 + +#define MAX_BINS 65536 +#define MIN_BINS 1024 + +#define MAX_SAMPLE_RATE 4600.0 // MHz + +#define FLOW_NUMBER 1 +#endif /*COMMON_H_*/ diff --git a/Common/Servers/Skarab/include/Configuration.h b/Common/Servers/Skarab/include/Configuration.h new file mode 100644 index 000000000..7315fcb53 --- /dev/null +++ b/Common/Servers/Skarab/include/Configuration.h @@ -0,0 +1,197 @@ +#ifndef _CONFIGURATION_H_ +#define _CONFIGURATION_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + +#include <IRA> +#include <maciContainerServices.h> +#include <ComponentErrors.h> +#include <SkarabS.h> +#include "Protocol.h" +#include "Common.h" + +using namespace IRA; + +/** + * This class implements the component configurator. The data inside this class are initialized at the startup from the + * configuration database and then are used (read) inside the component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia + * <br> + */ +class CConfiguration { +public: + typedef struct { + IRA::CString setupID; + long sections; + bool calSwitchEnabled; + CProtocol::TInputs inputPort[MAX_SECTION_NUMBER]; + WORD inputPorts; + long beams; + long section_boards[MAX_SECTION_NUMBER]; + Backends::TPolarization polarizations[MAX_SECTION_NUMBER]; + long feed[MAX_SECTION_NUMBER]; + long ifs[MAX_SECTION_NUMBER]; + double bandWidth; + double attenuation; + long bins; + } TBackendSetup; + + /** + * Constructor + */ + CConfiguration(); + + /** + * Destructor + */ + ~CConfiguration(); + /** + * This member function is used to configure component by reading the configuration parameter from the CDB. + * This must be the first call before using any other function of this class. + * @throw CDBAccess + * @throw MemoryAllocation + * @throw IRALibraryResource + * @param Services pointer to the container services object + */ + void init(maci::ContainerServices *Services) throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl,ComponentErrors::IRALibraryResourceExImpl); + + /** + * @return the port number + */ + inline const WORD& getPort() const { return m_wPort; } + + /** + * @return the TCP/IP address of the listening server + */ + inline const IRA::CString getAddress() const {return m_sAddress; } + + /** + * @return the timeout when receiving from the command socket(in microseconds) + */ + inline const DWORD getCommandLineTimeout() const { return m_dwCommandLineTimeout; } + + /** + * @return the timeout in microseconds when trying to reconnect to the backend + */ + inline const DWORD getConnectTimeout() const { return m_dwConnectTimeout; } + + /** + * @return the time in microseconds that is taken between two property refreshes + */ + inline const DWORD getPropertyRefreshTime() const { return m_dwPropertyRefreshTime; } + + /** + * @return the name of the configuration that the backend have to implement + */ + inline const IRA::CString getConfiguration() const { return m_sConfig; } + + /** + * @return the number of microseconds that the log filter will cache a log message + */ + inline DWORD getRepetitionCacheTime() const { return m_dwRepetitionCacheTime; } + + /** + * @return the number of microseconds that the log filter will take as expiration time for a log message + */ + inline DWORD getRepetitionExpireTime() const { return m_dwRepetitionExpireTime; } + + /** + * @return the number of microseconds that the backend will take after a command issue to sent the first data + */ + inline DWORD getDataLatency() const { return m_dwDataLatency; } + + /** + * @return the port number for the data line + */ + inline const WORD& getDataPort() const { return m_wDataPort; } + + /** + * @return the sleep time of the sender thread in microseconds + */ + inline const DWORD& getSenderSleepTime() const { return m_dwSenderSleepTime; } + + /** + * @return the response time of the sender thread in microseconds + */ + inline const DWORD& getSenderResponseTime() const { return m_dwSenderResponseTime; } + + /** + * @return the sleep time of the control thread in microseconds + */ + inline const DWORD& getControlSleepTime() const { return m_dwControlSleepTime; } + + /** + * @return the response time of the control thread in microseconds + */ + inline const DWORD& getControlResponseTime() const { return m_dwControlResponseTime; } + + /** + * @return the time tollerance in microsenconds. + */ + inline const DWORD& getTimeTollerance() const { return m_dwTimeTollerance; } + + /** + * @return the server address for the data transfer (it should be the address of the machine, running this component + */ + inline const IRA::CString& getDataIPAddress() const { return m_sDataAddress; } + + /** + * @return the number of boards installed ion the backend + */ + inline const DWORD& getBoardsNumber() const { return m_dwBoardsNumber; } + + /** + * @return the size of data packet from the backend in bytes + */ + inline const DWORD getDataBufferSize() const { return m_dwDataBufferSize; } + + /** + * This function returns the setups of the backend given the setup ID. + * @param setupID setup identifier or mnemonic + * @param setup structure containing the setup parameters. + * @return true if the setup is present, false if not present or the configuration from the CDB is not correct + */ + bool getSetupFromID(const IRA::CString setupID,TBackendSetup& setup) throw (ComponentErrors::CDBAccessExImpl); + +private: + WORD m_wPort; + IRA::CString m_sAddress; + DWORD m_dwCommandLineTimeout; + DWORD m_dwConnectTimeout; + DWORD m_dwPropertyRefreshTime; + IRA::CString m_sConfig; + DWORD m_dwRepetitionCacheTime; + DWORD m_dwRepetitionExpireTime; + WORD m_wDataPort; + IRA::CString m_sDataAddress; + DWORD m_dwDataLatency; + DWORD m_dwSenderSleepTime; + DWORD m_dwSenderResponseTime; + DWORD m_dwTimeTollerance; + DWORD m_dwControlSleepTime; + DWORD m_dwControlResponseTime; + DWORD m_dwBoardsNumber; + DWORD m_dwDataBufferSize; + /** + * This is the table used to load from the CDB the backend configurations + */ + IRA::CDBTable* m_configurationTable; + /* + * Parse the inputs string in order to extract and check the inputs port configuration for each board + * @param conf input string + * @param inputPort resulting port configuration + * @param size dimension of the inputPort array + */ + bool getInputPorts(const IRA::CString& conf,CProtocol::TInputs* inputPort,WORD& size); +}; + +#endif /*CONFIGURATION_H_*/ diff --git a/Common/Servers/Skarab/include/ControlThread.h b/Common/Servers/Skarab/include/ControlThread.h new file mode 100644 index 000000000..e18d26f8e --- /dev/null +++ b/Common/Servers/Skarab/include/ControlThread.h @@ -0,0 +1,74 @@ +#ifndef CONTROLTHREAD_H_ +#define CONTROLTHREAD_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + +#include <acsThread.h> +#include <IRA> +#include "CommandLine.h" + +/** + * This class inheriths from the ACS thread base class. It allows to run separate thread that performs a continuos check of the backend status + * even if no client is connected + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia + * <br> + */ +class CControlThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param parameter pointer to the object that is the thread running argument + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + CControlThread(const ACE_CString& name,CSecureArea<CCommandLine> *parameter, + const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, + const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~CControlThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. The method is executed in a loop until the thread is alive. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + +protected: + CSecureArea<CCommandLine>* m_pData; +}; + + + + + + + + + + +#endif /*CONTROLTHREAD_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOAttenuation.h b/Common/Servers/Skarab/include/DevIOAttenuation.h new file mode 100644 index 000000000..0128058a1 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOAttenuation.h @@ -0,0 +1,99 @@ +#ifndef _DEVIOATTENUATION_H_ +#define _DEVIOATTENUATION_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the attenuation property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOAttenuation : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOAttenuation(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOAttenuation::DevIOAttenuation()"); + } + + /** + * Destructor + */ + ~DevIOAttenuation() + { + ACS_TRACE("DevIOAttenuation::~DevIOAttenuation()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOAttenuation::initializeValue()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + //line->getAttenuationAttr(m_val); + line->getAttenuation(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOAttenuation::read()"); + dummy.setPropertyName("attenuation"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::doubleSeq m_val; + //CLogGuard m_logGuard; +}; + + + + + +#endif /*DEVIOATTENUATION_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOBandWidth.h b/Common/Servers/Skarab/include/DevIOBandWidth.h new file mode 100644 index 000000000..c5f246e01 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOBandWidth.h @@ -0,0 +1,94 @@ +#ifndef _DEVIOBANDWIDTH_H_ +#define _DEVIOBANDWIDTH_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the bandWidth property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOBandWidth : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOBandWidth(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOBandWidth::DevIOBandWidth()"); + } + + /** + * Destructor + */ + ~DevIOBandWidth() + { + ACS_TRACE("DevIOBandWidth::~DevIOBandWidth()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOBandWidth::initializeValue()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getBandWidthAttr(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOBandWidth::read()"); + dummy.setPropertyName("bandWidth"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::doubleSeq m_val; + //CLogGuard m_logGuard; +}; + +#endif /*_DEVIOBANDWIDTH_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOBins.h b/Common/Servers/Skarab/include/DevIOBins.h new file mode 100644 index 000000000..88848a970 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOBins.h @@ -0,0 +1,95 @@ +#ifndef _DEVIOBINS_H_ +#define _DEVIOBINS_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the bins property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOBins : public DevIO<ACS::longSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOBins(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOBins::DevIOBins()"); + } + + /** + * Destructor + */ + ~DevIOBins() + { + ACS_TRACE("DevIOBins::~DevIOBins()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOBins::DevIOBins()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::longSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getBins(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOBins::read()"); + dummy.setPropertyName("Bins"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::longSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::longSeq m_val; + //CLogGuard m_logGuard; +}; + + + +#endif /*_DEVIOBINS_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOBusy.h b/Common/Servers/Skarab/include/DevIOBusy.h new file mode 100644 index 000000000..a60bc5831 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOBusy.h @@ -0,0 +1,100 @@ +#ifndef _DEVIOBUSY_H_ +#define _DEVIOBUSY_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the busy property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOBusy : public DevIO<Management::TBoolean> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOBusy(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOBusy::DevIOBusy()"); + } + + /** + * Destructor + */ + ~DevIOBusy() + { + ACS_TRACE("DevIOBusy::~DevIOBusy()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOBusy::initializaValue()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + Management::TBoolean read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + if (line->getIsBusy()) { + m_val=Management::MNG_TRUE; + } + else { + m_val=Management::MNG_FALSE; + } + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOBusy::read()"); + dummy.setPropertyName("busy"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const Management::TBoolean& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + Management::TBoolean m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOBUSY_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOFeed.h b/Common/Servers/Skarab/include/DevIOFeed.h new file mode 100644 index 000000000..3a1345d71 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOFeed.h @@ -0,0 +1,94 @@ +#ifndef DEVIOFEED_H_ +#define DEVIOFEED_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the feed property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOFeed : public DevIO<ACS::longSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that protects the command line socket. This object must be already initialized and configured. + */ + DevIOFeed(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOFeed::DevIOFeed()"); + } + + /** + * Destructor + */ + ~DevIOFeed() + { + ACS_TRACE("DevIOFeed::~DevIOFeed()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOFeed::DevIOFeed()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::longSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getFeedAttr(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOFeed::read()"); + dummy.setPropertyName("feed"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::longSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::longSeq m_val; + //CLogGuard m_logGuard; +}; + +#endif /*DEVIOFEED_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOFrequency.h b/Common/Servers/Skarab/include/DevIOFrequency.h new file mode 100644 index 000000000..b0e7201fa --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOFrequency.h @@ -0,0 +1,95 @@ +#ifndef _DEVIOFREQUENCY_H_ +#define _DEVIOFREQUENCY_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the frequency property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOFrequency : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOFrequency(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOFrequency::DevIOFrequency()"); + } + + /** + * Destructor + */ + ~DevIOFrequency() + { + ACS_TRACE("DevIOFrequency::~DevIOFrequency()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOFrequency::DevIOFrequency()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyErrorketError + * @param timestamp epoch when the operation completes + */ + ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getFrequencyAttr(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOFrequency::read()"); + dummy.setPropertyName("frequency"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::doubleSeq m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOFREQUENCY_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOInputSection.h b/Common/Servers/Skarab/include/DevIOInputSection.h new file mode 100644 index 000000000..e31db4beb --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOInputSection.h @@ -0,0 +1,95 @@ +#ifndef DEVIOINPUTSECTION_H_ +#define DEVIOINPUTSECTION_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the InputSection property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOInputSection : public DevIO<ACS::longSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that protects the command line socket. This object must be already initialized and configured. + */ + DevIOInputSection(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOInputSection::DevIOInputSection()"); + } + + /** + * Destructor + */ + ~DevIOInputSection() + { + ACS_TRACE("DevIOInputSection::~DevIOInputSection()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOInputSection::DevIOInputSection()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::longSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + //line->getInputSectionAttr(m_val); + line->getInputSection(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOInputSection::read()"); + dummy.setPropertyName("inputSection"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::longSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::longSeq m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*DEVIOINPUTSECTION_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOInputsNumber.h b/Common/Servers/Skarab/include/DevIOInputsNumber.h new file mode 100644 index 000000000..33bb5e672 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOInputsNumber.h @@ -0,0 +1,97 @@ +#ifndef _DEVIOINPUTSNUMBER_H_ +#define _DEVIOINPUTSNUMBER_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the inputsNumber property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOInputsNumber : public DevIO<CORBA::Long> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOInputsNumber(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOInputsNumber::DevIOInputsNumber()"); + } + + /** + * Destructor + */ + ~DevIOInputsNumber() + { + ACS_TRACE("DevIOInputsNumber::~DevIOInputsNumber()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOInputsNumber::DevIOInputsNumber()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + CORBA::Long read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + long val; + line->getInputsNumber(val); + m_val=(CORBA::Long)val; + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOInputsNumber::read()"); + dummy.setPropertyName("inputsNumber"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const CORBA::Long& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + CORBA::Long m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOINPUTSNUMBER_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOIntegration.h b/Common/Servers/Skarab/include/DevIOIntegration.h new file mode 100644 index 000000000..8e5f18490 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOIntegration.h @@ -0,0 +1,97 @@ +#ifndef _DEVIOINTEGRATION_H_ +#define _DEVIOINTEGRATION_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the integration property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOIntegration : public DevIO<CORBA::Long> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOIntegration(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOIntegration::DevIOIntegration()"); + } + + /** + * Destructor + */ + ~DevIOIntegration() + { + ACS_TRACE("DevIOIntegration::~DevIOIntegration()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOIntegration::initializaValue()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + CORBA::Long read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + long val; + line->getIntegration(val); + m_val=(CORBA::Long)val; + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOIntegration::read()"); + dummy.setPropertyName("integration"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const CORBA::Long& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + CORBA::Long m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOINTEGRATION_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOPolarization.h b/Common/Servers/Skarab/include/DevIOPolarization.h new file mode 100644 index 000000000..0f9a3509b --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOPolarization.h @@ -0,0 +1,95 @@ +#ifndef _DEVIOPOLARIZATION_H_ +#define _DEVIOPOLARIZATION_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the polarization property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOPolarization : public DevIO<ACS::longSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOPolarization(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOPolarization::DevIOPolarization()"); + } + + /** + * Destructor + */ + ~DevIOPolarization() + { + ACS_TRACE("DevIOPolarization::~DevIOPolarization()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOPolarization::DevIOPolarization()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyErrorr + * @param timestamp epoch when the operation completes + */ + ACS::longSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getPolarization(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOPolarization::read()"); + dummy.setPropertyName("polarization"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::longSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::longSeq m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOPOLARIZATION_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOSampleRate.h b/Common/Servers/Skarab/include/DevIOSampleRate.h new file mode 100644 index 000000000..b80471edd --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOSampleRate.h @@ -0,0 +1,94 @@ +#ifndef _DEVIOSAMPLERATE_H_ +#define _DEVIOSAMPLERATE_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the sampleRate property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOSampleRate : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOSampleRate(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOSampleRate::DevIOSampleRate()"); + } + + /** + * Destructor + */ + ~DevIOSampleRate() + { + ACS_TRACE("DevIOSampleRate::~DevIOSampleRate()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOSampleRate::DevIOSampleRate()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getSampleRate(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOSampleRate::read()"); + dummy.setPropertyName("sampleRate"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::doubleSeq m_val; + //CLogGuard m_logGuard; +}; + +#endif /*DEVIOSAMPLERATE_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOSectionsNumber.h b/Common/Servers/Skarab/include/DevIOSectionsNumber.h new file mode 100644 index 000000000..04477d1b0 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOSectionsNumber.h @@ -0,0 +1,97 @@ +#ifndef _DEVIOSECTIONSNUMBER_H_ +#define _DEVIOSECTIONSNUMBER_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the sectionsNumber property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOSectionsNumber : public DevIO<CORBA::Long> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that protects the command line socket. This object must be already initialized and configured. + */ + DevIOSectionsNumber(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOSectionsNumber::DevIOSectionsNumber()"); + } + + /** + * Destructor + */ + ~DevIOSectionsNumber() + { + ACS_TRACE("DevIOSectionsNumber::~DevIOSectionsNumber()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOSectionsNumber::DevIOSectionsNumber()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + CORBA::Long read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + long val; + line->getInputsNumber(val); + m_val=(CORBA::Long)val; + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOSectionsNumber::read()"); + dummy.setPropertyName("sectionsNumber"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const CORBA::Long& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + CORBA::Long m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOINPUTSNUMBER_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOStatus.h b/Common/Servers/Skarab/include/DevIOStatus.h new file mode 100644 index 000000000..7499ee4c8 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOStatus.h @@ -0,0 +1,97 @@ +#ifndef _DEVIOSTATUS_H_ +#define _DEVIOSTATUS_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the status property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOStatus : public DevIO<ACS::pattern> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOStatus(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOStatus::DevIOStatus()"); + } + + /** + * Destructor + */ + ~DevIOStatus() + { + ACS_TRACE("DevIOStatus::~DevIOStatus()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOStatus::DevIOStatus()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::pattern read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + DWORD ptrn; + line->getBackendStatus(ptrn); + //m_val=(ACS::pattern)ptrn; + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOStatus::read()"); + dummy.setPropertyName("status"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::pattern& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::pattern m_val; + //CLogGuard m_logGuard; +}; + + +#endif /*_DEVIOSTATUS_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOTime.h b/Common/Servers/Skarab/include/DevIOTime.h new file mode 100644 index 000000000..519cdd7c7 --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOTime.h @@ -0,0 +1,96 @@ +#ifndef _DEVIOTIME_H_ +#define _DEVIOTIME_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the time property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOTime : public DevIO<CORBA::ULongLong> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOTime(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOTime::DevIOTime()"); + } + + /** + * Destructor + */ + ~DevIOTime() + { + ACS_TRACE("DevIOTime::~DevIOTime()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOTime::DevIOTime()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + CORBA::ULongLong read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + ACS::Time time; + line->getTime(time); + m_val=(CORBA::ULongLong)time; + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOTime::read()"); + dummy.setPropertyName("time"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const CORBA::ULongLong& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + CORBA::ULongLong m_val; + //CLogGuard m_logGuard; +}; + +#endif /*_DEVIOTIME_H_*/ diff --git a/Common/Servers/Skarab/include/DevIOTsys.h b/Common/Servers/Skarab/include/DevIOTsys.h new file mode 100644 index 000000000..03e8687ed --- /dev/null +++ b/Common/Servers/Skarab/include/DevIOTsys.h @@ -0,0 +1,96 @@ +#ifndef DEVIOTSYS_H_ +#define DEVIOTSYS_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <baciDevIO.h> +#include <IRA> +#include "CommandLine.h" + +using namespace IRA; + +/** + * This class is derived from template DevIO and it is used by the systemTemperature property of the TotalPower + * component. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia +*/ +class DevIOTsys : public DevIO<ACS::doubleSeq> +{ +public: + + /** + * Constructor + * @param Link pointer to a SecureArea that proctects a the command line socket. This object must be already initialized and configured. + */ + DevIOTsys(CSecureArea<CCommandLine>* Link) : m_pLink(Link) + { + AUTO_TRACE("DevIOTsys::DevIOTsys()"); + } + + /** + * Destructor + */ + ~DevIOTsys() + { + ACS_TRACE("DevIOTsys::~DevIOTsys()"); + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + AUTO_TRACE("DevIOTsys::initializeValue()"); + return false; + } + + /** + * Used to read the property value. + * @throw ComponentErrors::PropertyError + * @param timestamp epoch when the operation completes + */ + ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + // get the CommandLine ....... + CSecAreaResourceWrapper<CCommandLine> line=m_pLink->Get(); + try { + line->getTsys(m_val); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl,dummy,E,"DevIOTsys::read()"); + dummy.setPropertyName("systemTemperature"); + dummy.setReason("Property could not be read"); + //_IRA_LOGGUARD_LOG_EXCEPTION(m_logGuard,dummy,LM_DEBUG); + throw dummy; + } + timestamp=getTimeStamp(); //complition time + return m_val; + } + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) + { + timestamp=getTimeStamp(); + return; + } + +private: + CSecureArea<CCommandLine>* m_pLink; + ACS::doubleSeq m_val; + //CLogGuard m_logGuard; +}; + + + +#endif /*DEVIOTSYS_H_*/ diff --git a/Common/Servers/Skarab/include/Protocol.h b/Common/Servers/Skarab/include/Protocol.h new file mode 100644 index 000000000..ea9fe586d --- /dev/null +++ b/Common/Servers/Skarab/include/Protocol.h @@ -0,0 +1,345 @@ +#ifndef _PROTOCOL_H_ +#define _PROTOCOL_H_ + +/* **************************************************************************************************** */ +/* IRA Istituto di Radioastronomia */ +/* $Id: Protocol.h,v 1.2 2011-05-12 14:14:31 a.orlati Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Andrea Orlati(aorlati@ira.inaf.it) 13/11/2008 Creation */ + +#include <IRA> + +#define PROT_TERMINATOR_CH '\n' +#define PROT_TERMINATOR "\n" +#define PROT_SEPARATOR_CH ' ' +#define PROT_SEPARATOR " " +#define PROT_SEPARATOR_COMMA "," +#define PROT_GET_CONF "?" +#define PROT_GET_TPI "!" +#define PROT_GET_TPI_STR "!get-tpi" +#define PROT_SET_CONF_BROAD "I" +#define PROT_SET_CONF "A" +#define PROT_SET_TIME "T" +#define PROT_START_ACQ "X" +#define PROT_CHECK_TIME "E" +#define PROT_AUTO_GAIN "G" +#define PROT_STOP_ACQ "stop" +#define PROT_RESUME_ACQ "resume" +#define PROT_SUSPEND_ACQ "pause" +#define PROT_SET_ZERO "Z" +#define PROT_SET_SAMPLE_RATE "S" +#define PROT_GET_SAMPLE "R" + +#define PROT_ACK "ack" +#define PROT_OK "ok" + +//#define PROT_PACKET_LENGTH 64 +//#define PROT_TOTAL_DEVICES 14 + +using namespace IRA; + +class CProtocol { +public: + /** + * This enum enlists the pssoble configurations that can be done to set the source of the backend input signal. + */ + enum TInputs { + PRIMARY, + BWG, + GREGORIAN, + OHM50 + }; + + /** + * Prepare a buffer to be sent to the backend in order to request the backend configuration + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD askBackendConfiguration(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order to configure all the inputs in one shot. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param input allows to set up the input type + * @param att allow to indicate the attenuation level + * @param bw allows to set up the bandwidth + * @return the length of the message + */ + static WORD setConfiguration_broadcast(char *sBuff,const TInputs& input,const double &att,const double& bw); + + /** + * Prepare a buffer to be sent to the backend in order to configure one input at a time. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param id numerical identifier of the section + * @param input allows to set up the input type + * @param att allow to indicate the attenuation level + * @param bw allows to set up the bandwidth + * @param boards gives the mapping of section over boards, if null the mapping is flat: section 0 on board 0 and so on.... + * @return the length of the message + */ + static WORD setConfiguration(char *sBuff,long id,const TInputs& input,const double &att,const double& bw,long *boards=NULL); + + /** + * Prepare a buffer to be sent to the backend in order to sync the time. The time is taken from the clock of the host machine. + * Since the message to the backend must arrive between 300th and 700th milliseconds of each second, if the current time + * does not lie in that window, this method could suspend execution for the required amount of time. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD setBackendTime(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order th check the time synchronization. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD checkBackendTime(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order to start the data acquisition. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param sampleRate this is the rate used by the backend to sample the total power + * @param cal this parameter gives the number of normal sample to have a sample with the noise call on. + * @param port port number of the socket that will wait for the data + * @param address TCP/IP address of the machine that waits for the data. + * @return the length of the message + */ + static WORD startAcquisition(char *sBuff,const double& sampleRate,const long& cal,const WORD& port,const IRA::CString& address); + + /** + * Prepare a buffer to be sent to the backend in order to resume a data acquisition + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD resumeAcquisition(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order to suspend the data acquisition + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD suspendAcquisition(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order to stop the data acquisition. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @return the length of the message + */ + static WORD stopAcquisition(char *sBuff); + + /** + * Prepare a buffer to be sent to the backend in order to command the zero RF input or restore the normal input. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param activate if true the mode zero input is activated, otherwise false will go back to the normal input mode + * @return the length of the message + */ + static WORD setZeroInput(char *sBuff,bool activate); + + /** + * Prepare a buffer to be sent to the backend in order to issue the AGC functionality. This functionality will equalize all the inputs level + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param channels number of channels that will be passed through the functionality + * @param level given in counts, is the point where the channels level is brought to. + */ + static WORD AutoGainControl(char *sBuff,const WORD& channels,const WORD& level); + + /** + * Prepare a buffer to be sent to the backend in order to set the sample rate that is used for the slow mode. The slow mode + * can be used to get a single tpi measure, so this value has nothing to to with the sampleRate set by the <i>startAcquisition()</i> + * procedure. Also in that case the sample rate can be interpreted as an integration time. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + * @param integrationTime the integration time in milliseconds. + * @return the length of the message + */ + static WORD setIntegrationTime(char *sBuff,const long& integrationTime); + + /** + * Prepare a buffer ti be sent to the backend in order to get from the backend a tpi measure using the slow mode. The sample + * rate used is set by the call to <i>setSampleRate</i>. + * @param sBuff pointer to the buffer that contains the message. the buffer must be allocated by the caller. + */ + static WORD getSample(char *sBuff); + + /** + * Decodes the answer of the backend when asked about its configuration. The vectors must already allocated. + * @param rBuff buffer that contains the backend answer + * @param inputsNumber this is to inform the function about how many section are expected (size of output arrays) + * @param boardNumber number of installed boards, this dimensions the size of the answer from the backend + * @param att this vector reports the attenuation values for each of the backend inputs (db) + * @param bw this vector reports the band width for each of the backend inputs (Mhz) + * @param in this vector reports about which analog source the input is connected to. + * @param tm reports the current time of the backend FPGA. + * @param currentSR reports the sample rate currently used in the backend (milliseconds) + *@param boards gives the mapping of section over boards, if null the mapping is flat: section 0 on board 0 and so on.... + * @return true if the answer is correct and could be parsed + */ + static bool decodeBackendConfiguration(const char *rBuff,const long& sectionNumber,const DWORD& boardsNumber,double *att,double *bw,TInputs *in,TIMEVALUE& tm,long& currentSR,long * boards); + + /** + * Decodes the answer of the backend after it has been commanded a new time. + * @param rBuff buffer that contains the backend answer + * @param res this parameter can be used to check if the backend has properly synchronized its clock. True in that case. + * @return true if the answer is correct and could be parsed. + */ + static bool decodeBackendTime(const char *rBuff,bool& res); + + static bool status(char *rBuff,double ×tamp, char *statusCode, bool &acquiring); + + static bool setConfiguration(const char *rBuff); + + /** + * Decodes the answer of the backend after it has been commanded a check time operations. + * @param rBuff buffer that contains the backend answer + * @param res this parameter can be used to check if the backend is properly synchronized. True in that case. + * @return true if the aswer is correct and could be parsed regularly. + */ + static bool checkBackendTime(const char * rBuff,const long threshold,bool& res); + + /** + * Check if the backend answer is an acknowledge or not + * @param rBuff backend answer + * @return true if the backend acknowledges + */ + static bool isAck(const char *rBuff); + + /** + * This method is used to decode the data contained in the backend data packet. + * @param buff pointer to the buffer that contains the data + * @param sampleRate current value of the sample rate, used by the backend to sample the data + * @param prevStatus stores the status of the previous sample + * @param prevCounter stores the numeral counter of the previous sample + * @param tm date and time mark of the data (returned) + * @param counter sample counter + * @param flag this is a bit pattern that reports some information about the data + * @param data this will contain the real data can be found. The size is given b <i>sectionNumber</i> + *@param boards gives the mapping of section over boards, if null the mapping is flat: section 0 on board 0 and so on.... + */ + static void decodeData(BYTE *buff,const double& sampleRate,const WORD& prevStatus,const WORD& prevCounter, + TIMEVALUE& tm,WORD& counter,WORD& flag,DWORD *data,const long& sectionNumber,long *boards=NULL); + + /** + * This method is used to decode the data coming from the backend when asked for slow mode acquisition + * @param buff pointer to the buffer that contains the data + * @param data this will point to an array of elements (must be allocated by the caller) that contains the total power measure of + * each section the size is given by the <i>sectionNumber</i> argument + * @param boardsNumber the number of installed boards + * @param sectionNumber number of supported section, the size of the data array + * @param boards map a section into a board (its size is <i>sectionNumber</i>), if null the mapping is flat: section 0 on board 0 and so on.... + * @return true if the backend answer could be decoded, false otherwise. + */ + static bool decodeData(const char* rBuff,DWORD *data,const DWORD& boardsNumber,const long& sectionNumber,long *boards=NULL); + + /** + * This function takes in input the backend flag (given together with the data and check if the data packet is taken when the + * cal diode is off + * @param flag backend flag, bit pattern + * @return true if the data refers to normal measurement + */ + static bool isTpi(const WORD& flag); + + /** + * This function takes in input the backend flag (given together with the data and check if the data packet is taken when the + * cal diode is on + * @param flag backend flag, bit pattern + * @return true if the data refers to calibration diode on measurement + */ + static bool isCal(const WORD& flag); + + /** + * This function checks if the current backend sample is the beginning of a new stream by comparing the previous sample status + * and counter to the current sample counter. + * @param previousStatus stores the status of the previous sample + * @param previousCounter stores the numeral counter of the previous sample + * @param currentCounter stores the current sample counter + * @return true if the sample is the first of a new stream + */ + static bool isNewStream(const WORD& previousStatus,const WORD& previousCounter,const WORD& currentCounter); + +private: + + /** + * Swap the 32 bits word coming from the backend into a standard little endian word. + * @param pointer to the 32 bits word + */ + static void swap(DWORD* word); + + + /** + * This method is used to convert the time as given by the backend FPGA(string) into a full ACS timestamp. + * @param str string that containes the time of the backend FPGA (given as number of seconds from 01/10/1970) + * @param tm decoded time corresponding to the one given with first parameter + * @return false in case of errors + */ + static bool decodeFPGATime(const IRA::CString& str,TIMEVALUE& tm); + + /** + * This method is used to convert the time as given by the backend FPGA into a full ACS timestamp. + * @param clock number of seconds from 01/10/1970 + * @param sampleRate the sampling rate of the backend, each sample is spaced (in time) by the inverse of that number + * @param counter sample counter inside each second of acquisition, one indicates the first sample + * @param tm decoded time corresponding to the one given with first parameter + * @return false in case of errors + */ + static bool decodeFPGATime(const DWORD& clock,const double& sampleRate,const WORD& counter,TIMEVALUE& tm); + + /** + * This method can be used to translate the backend answer regarding the attenuation level to its corresponding + * double value (db) + * @param str string that contains the attenuation level + * @param val corresponding attenuation level + * @return false if the translation could not be performed + */ + static bool decodeAttenuationLevel(const IRA::CString& str,double& val); + + /** + * This method is used to encode an attenuation level, given in db, into the backend representation + * @param att double value that represent the attenuation + * @return a string that contains the backend representation of the given attenuation + */ + static IRA::CString encodeAttenuationLevel(const double& att); + + /** + * This method can be used to translate the backend answer regarding the current input source to its corresponding + * symbolic value. + * @param str string that contains the backend answerl + * @param vall corresponding input + * @return false if the translation could not be performed + */ + static bool decodeInput(const IRA::CString& str,TInputs& val); + + /** + * This method is used to encode an inputs type into the backend representation + * @param in input code to be translated + * @return a string that contains the backend representation of the given input + */ + static IRA::CString encodeInput(const TInputs& in); + + /** + * This method can be used to translate the backend answer regarding the configured bandWidth to its corresponding + * double value (MHz) + * @param str string that contains the band width information + * @param val corresponding attenuation level + * @return false if the translation could not be performed + */ + static bool decodeBandWidth(const IRA::CString& str,double& val); + + /** + * This method is used to encode bandwidth value in MHz into the backend representation + * @param in bw double value to be translated + * @return a string that contains the backend representation of the given badn width + */ + static IRA::CString encodeBandWidth(const double& bw); + + /** + * This method returns the ACS timestamp relative to the backend reference time (01/01/1970) + * @param tm the first day of January 1970 as ACS timestamp. + */ + static void getReferenceTime(TIMEVALUE& tm); + +}; + + +#endif /*_PROTOCOL_H_*/ diff --git a/Common/Servers/Skarab/include/SenderThread.h b/Common/Servers/Skarab/include/SenderThread.h new file mode 100644 index 000000000..e342a84e0 --- /dev/null +++ b/Common/Servers/Skarab/include/SenderThread.h @@ -0,0 +1,171 @@ +#ifndef _SENDERTHREAD_H_ +#define _SENDERTHREAD_H_ +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#include <acsThread.h> +#include <IRA> + +/** + * This class implements a working thread. This thread is in charge of reading the data from the backend, doing a pre processing and then + * publishing them into the ACS bulk data channel. +*/ +class CSenderThread : public ACS::Thread +{ +public: + struct TSenderParameter { + SkarabImpl *sender; + IRA::CSecureArea<CCommandLine> *command; + CConfiguration *configuration; + //IRA::CSocket *dataLine; + }; + struct TTransferParameter { + long channels; /*!< number of channels involved */ + long integration; /*<! integration time in milli seconds, it applies to all channels */ + long id[MAX_SECTION_NUMBER]; /*!< channel identifier, generally 0..sections-1 */ + double sampleRate; /*!< sample rate in MHz */ + long sampleSize; /*!< sample size in bytes */ + double normalization; /*!<normalization factor, depends on integration and sample rate */ + }; + + /** + * Constructor(). + * @param name thread name + * @param par thread parameter + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + CSenderThread(const ACE_CString& name,TSenderParameter *par, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, + const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~CSenderThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. The method is executed in a loop until the thread is alive. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * This method is used to let the thread know the configuration of the backend in order to perform the proper operations over + * the coming data. + * @param mH main header of the data + * @param mC section header, one header for each enabled section) + */ + void saveDataHeader(Backends::TMainHeader* mH,Backends::TSectionHeader* cH); + + /** + * This method is used to inform the theread about the requested start time. + * @param time current start time. + */ + void saveStartTime(const ACS::Time& time); + + /** + * This method is used to inform the thread about the values of each input when the attenuator are all inserted. + * This will allows to subtract the zero scale to the data. + */ + void saveZero(DWORD *zeros); + + /** + * This method is used to inform the thread that should not send data anymore + * @param stop true the thread will not send data any more + */ + // void setStop(bool stop) { m_stop=stop; } + + void resumeTransfer() { m_go=true; } + + /** + * suspend the data transfer and waits until it is suspended. + */ + void suspendTransfer() { m_stop=true; while (m_stop) { IRA::CIRATools::Wait(100000); } } + + /** + * It set up the Kelvin Counts ratio used to compute the system temperature for each channel. + * @param ratio the list of the conversion factor, one for each channel + */ + //void setKelvinCountsRatio(const ACS::doubleSeq& ratio); + + /** + * Force the socket to be closed and to reinitialize everything. Sending data is also stopped + */ + void closeSocket(); + +private: + struct TSampleRecord { + TIMEVALUE start; + bool started; + DWORD counts; + DWORD accumulations; + SAMPLETYPE tpi[MAX_SECTION_NUMBER]; + }; + struct TDumpRecord { + Backends::TDumpHeader hd; + SAMPLETYPE sample[MAX_SECTION_NUMBER]; + }; + //IRA::CSocket *m_dataLine; + SkarabImpl *m_sender; + IRA::CSecureArea<CCommandLine> *m_commandLine; + CConfiguration *m_configuration; + bool m_isConnected; + IRA::CSocket m_backendSock; + BYTE *m_inputBuffer; + BYTE *m_tempBuffer; + DWORD m_tempBufferPointer; + DWORD *m_zeroBuffer; + TTransferParameter m_dataHeader; + WORD m_previousStatus; + WORD m_previousCounter; + TIMEVALUE m_startTime; + //bool m_immediateStart; + TSampleRecord m_tpi; //data regarding the normal data + TSampleRecord m_cal; // data regarding the calibration diode on data + TIMEVALUE m_lastReceiveEpoch; + bool m_stop; + bool m_go; + bool m_sending; + /* It stores the conversion factor from counts to Kelvin for each of the inputs */ + ACS::doubleSeq m_KCountsRatio; + /** + * This method is called by the thread in order to process and ship the data + */ + void processData(DWORD dataSize,const long& sectionNumber,long *boards); + + /** + * it clears of the temporary data related to one integration + */ + void clearIntegration(TSampleRecord& samp); + + /** + * This function will set up thread data structure in order to start data receiving from the backend + */ + void initTransfer(); + + /** + * Performs computation over each sample before transfering it toword the network + */ + void computeSample(TSampleRecord& samp,TIMEVALUE& sampleTime,DWORD *data,bool isCal); + +}; + +#endif /*_SENDERTHREAD_H_*/ diff --git a/Common/Servers/Skarab/include/SkarabImpl.h b/Common/Servers/Skarab/include/SkarabImpl.h new file mode 100644 index 000000000..afba54519 --- /dev/null +++ b/Common/Servers/Skarab/include/SkarabImpl.h @@ -0,0 +1,503 @@ +#ifndef _SKARABIMPL_H_ +#define _SKARABIMPL_H_ + +/* ************************************************************************************************************ */ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMistralImpl.h,v 1.1 2023-01-09 14:15:07 c.migoni Exp $ */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who when What */ +/* Carlo Migoni(carlo.migoni@inaf.it) 16/03/2023 Creation */ +/* Carlo Migoni(carlo.migoni@inaf.it) */ + + +#ifndef __cplusplus +#error This is a C++ include file and cannot be used from plain C +#endif + +#include <baciCharacteristicComponentImpl.h> +#include <baciSmartPropertyPointer.h> +#include <enumpropROImpl.h> +#include <baciROdouble.h> +#include <baciROlong.h> +#include <baciROstring.h> +#include <baciROuLongLong.h> +#include <baciROdoubleSeq.h> +#include <baciROlongSeq.h> +#include <baciROpattern.h> +#include <bulkDataSenderImpl.h> +#include <SkarabS.h> +#include <ComponentErrors.h> +#include <BackendsErrors.h> +#include <SP_parser.h> +#include <ManagementErrors.h> +#include "CommandLine.h" +#include "ControlThread.h" + + +namespace SimpleParser { +class PolarizationToString { +public: + char *valToStr(const long& val) { + char *c=new char[16]; + if (val==Backends::BKND_LCP) { + strcpy(c,"LEFT"); + } + else if (val==Backends::BKND_RCP) { + strcpy(c,"RIGHT"); + } + else { + strcpy(c,"FULL"); + } + return c; + } + + long strToVal(const char* str) { + IRA::CString strVal(str); + strVal.MakeUpper(); + if (strVal=="LEFT") { + return (long)Backends::BKND_LCP; + } + else if (strVal=="RIGHT") { + return (long)Backends::BKND_RCP; + } + else if (strVal=="FULL") { + return (long)Backends::BKND_FULL_STOKES; + } + else { + return strVal.ToLong(); + } + } +}; + +}; + +using namespace ACSBulkDataError; +using namespace baci; + +/** + * @mainpage Skarab backend component documentation + * @date 12/02/2013 + * @version 1.61.0 + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a> + * @remarks Last compiled under ACS 8.0.2 + * @remarks compiler version is 3.4.6 +*/ + +class CSenderThread; + +/** + * This class implements the Backends::Skarab CORBA interface. + * All exceptions that comes from the run-time interation with clients are at logged with LM_DEBUG priority. + * @todo an implementation of <i>configure()</i> must be done yet. + * @author <a href=mailto:carlo.migoni@inaf.it>Carlo Migoni</a>, + * Osservatorio Astronomico di Cagliari, Italia + * @todo I could be necessary to plan a stopTime in sendStop in order to be more precise on stop time. The backend hardware never + * stops to send data and the data flux control (toward bulk data receviver) handled by the component itself. + * <br> + */ +class SkarabImpl: public virtual BulkDataSenderDefaultImpl, public virtual POA_Backends::Skarab +{ +public: + /** + * Constructor. + * @param CompName component's name. This is also the name that will be used to find the configuration data for the component in the Configuration Database. + * @param containerServices pointer to the class that exposes all services offered by container + */ + SkarabImpl(const ACE_CString &CompName,maci::ContainerServices *containerServices); + + /** + * Destructor. + */ + virtual ~SkarabImpl(); + + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters, builds up connection. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ACSErr::ACSbaseExImpl + */ + virtual void initialize() throw (ACSErr::ACSbaseExImpl); + + /** + * Called after <i>initialize()</i> to tell the component that it has to be ready to accept incoming functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only logs the COMPSTATE_OPERATIONAL + * @throw ACSErr::ACSbaseExImpl + */ + virtual void execute() throw (ACSErr::ACSbaseExImpl); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of releasing all resources. + */ + virtual void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. This function tries to free all resources even though there is no + * warranty that the function is completely executed before the component is destroyed. + */ + virtual void aboutToAbort(); + + /** + * It is used to start the data transfer (e.g. send parameters to the receiver) + * @throw CORBA::SystemException + * @throw BackendsErrors::BackendsErrorsEx + * @arg \c BackendsErrors::TXErrorEx + * @throw ComponentErrors::ComponentErrorsEx + * @arg \c ComponentErrors::UnexpectedEx + */ + virtual void sendHeader() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, ComponentErrors::ComponentErrorsEx); + + /** + * Starts effectively to send the bulk of data to the receiver. The invocation of this method is forced to be far enough to the invocation + * of <i>sendHeader</i> (in order to respect the backend data channel latency). In order for this call to succeed, the component must be + * in <i>CCommandLine::TstatusFields::SUSPEND</i> mode. + * @throw CORBA::SystemException + * @throw BackendsErrors::BackendsErrorsEx + * @throw ComponentErrors::ComponentErrorsEx + * @arg \c ComponentErrors::UnexpectedEx + * @param startTime represent the exact time that the acquisition should start. Of course this has effect only if the call + * to that method arrives reasonably before the given time. + */ + virtual void sendData(ACS::Time startTime) throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx); + + /** + * It suspend the data transfer. If the backend must not be in suspend mode. + * @throw CORBA::SystemException + * @throw BackendsErrors::BackendsErrorsEx + * @throw ComponentErrors::ComponentErrorsEx + * @arg \c ComponentErrors::UnexpectedEx + */ + virtual void sendStop() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx); + + /** + * This immediately terminates the transfer job (previously begun by the call to <i>sendHeader()</i>). + * @throw CORBA::SystemException + * @throw BackendsErrors::BackendsErrorsEx + * @throw ComponentErrors::ComponentErrorsEx + */ + virtual void terminate() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx); + + /** + * This method will configure an input channel of the backend. The input is identified by a numeric identifier. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param input identifier of the input to be configured. it must be in the correct range (from 0 to <i>inputsNumber</i>) + * otherwise an exception is raisen. + * @param freq new freqency value for the input. This value represents the start frequency of the input filter(Mhz). In this + * implementation it is ignored, so a negative should be given. + * @param bw new bandWidth value in MHz. if a value of the sequence is negative the bandwidth of the corresponding + * input is unchanged. If the value is not legal an exception is thrown. + * @param feed identifier of the feed + * @param pol this value ask the input to send data for one polarization or for all Stokes parameters. Possible values are + * BKND_LCP, BKND_RCP or BKND_FULL_STOKE or a negative to keep the current value. In this implementation the component expects only a negative + * because is not possble to change this parameter. On the contrary a warning log message is posted. + * @param sr new sample rate value (Mhz). In this implementation represents the frequency of the sampling of the total power + * A negative keeps the previous value unchanged. Since the backend does not support different sample rates, + * the current one is used also for all other inputs. + * @param bins number of bins produced for each input. This value is significant for spectrometers. For that implementation + * this value is ignored since it must be always 1. If this is not the case a warning messagge is logged. + */ + virtual void setSection(CORBA::Long input,CORBA::Double freq,CORBA::Double bw,CORBA::Long feed,CORBA::Long pol,CORBA::Double sr,CORBA::Long bins) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * @deprecated This method will configure all the input channels of the backend in one shot. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param freq new freqency value for the input. This value represents the start frequency of the input filter(Mhz). In this + * implementation it is ignored, so a negative should be given. + * @param bw new bandWidth value in MHz. if a value of the sequence is negative the bandwidth of the corresponding + * input is unchanged. If the value is not legal an exception is thrown. + * @param feed identifier of the feed + * @param pol this value ask the input to send data for one polarization or for all Stokes parameters. Possible values are + * BKND_LCP, BKND_RCP or BKND_FULL_STOKE. In this implementation this parameter is ignored because this backend is a + * simple total power. + * @param sr new sample rate value (Mhz). In this implementation represents the frequency of the sampling of the total power + * A negative keeps the previous value unchanged. Since the backend does not support different sample rates, + * the current one is used also for all other inputs. + * @param bins number of bins produced for each input. This value is significant for spectrometers. For that implementation + * this value is ignored since it must be always 1. + */ + //virtual void setAllSections(CORBA::Double freq,CORBA::Double bw,CORBA::Long feed,Backends::TPolarization pol,CORBA::Double sr,CORBA::Long bins) throw (CORBA::SystemException, + // ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This method enables or disables the data streaming of the inputs. if a input is disable the input is not sampled and the + * data are not sent to the network. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param enable this must be a sequence of exactly <i>inputsNumber</i> elements. The inputs are enabled (default) if + * the corresponding value is positive. A negative value disables the input, whilst a zero keep the current configuration. + */ + virtual void enableChannels(const ACS::longSeq& enable) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * Sets the current integration time. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @thorw BackendsErrors::BackendsErrorsEx + * @param integration new integration value in milliseconds. A zero disables this feature, whilst a negative has not effect. + */ + virtual void setIntegration(CORBA::Long Integration) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This method allows the client to interface the component by sending text commands. The command is parsed and executed according the + * defined command syntax and grammar. This method is required to implement the <i>Management::CommandInterpreter</i> interface. + * @throw CORBA::SystemException + * @param cmd string contains the string that will be executed + * @param answer the string that reports the command execution results or in case, errors messages + * @return true if the command was executed correctly + */ + virtual CORBA::Boolean command(const char *cmd,CORBA::String_out answer) throw (CORBA::SystemException); + + virtual void getConfiguration (CORBA::String_out configuration) throw (CORBA::SystemException); + + virtual void getCommProtVersion (CORBA::String_out version) throw (CORBA::SystemException); + + /** + * This method is related to the implementation of the genericBackend interface + */ + virtual void setTargetFileName (const char * fileName) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * Call this function to set the current time (from the local computer) into the backend. + * @thorw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @arg \c ComponentErrors::Timeout + * @arg \c BackendsErrors::Connection + * @arg \c ComponentErrors::SocketError + */ + virtual void setTime() throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx, + BackendsErrors::BackendsErrorsEx); + + /** + * This function will control the calibration diode switching. + * @thorw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param interleave this parmater controls the switching frequency of the calibration diode. If it is zero (default) the diode is not + * switched (always turned off). if a one is given the backend will produce one sample (using the <i>sampleRate</i>) + * with the mark switecehd off and one with the mark switched on. A two means two sample with the mark switched off and + * one with the mark switched on.....and so on. A negative will not change the value of the parameter. + */ + virtual void activateNoiseCalibrationSwitching(CORBA::Long interleave) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This function will initialized the parameters that must be fixed before any other operation can be carried on. Some possible configuration + * are available according the given receiver connected to the backend. + * @thorw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param configuration identifier of the required initialization + */ + virtual void initialize(const char * configuration) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * Call this function in order to get a total power measure for each input channel. + * @thorw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param integration it represents the integration time (milliseconds) the backend will use to do the measure. + * If zero the default value of 1 second is used. A negative will forse the backend to adopt the value set by a call + * to (<i>setIntegration()</i>). + * @return a sequence of double values that reports for each backend the total power measured during the integration time. + * The caller must take care of freeing it. + */ + virtual ACS::doubleSeq * getTpi () throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + virtual ACS::doubleSeq * getRms () throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * Call this function in order to get a total power measure for each input channel. The measure is done when the inputs are directly + * connected to the 50 Ohm. + * @thorw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param integration it represents the integration time (milliseconds) the backend will use to do the measure. + * If zero the default value of 1 second is used. A negative will forse the backend to adopt the value set by a call + * to (<i>setIntegration()</i>). + * @return a sequence of double values that reports for each backend the total power measured during the integration time. + * The caller must take care of freeing it. + */ + virtual ACS::doubleSeq * getZero (/*CORBA::Long integration*/) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This method is used to inform the component about the proper conversion factor between Kelvin and counts. This value is used for the tsys computation during + * the sampling. If this method is never issued the default value of 1 will be used for all the channels. + * @throw CORBA::SystemException + * @param ratio this is the sequence of required values one for each channel. + */ + virtual void setKelvinCountsRatio(const ACS::doubleSeq& ratio,const ACS::doubleSeq& tsys) throw (CORBA::SystemException); + + /** + * This method is used to tune the attenuation level of each of the virtual input of the system. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param input is the identifier number of the input that we want to configure. + * @param att new attenuation level, It could be in the range 0-15. A negative will keep the previous value. + */ + virtual void setAttenuation(CORBA::Long input,CORBA::Double att) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * In order to get the inputs definition in just one call. The returned argument contains the configuration sequentially, the first element corresponds to the first input and so on. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param freq given in MHz is the initial frequency of input band + * @param bandwidth given in MHz is the band width of the input + * @param feed dives the feed number the input belongs to + * @param ifNumber given the feed it select the feed channel to which the input is connected to. Plaese notice this parameter has nothing to do with the polarization of the section. + * @return the number of inputs, in other words is the lenght of the returned sequences + */ + virtual CORBA::Long getInputs(ACS::doubleSeq_out freq,ACS::doubleSeq_out bandWidth,ACS::longSeq_out feed,ACS::longSeq_out ifNumber) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * Returns a reference to the time property Implementation of IDL interface. + * @return pointer to read-only unsigned long long property time + */ + virtual ACS::ROuLongLong_ptr time() throw (CORBA::SystemException); + + /** + * Returns a reference to the backendName property Implementation of IDL interface. + * @return pointer to read-only string property backendName + */ + virtual ACS::ROstring_ptr backendName() throw (CORBA::SystemException); + + /** + * Returns a reference to the bandWidth property implementation of the IDL interface. + * @return pointer to read-only double sequence property bandWidth + */ + virtual ACS::ROdoubleSeq_ptr bandWidth() throw (CORBA::SystemException); + + /** + * Returns a reference to the frequency property implementation of the IDL interface. + * @return pointer to read-only double sequence property frequency + */ + virtual ACS::ROdoubleSeq_ptr frequency() throw (CORBA::SystemException); + + /** + * Returns a reference to the sampleRate property implementation of the IDL interface. + * @return pointer to read-only double sequence property sampleRate + */ + virtual ACS::ROdoubleSeq_ptr sampleRate() throw (CORBA::SystemException); + + /** + * Returns a reference to the attenuation property implementation of the IDL interface. + * @return pointer to read-only double sequence property attenuation + */ + virtual ACS::ROdoubleSeq_ptr attenuation() throw (CORBA::SystemException); + + /** + * Returns a reference to the polarization property implementation of the IDL interface. + * @return pointer to read-only long sequence property polarization + */ + virtual ACS::ROlongSeq_ptr polarization() throw (CORBA::SystemException); + + /** + * Returns a reference to the bins property Implementation of IDL interface. + * @return pointer to read-only long property binsNumber + */ + virtual ACS::ROlongSeq_ptr bins() throw (CORBA::SystemException); + + /** + * Returns a reference to the feed property Implementation of IDL interface. + * @return pointer to read-only long sequence property feed + */ + virtual ACS::ROlongSeq_ptr feed() throw (CORBA::SystemException); + + /** + * Returns a reference to the inputsNumber property Implementation of IDL interface. + * @return pointer to read-only long property inputsNumber + */ + virtual ACS::ROlong_ptr inputsNumber() throw (CORBA::SystemException); + + /** + * Returns a reference to the systemTemperature property implementation of the IDL interface. + * @return pointer to read-only double sequence property systemTemperature + */ + virtual ACS::ROdoubleSeq_ptr systemTemperature() throw (CORBA::SystemException); + + /** + * Returns a reference to the integration property Implementation of IDL interface. + * @return pointer to read-only long property integration + */ + virtual ACS::ROlong_ptr integration() throw (CORBA::SystemException); + + /** + * Returns a reference to the sectionsNumber property Implementation of IDL interface. + * @return pointer to read-only long property sectionsNumber + */ + virtual ACS::ROlong_ptr sectionsNumber() throw (CORBA::SystemException); + + /** + * Returns a reference to the inputSection property Implementation of IDL interface. + * @return pointer to read-only long property inputSection + */ + virtual ACS::ROlongSeq_ptr inputSection() throw (CORBA::SystemException); + + + /** + * Returns a reference to the status implementation of IDL interface. + * @return pointer to read-only pattern property status + */ + virtual ACS::ROpattern_ptr status() throw (CORBA::SystemException); + + /** + * Returns a reference to the busy implementation of IDL interface. + * @return pointer to read-only long property busy + */ + virtual Management::ROTBoolean_ptr busy() throw (CORBA::SystemException); + +protected: + virtual void startSend() throw (CORBA::SystemException, AVStartSendErrorEx) { }; + + virtual void paceData() throw (CORBA::SystemException, AVPaceDataErrorEx) { }; + + virtual void stopSend() throw (CORBA::SystemException, AVStopSendErrorEx) { }; + +private: + SmartPropertyPointer<ROuLongLong> m_ptime; + SmartPropertyPointer<ROstring> m_pbackendName; + SmartPropertyPointer<ROdoubleSeq> m_pbandWidth; + SmartPropertyPointer<ROdoubleSeq> m_pfrequency; + SmartPropertyPointer<ROdoubleSeq> m_psampleRate; + SmartPropertyPointer<ROdoubleSeq> m_pattenuation; + SmartPropertyPointer<ROlongSeq> m_ppolarization; + SmartPropertyPointer<ROlongSeq> m_pbins; + SmartPropertyPointer<ROlong> m_pinputsNumber; + SmartPropertyPointer<ROlong> m_pintegration; + SmartPropertyPointer<ROpattern> m_pstatus; + SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_pbusy; + SmartPropertyPointer<ROlongSeq> m_pfeed; + SmartPropertyPointer<ROdoubleSeq> m_ptsys; + SmartPropertyPointer<ROlong> m_psectionsNumber; + SmartPropertyPointer<ROlongSeq> m_pinputSection; + /** This is the socket that allows to send requests to the backends throught its command line*/ + CSecureArea<CCommandLine> *m_commandLine; + CConfiguration m_configuration; + CSenderThread *m_senderThread; + CControlThread *m_controlThread; + //IRA::CSocket m_dataLine; + bool m_initialized; + SimpleParser::CParser<CCommandLine> * m_parser; + + void deleteAll(); +}; + +#endif /*SkarabImpl_H_*/ diff --git a/Common/Servers/Skarab/src/CommandLine.cpp b/Common/Servers/Skarab/src/CommandLine.cpp new file mode 100644 index 000000000..eaedc4212 --- /dev/null +++ b/Common/Servers/Skarab/src/CommandLine.cpp @@ -0,0 +1,2093 @@ +// $Id: CommandLine.cpp,v 1.3 2011-05-12 14:14:31 c.migoni Exp $ + +#include <LogFilter.h> +#include "CommandLine.h" +/****************************************************************************************************************************/ +#include <CustomLoggerUtils.h> +/****************************************************************************************************************************/ + +#define _CHECK_ERRORS(ROUTINE) \ + else if (res==FAIL) { \ + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); \ + dummy.setCode(m_Error.getErrorCode()); \ + dummy.setDescription((const char*)m_Error.getDescription()); \ + m_Error.Reset(); \ + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,ROUTINE); \ + } \ + else if (res==WOULDBLOCK) { \ + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,ROUTINE); \ + } \ + else if (res==DECODE_ERROR) { \ + _THROW_EXCPT(BackendsErrors::MalformedAnswerExImpl,ROUTINE); \ + } \ + else { \ + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,ROUTINE); \ + } + +#define DECODE_ERROR -100 + +_IRA_LOGFILTER_IMPORT; + +CCommandLine::CCommandLine(ContainerServices *service): CSocket(), + m_services(service) +{ + AUTO_TRACE("CCommandLine::CCommandLine()"); + m_bTimedout=false; + m_reiniting=false; + ACS::Time init=0; + m_lastUpdate.value(init); + m_Error.Reset(); + m_configuration=NULL; + m_backendStatus=0; + setStatus(NOTCNTD); + m_setTpiIntegration=true; + m_stationSRT=false; + m_stationMED=false; + m_sectionsNumber=0; + m_inputsNumber=0; + m_stokes=false; + m_TsysRange_freq=0.0; + m_TsysRange_bw=0.0; + m_SKARAB_1=false; + m_SKARAB_1S=false; + m_SKARAB_2=false; + m_SKARAB_2S=false; + m_SKARAB_3=false; + m_SKARAB_3S=false; + m_SKARAB_4=false; + m_SKARAB_4S=false; + m_SKARAB_5=false; + m_SKARAB_5S=false; + + m_SkarabInitialized=false; +} + +CCommandLine::~CCommandLine() +{ + AUTO_TRACE("CCommandLine::~CCommandLine()"); + m_Error.Reset(); + // if the backend is transferring data...make a try to inform the backend before closing the connection + /*if (getIsBusy()) { + WORD len; + char sBuff[SENDBUFFERSIZE]; + len=CProtocol::stopAcquisition(sBuff); // get the buffer + sendBuffer(sBuff,len); + }*/ + Close(m_Error); +} + +void CCommandLine::Init(CConfiguration *config) throw (ComponentErrors::SocketErrorExImpl, + ComponentErrors::ValidationErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl,ComponentErrors::CDBAccessExImpl) +{ + int res; + //WORD len; + //char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE]; + + AUTO_TRACE("CCommandLine::Init()"); + m_configuration=config; + /*if (!initializeConfiguration(m_configuration->getConfiguration())) { // throw (ComponentErrors::CDBAccessExImpl) + IRA::CString msg; + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::Init()"); + msg.Format("the requested configuration %s is not known",(const char *)m_configuration->getConfiguration()); + impl.setReason((const char *)msg); + throw impl; + }*/ + // this will create the socket in blocking mode..... + if (Create(m_Error,STREAM)==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::Init()"); + } + // the first time, perform a blocking connection.... + if (Connect(m_Error,m_configuration->getAddress(),m_configuration->getPort())==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::Init()"); + } + else { + setStatus(CNTD); + } + // set socket send buffer!!!! + int Val=SENDBUFFERSIZE; + if (setSockOption(m_Error,SO_SNDBUF,&Val,sizeof(int))==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::Init()"); + } + // set socket in non-blocking mode. + if (setSockMode(m_Error,NONBLOCKING)==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::Init()"); + } + + /* After the first connection, the server send the protocol version string */ + res=receiveBuffer(rBuff,RECBUFFERSIZE); + //printf("connect = %s\n", rBuff); + + m_totalPower = Backends::TotalPower::_nil(); + try { + m_totalPower = m_services->getComponent<Backends::TotalPower>("BACKENDS/TotalPower"); + } + catch (maciErrType::CannotGetComponentExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,"CCommadLine::Init()"); + Impl.setComponentName("BACKENDS/TotalPower"); + throw Impl; + } + + /*m_ifDistributor = Receivers::GenericIFDistributor::_nil(); + try { + m_ifDistributor = m_services->getComponent<Receivers::GenericIFDistributor>("RECEIVERS/SRTIFDistributor"); + } + catch (maciErrType::CannotGetComponentExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::CouldntGetComponentExImpl,Impl,ex,"CCommadLine::Init()"); + Impl.setComponentName("RECEIVERS/SRTIFDistributor"); + throw Impl; + }*/ + + char *Station; + IRA::CString cStation; + Station = getenv ("STATION"); + cStation = IRA::CString (Station); + if((cStation.Compare("SRT")==0)) + m_stationSRT = true; + if((cStation.Compare("Medicina")==0)) + m_stationMED = true; + + /*try { + setup (m_configuration->getConfiguration()); + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::Init()",(LM_NOTICE,"BACKEND_SKARAB_INITIALIZATION ERROR")); + } + + //Waits a bit so that everything can settle down + IRA::CIRATools::Wait(0,200000);*/ +} + +void CCommandLine::stopDataAcquisition() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::NotAllowedExImpl,BackendsErrors::BackendFailExImpl) +{ + AUTO_TRACE("CCommandLine::stopDataAcquisition()"); + /*****************************************************************/ + // since both suspend and stop data acquisition are mapped into Command::stop message to the backend + // It happens (@ the end of a scan) that the backend receives two Command::stop messages. Even if this is not + // an issue for the backend, this leads to an unwanted behviour of the control software. The thrown exception, infact, + // leads to skip the first subscan of the next scan. Temporarly workround if to catch the exception here. A debug messages is sent. + /*****************************************************************/ + try { + Message reply = sendBackendCommand(Command::stop()); + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::stopDataAcquisition()",(LM_DEBUG,"backend error while issuing a stop ascquisition")); + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::stopDataAcquisition()",(LM_NOTICE,"TRANSFER_JOB_STOPPED")); + clearStatusField(CCommandLine::BUSY); // unsets the component status to busy + clearStatusField(CCommandLine::SUSPEND); // unsets the component status to transfer job suspended...... +} + +void CCommandLine::stopDataAcquisitionForced() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::NotAllowedExImpl) +{ +} + + +void CCommandLine::startDataAcquisition() throw (BackendsErrors::BackendBusyExImpl,BackendsErrors::ConnectionExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl) +{ + AUTO_TRACE("CCommandLine::startDataAcquisition()"); + /* if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::startDataAcquisition()"); + throw impl; + }*/ + //Message reply = sendBackendCommand(Command::start()); + ACS_LOG(LM_FULL_INFO,"CCommandLine::startDataAcquisition()",(LM_NOTICE,"ACQUISTION_STARTED")); + setStatusField(CCommandLine::BUSY); // sets the component status to busy + setStatusField(CCommandLine::SUSPEND); // sets the component status to transfer job suspended...... +} + +ACS::Time CCommandLine::resumeDataAcquisition(const ACS::Time& startT) throw (BackendsErrors::ConnectionExImpl,ComponentErrors::NotAllowedExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::BackendFailExImpl) +{ + TIMEVALUE now; + TIMEVALUE epoch; + long waitSec,waitMicro; + DDWORD diff; + ACS::Time expectedTime; + AUTO_TRACE("CCommandLine::resumeDataAcquisition()"); + /*if ( !(m_backendStatus & (1 << SUSPEND)) || !getIsBusy()) { + _EXCPT(ComponentErrors::NotAllowedExImpl,impl,"CCommandLine::resumeDataAcquisition()"); + impl.setReason("transfer job cannot be resumed in present configuration"); + throw impl; + }*/ + // check that the backend latency in preparing the data transfer is respected...... + if (startT==0) { // immediate start + IRA::CIRATools::getTime(epoch); //...so take the present time + } + else { + epoch.value(startT); + IRA::CIRATools::getTime(now); + if (startT<=now.value().value) { + ACS_LOG(LM_FULL_INFO,"TotalPowerImpl::sendData()",(LM_WARNING,"START_TIME_ALREADY_ELAPSED")); + } + } + diff=IRA::CIRATools::timeDifference(epoch,m_acquisitionStartEpoch); + if (diff<m_configuration->getDataLatency()) { //wait until the latency time is elapsed...... + double waitTime; + waitMicro=m_configuration->getDataLatency()-diff; + waitTime=((double)waitMicro/1000000.0); + waitSec=(long)waitTime; + waitMicro%=1000000; + ACS_LOG(LM_FULL_INFO,"CCommandLine::resumeDataAcquisition()",(LM_WARNING,"BACKEND_LATENCY_NOT_MATCHED,WAITING %3.2lf usec",waitTime)); + IRA::CIRATools::Wait(waitSec,waitMicro); + expectedTime=m_acquisitionStartEpoch.value().value+m_configuration->getDataLatency()*10; + } + else { + expectedTime=epoch.value().value; + } + Message request = Command::start(); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::resumeDataAcquisition()",(LM_NOTICE,"TRANSFER_JOB_RESUMED")); + clearStatusField(SUSPEND); + } + return expectedTime; +} + +void CCommandLine::suspendDataAcquisition() throw (BackendsErrors::ConnectionExImpl,ComponentErrors::NotAllowedExImpl, + BackendsErrors::NakExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::BackendFailExImpl) +{ + AUTO_TRACE("CCommandLine::suspendDataAcquisition()"); + /*if ((m_backendStatus & (1 << SUSPEND)) || !getIsBusy()) { //not suspended....running + _EXCPT(ComponentErrors::NotAllowedExImpl,impl,"CCommandLine::suspendDataAcquisition()"); + impl.setReason("transfer job cannot be suspended in present configuration"); + throw impl; + }*/ + Message request = Command::stop(); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::suspendDataAcquisition()",(LM_NOTICE,"TRANSFER_JOB_SUSPENDED")); + setStatusField(SUSPEND); + } +} + +void CCommandLine::setAttenuation(const long&inputId, const double& attenuation) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::setAttenuation()"); + double newAtt; + + if ((inputId < 0 ) || (inputId >= MAX_SECTION_NUMBER)) { + /*//if (inputId>=m_sectionsNumber) { + if (inputId>m_inputsNumber) { // TBC !!! + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setAttenuation()"); + impl.setReason("the input identifier is out of range"); + throw impl; + } + } + else {*/ + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setAttenuation()"); + impl.setReason("the input identifier is out of range"); + throw impl; + } + if (attenuation>=0) { // // the user ask for a new value + if (attenuation<MIN_ATTENUATION) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setAttenuation()"); + impl.setValueName("attenuation"); + impl.setValueLimit(MIN_ATTENUATION); + throw impl; + } + else if (attenuation>MAX_ATTENUATION) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setAttenuation()"); + impl.setValueName("attenuation"); + impl.setValueLimit(MAX_ATTENUATION); + throw impl; + } + m_attenuation[inputId]=attenuation; + try { + m_totalPower->setAttenuation(inputId, attenuation); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setAttenuation()",(LM_NOTICE,"TOTALPOWER_ATTENUATION INPUT=%ld,ATTENUATION=%lf",inputId,attenuation)); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCommandLine::setAttenuation()"); + impl.log(LM_ERROR); + } + } + else { + newAtt=m_attenuation[inputId]; + } + +} + +void CCommandLine::setTsysRange(const double& freq, const double& bw) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::ValidationErrorExImpl,ComponentErrors::ValueOutofRangeExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::setTsysRange()"); + m_TsysRange_freq = freq; + m_TsysRange_bw = bw; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setTsysRange()",(LM_NOTICE,"TSYS RANGE FREQUENCY = %lf, BANDWIDTH = %lf",m_TsysRange_freq,m_TsysRange_bw)); + +} + +void CCommandLine::setConfiguration(const long& inputId,const double& freq,const double& bw,const long& feed,const long& pol, const double& sr,const long& bins) throw ( + ComponentErrors::ValidationErrorExImpl,BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, + ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl,ComponentErrors::ValueOutofRangeExImpl, + BackendsErrors::BackendBusyExImpl) +{ + AUTO_TRACE("CCommandLine::setConfiguration()"); + double newBW,newSR,newFreq; + long newBins, newFeed, newPol; + double filter; + +/* if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setConfiguration()"); + throw impl; + }*/ + if (inputId>=0) { //check the section id is in valid ranges + //if (inputId>=m_sectionsNumber) { + if (inputId>m_sectionsNumber) { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setReason("the section identifier is out of range"); + throw impl; + } + } + else { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setReason("the section identifier is out of range"); + throw impl; + } + if (bw>=0) { // the user ask for a new value + if (bw<MIN_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MIN_BAND_WIDTH); + throw impl; + } + else if (bw>MAX_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MAX_BAND_WIDTH); + throw impl; + } + newBW=bw; + } + else { // else keep the present value + newBW=m_bandWidth[inputId]; + } + if (sr>=0) {// the user ask for a new value + if ((sr > MAX_SAMPLE_RATE) || (sr != 2*newBW)) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("sampleRate"); + impl.setValueLimit(MAX_SAMPLE_RATE); + throw impl; + } + newSR=sr; + } + else { + newSR=m_sampleRate[inputId]; + } + + if (freq >= 0) { // the user ask for a new value + if (freq >= MIN_FREQUENCY && freq <= MAX_FREQUENCY) { + newFreq = freq; + } + else { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("freq"); + throw impl; + } + } + else + newFreq = m_frequency[inputId]; + + if (feed >= 0) { // the user ask for a new value + if (feed != 0) { // BUT for the moment is it possible to use ONLY feed 0 + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("feed"); + throw impl; + } + newFeed = feed; + } + else + newFeed = m_feedNumber[inputId]; + + if (pol >= 0) { // the user ask for a new value + if ((pol == 0) || (pol == 1)) { // LCP or RCP + newPol = pol; + } + if (pol == 2) { // FULL STOKES + newPol = pol; + } + if (pol >= 3) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("pol"); + throw impl; + } + newPol = pol; + } + else + newPol = m_polarization[inputId]; + + + if (bins>=0) { // the user ask for a new value + if (bins < MIN_BINS || bins > MAX_BINS) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bins"); + /*if (bins != MIN_BINS) + impl.setValue(MIN_BINS); + if (bins != MAX_BINS) + impl.setValue(MAX_BINS);*/ + throw impl; + } + newBins=bins; + } + else + newBins = m_bins[inputId]; + + if (m_stationSRT == true) { + try { + Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + for (int j=0;j<m_sectionsNumber;j++) + m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR; + if (m_stokes==true) { + m_frequency[2*inputId]=newFreq; + m_frequency[2*inputId+1]=newFreq; + m_bandWidth[2*inputId]=newBW; + m_bandWidth[2*inputId+1]=newBW; + } + else { + m_frequency[inputId]=newFreq; + m_bandWidth[inputId]=newBW; + } + m_feedNumber[inputId]=newFeed; + m_bins[inputId]=newBins; + m_polarization[inputId]=newPol; + IRA::CString temp; + if (m_polarization[inputId]==Backends::BKND_LCP) + temp="LCP"; + else if (m_polarization[inputId]==Backends::BKND_RCP) + temp="RCP"; + else + temp="FULL_STOKES"; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], + (const char *)temp,newSR,m_bins[inputId])); + /*if (m_SK00==true || m_SC00==true || m_SK00S==true || m_SC00S==true || m_SK77==true || m_SK77S==true || m_SK03==true || m_SK03S==true || m_SK06==true || m_SK06S==true || m_SK01==true || m_SK01S==true + || m_SK02==true || m_SK02S==true || m_SK04==true || m_SK04S==true || m_SK05==true || m_SK05S==true) { + if (newBW==420.00) + filter=300.00; + if (newBW==1500.00) + filter=1250.00; + if (newBW==2300.00) + filter=2350.00; + if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) { + if (m_SK00S==true || m_SC00S==true || m_SK77S==true) { + m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1); + } + else if (m_SK01S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK02S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+3,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK03S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+5,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK04S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+7,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK05S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+9,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+10,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK06S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+11,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+12,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK02==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK03==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK04==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK06==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+10,-1, filter, -1, -1, -1, -1); + } + } + else + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter)); + }*/ + /*if ((m_SL00==true || m_SL00S==true) && m_stationSRT == true) { + try { + if (newBW==128.00) { + m_ifDistributor->setup("BW-NARROW"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-NARROW")); + } + if (newBW==420.00) { + m_ifDistributor->setup("BW-MEDIUM"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-MEDIUM")); + } + if (newBW==500.00) { + m_ifDistributor->setup("BW-WIDE"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-WIDE")); + } + if (newBW==512.00) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-UNFILTERED")); + } + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCommandLine::setAttenuation()"); + impl.log(LM_ERROR); + } + }*/ + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SKARAB_SET_SECTION ERROR")); + } + } + if (m_stationMED == true) { + try { + Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + for (int j=0;j<m_sectionsNumber;j++) + m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR; + if (m_stokes==true) { + m_frequency[2*inputId]=newFreq; + m_frequency[2*inputId+1]=newFreq; + m_bandWidth[2*inputId]=newBW; + m_bandWidth[2*inputId+1]=newBW; + } + else { + m_frequency[inputId]=newFreq; + m_bandWidth[inputId]=newBW; + } + m_feedNumber[inputId]=newFeed; + m_bins[inputId]=newBins; + m_polarization[inputId]=newPol; + IRA::CString temp; + if (m_polarization[inputId]==Backends::BKND_LCP) + temp="LCP"; + else if (m_polarization[inputId]==Backends::BKND_RCP) + temp="RCP"; + else + temp="FULL_STOKES"; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], + (const char *)temp,newSR,m_bins[inputId])); + /*if (m_SK00==true || m_SCC00==true || m_SK00S==true || m_SCC00S==true || m_SK01==true || m_SK01S==true || m_SCH00==true || m_SCH00S==true) { + if (newBW==420.00) + filter=300.00; + if (newBW==1500.00) + filter=1250.00; + if (newBW==2300.00) + filter=2350.00; + if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) { + if (m_SK00S==true || m_SCC00S==true || m_SCH00S==true) { + m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1); + } + else if (m_SK01S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + } + else + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter)); + }*/ + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SKARAB_SET_SECTION ERROR")); + } + } +} + +void CCommandLine::getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl, + BackendsErrors::BackendBusyExImpl) +{ + /*AUTO_TRACE("CCommandLine::getZeroTPI()"); + int res; + WORD len; + char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE]; + long integration; + bool busy=getIsBusy(); + long waitTime=0; + if (busy) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::getZeroTPI()"); + throw impl; + } + if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::getZeroTPI()"); + } + integration=(long)round(1.0/ (m_commonSampleRate*1000.0)); + //res=getConfiguration(); // refresh the m_currentSampleRate.......... + if (res>0) { // load OK + // do nothing + } + _CHECK_ERRORS("CommandLine::getZeroTPI()"); + //if the requested integration is not equal to the current sample rate (given is milliseconds as a sample period) + // or the integration time must be forced...and the backend is not busy. Then set the correct sample rate.... + if ((integration!=m_currentSampleRate) || (m_setTpiIntegration)) { + len=CProtocol::setIntegrationTime(sBuff,integration); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + if (!CProtocol::isAck(rBuff)) { + _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::getZeroTPI()"); + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::getZeroTPI()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::getZeroTPI()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::getZeroTPI()"); + } + m_setTpiIntegration=false; + waitTime=1000000+integration*2000; // //wait time in microseconds...we should wait 2 seconds plus twice the integration time (which is given in milliseconds). + } + // connect the backend to the 50ohm + len=CProtocol::setZeroInput(sBuff,true); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + if (!CProtocol::isAck(rBuff)) { + _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::getZeroTPI()"); + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::getZeroTPI()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::getZeroTPI()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::getZeroTPI()"); + } + waitTime+=integration*2000; + if (waitTime>0) IRA::CIRATools::Wait(waitTime); + // now read the total power + len=CProtocol::getSample(sBuff); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + if (!CProtocol::decodeData(rBuff,tpi,m_configuration->getBoardsNumber(),m_sectionsNumber,m_boards)) { + _THROW_EXCPT(BackendsErrors::MalformedAnswerExImpl,"CCommandLine::getZeroTPI()"); + } + for (int j=0;j<m_sectionsNumber;j++) { + m_tpiZero[j]=(double)tpi[j]/(double)integration; + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::getZeroTPI()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::getZeroTPI()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::getZeroTPI()"); + } + // now return to the default attenuation level + len=CProtocol::setZeroInput(sBuff,false); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + if (!CProtocol::isAck(rBuff)) { + _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::getZeroTPI()"); + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::getZeroTPI()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::getZeroTPI()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::getZeroTPI()"); + }*/ +} + +void CCommandLine::getTpi(ACS::doubleSeq& tpi) throw (ComponentErrors::TimeoutExImpl, + BackendsErrors::ConnectionExImpl,ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl) +{ + getSample(tpi,false); +} + +void CCommandLine::getZero(ACS::doubleSeq& tpi) throw (ComponentErrors::TimeoutExImpl, + BackendsErrors::ConnectionExImpl,ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl) +{ + getSample(tpi,true); +} + +void CCommandLine::getSample(ACS::doubleSeq& tpi,bool zero) throw (ComponentErrors::TimeoutExImpl, + BackendsErrors::ConnectionExImpl,ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl) +{ + AUTO_TRACE("CCommandLine::getSample()"); + try { + Message reply = sendBackendCommand(Command::getTpi()); + if(reply.is_success_reply()){ + tpi.length(m_inputsNumber/*m_sectionsNumber*/); + for (int j=0;j<m_inputsNumber/*m_sectionsNumber*/;j++) { + tpi[j]=(double)reply.get_argument<double>(j); + //if (zero) m_tpiZero[j]=tpi[j]/(double)m_integration; // in case of tpiZero we store it...... + if (zero) + m_tpiZero[j]=tpi[j]=0.0; // in case of tpiZero we store it...... + } + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::getTpi()",(LM_NOTICE,"BACKEND_SKARAB_GET-TPI ERROR")); + } +} + +void CCommandLine::getRms(ACS::doubleSeq& rms) throw (ComponentErrors::TimeoutExImpl, + BackendsErrors::ConnectionExImpl,ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::BackendBusyExImpl) +{ + AUTO_TRACE("CCommandLine::getRms()"); + try { + Message reply = sendBackendCommand(Command::getRms()); + if(reply.is_success_reply()){ + rms.length(m_inputsNumber/*m_sectionsNumber*/); + for (int j=0;j<m_inputsNumber/*m_sectionsNumber*/;j++) { + rms[j]=(double)reply.get_argument<double>(j); + } + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::getRms()",(LM_NOTICE,"BACKEND_SKARAB_GET-RMS ERROR")); + } +} + +void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl) +{ + AUTO_TRACE("CCommandLine::setDefaultConfiguration()"); + //if (m_stationSRT==true) { + if (config.Compare("SKARAB_1")==0 || config.Compare("SKARAB_2")==0 || config.Compare("SKARAB_3")==0 || config.Compare("SKARAB_4")==0 || config.Compare("SKARAB_5")==0) { + //m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + //m_SK77=true; + //m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SKARAB_1S")==0 || config.Compare("SKARAB_2S")==0 || config.Compare("SKARAB_3S")==0 || config.Compare("SKARAB_4S")==0 || config.Compare("SKARAB_5S")==0) { + //m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_stokes=true; + //m_SK77=true; + //m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false;// + } + /*if (config.Compare("SK00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK00=true; + m_SK77=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK01")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK01=true; + m_SK77=m_SK00=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK02")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK02=true; + m_SK77=m_SK00=m_SK01=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK03")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK03=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK04")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK04=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK05")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK05=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK06")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK06=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SC00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SC00=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_SL00=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + if (m_stationSRT == true) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); + } + } + if (config.Compare("SP00")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_SP00=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK77S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK77S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK01S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK01S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK02S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK02S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK03S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK03S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK04S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK04S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK05S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK05S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK06S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK06S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SC00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SC00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00S")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SL00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SP00S=false; + if (m_stationSRT == true) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); + } + } + if (config.Compare("SP00S")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SP00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=false; + }*/ + //} + /*if (m_stationMED==true) { + if (config.Compare("SK01")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK01=true; + m_SK00=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK00=true; + m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCC00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SCC00=true; + m_SK00=m_SK01=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCH00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SCH00=true; + m_SK00=m_SK01=m_SL00=m_SP00=m_SCC00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_SL00=true; + m_SK00=m_SK01=m_SCC00=m_SP00=m_SCH00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SP00")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_SP00=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK01S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK01S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCC00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SCC00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCH00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SCH00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00S")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SL00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SP00S=false; + if (m_stationSRT == true) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); + } + } + if (config.Compare("SP00S")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SP00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=false; + } + }*/ +} + +void CCommandLine::setTargetFileName(const char *conf) +{ + m_targetFileName = (const char*)conf; +} + +void CCommandLine::sendTargetFileName() throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl,ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl) +{ + AUTO_TRACE("CCommandLine::sendTargetFileName()"); + int res; + WORD len; + char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE]; + // I do not check for backend busy because this is a call done at the initialization and never repeated + if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::sendTargetFileName()"); + } + strcpy (sBuff,"?set-filename,"); + strcat (sBuff,(const char*)m_targetFileName); + strcat (sBuff,"\r\n"); + len = strlen (sBuff); + + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + //printf("set-filename = %s\n",rBuff); + } + if (res>0) { // operation was ok. + //if (!CProtocol::setConfiguration(rBuff)) { + // _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::setTargetFileName()"); + //} + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::sendTargetFileName()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::sendTargetFileName()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::sendTargetFileName()"); + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::sendTargetFileName()",(LM_NOTICE,"targetFileName SENT")); +} + +void CCommandLine::setup(const char *conf) throw (BackendsErrors::BackendBusyExImpl,BackendsErrors::ConfigurationErrorExImpl,ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,ComponentErrors::CDBAccessExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl) +{ + AUTO_TRACE("CCommandLine::setup()"); + + /* if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setup()"); + throw impl; + }*/ + + if (!initializeConfiguration(conf)) { + _EXCPT(BackendsErrors::ConfigurationErrorExImpl,impl,"CCommandLine::setup()"); + throw impl; + } + try { + Message request = Command::setConfiguration(string((const char*)conf)); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) { + setDefaultConfiguration(conf); + /*for (int i=0;i<m_inputsNumber;i++) { + if (m_SK02S==true || m_SK02==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+2,-1, m_filter, -1, -1, -1, -1); + } + } + if (m_SK03S==true || m_SK03==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+4,-1, m_filter, -1, -1, -1, -1); + } + } + if (m_SK04S==true || m_SK04==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+6,-1, m_filter, -1, -1, -1, -1); + } + } + if (m_SK05S==true || m_SK03==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+8,-1, m_filter, -1, -1, -1, -1); + } + } + else if (m_SK06S==true || m_SK06==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+10,-1, m_filter, -1, -1, -1, -1); + } + } + else + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setup()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %d,FILTER=%lf",i,m_filter)); + }*/ + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setup()",(LM_NOTICE,"BACKEND_SKARAB_INITIALIZED, CONFIGURATION: %s",conf)); + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setup()",(LM_NOTICE,"BACKEND_SKARAB_INITIALIZATION ERROR, CONFIGURATION: %s",conf)); + } +} + +void CCommandLine::checkTime() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::MalformedAnswerExImpl,ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl) +{ + if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::checkTime()"); + } + /*Message request = Command::time(); + Message reply = sendBackendCommand(request); + string _time = reply.get_argument<string>(0); + if(reply.is_success_reply()) + strcpy(time, _time.c_str()); + return _time.length();*/ + + /*char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE]; + WORD len; + int res; + ///the check of th ebusy status is not done because this time chek must be performed also during sampling. + if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::checkTime()"); + } + len=CProtocol::checkBackendTime(sBuff); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + bool sync; + if (!CProtocol::checkBackendTime(rBuff,m_configuration->getTimeTollerance(),sync)) { + _THROW_EXCPT(BackendsErrors::MalformedAnswerExImpl,"CCommandLine::checkTime()"); + } else if (!sync) { + _IRA_LOGFILTER_LOG(LM_WARNING,"CCommandLine::checkTime()","BACKEND_CLOCK_NOT_SYNCHRONIZED"); + setStatusField(TIME_SYNC); + } + else { + clearStatusField(TIME_SYNC); + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::checkTime()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::checkTime()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::checkTime()"); + }*/ +} + +void CCommandLine::setTime() throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, + ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl, + BackendsErrors::BackendBusyExImpl) +{ + AUTO_TRACE("CCommandLine::setTime()"); + //int res; + //WORD len; + //char sBuff[SENDBUFFERSIZE]; + //char rBuff[RECBUFFERSIZE]; +/* if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setTime()"); + throw impl; + }*/ + /*len=CProtocol::setBackendTime(sBuff); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + bool sync; + if (!CProtocol::decodeBackendTime(rBuff,sync)) { + _THROW_EXCPT(BackendsErrors::MalformedAnswerExImpl,"CCommandLine::setTime()"); + setStatusField(TIME_SYNC); + } else if (!sync) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setTime()",(LM_WARNING,"CLOCK_NOT_SYNCHRONIZED")); + setStatusField(TIME_SYNC); + } + else { + clearStatusField(TIME_SYNC); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setTime()",(LM_NOTICE,"TIME_IS_SYNCHRONIZED")); + } + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::setTime()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::setTime()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::setTime()"); + } + */ +} + +void CCommandLine::activateCalSwitching(const long& interleave) throw (BackendsErrors::BackendBusyExImpl,ComponentErrors::NotAllowedExImpl) +{ + AUTO_TRACE("CCommandLine::activateCalSwitching()"); + /*int res; + WORD len; + char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE];*/ + if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setTime()"); + throw impl; + } + /*if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::setTime()"); + }*/ + Message request = Command::calOn(interleave); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()){ + // TBD + } + if (!m_calSwitchingEnabled) { + _EXCPT(ComponentErrors::NotAllowedExImpl,impl,"CCommandLine::activateCalSwitching()"); + throw impl; + } + if (interleave>=0) { + m_calPeriod=interleave; + if (m_calPeriod>0) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::activateCalSwitching()",(LM_NOTICE,"CALIBRATION_DIODE_SWITCHING_ON")); + } + else { + ACS_LOG(LM_FULL_INFO,"CCommandLine::activateCalSwitching()",(LM_NOTICE,"CALIBRATION_DIODE_SWITCHING_OFF")); + } + } +} + +void CCommandLine::setEnabled(const ACS::longSeq& en) throw (BackendsErrors::BackendBusyExImpl) +{ + int bound; + if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setEnabled()"); + throw impl; + } + if ((long)en.length()>=m_sectionsNumber) { + bound=m_sectionsNumber; + } + else { + bound=en.length(); + } + for (int i=0;i<bound;i++) { + if (en[i]>0) m_enabled[i]=true; + else if (en[i]==0) m_enabled[i]=false; + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setEnabled()",(LM_NOTICE,"CHANGED_ENABLED_CHANNEL")); +} + +void CCommandLine::setIntegration(const long& integration) throw (BackendsErrors::BackendBusyExImpl, ComponentErrors::ValueOutofRangeExImpl) +{ + AUTO_TRACE("CCommandLine::setIntegration()"); + /*if (getIsBusy()) { + _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setIntegration()"); + throw impl; + }*/ + m_integration = integration; + if (m_integration>=MIN_INTEGRATION && m_integration <= MAX_INTEGRATION) { + Message request = Command::setIntegration(integration); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + // TBD + ACS_LOG(LM_FULL_INFO,"CCommandLine::setIntegration()",(LM_NOTICE,"INTEGRATION is now %ld (millisec)",m_integration)); + } + } + else { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setIntegration()"); + impl.setValueName("integration"); + throw impl; + } +} + +void CCommandLine::getAttenuation(ACS::doubleSeq& att) throw (ComponentErrors::SocketErrorExImpl, + ComponentErrors::TimeoutExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::getAttenuation()"); + att.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + att[i]=m_attenuation[i]; + } +} + +void CCommandLine::getAttenuationAttr(ACS::doubleSeq& att) throw (ComponentErrors::SocketErrorExImpl, + ComponentErrors::TimeoutExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::getAttenuation()"); + att.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + att[i]=m_attenuation[i]; + } +} + +void CCommandLine::getFrequency(ACS::doubleSeq& freq) const +{ + freq.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + freq[i]=m_frequency[i]; + } +} + +void CCommandLine::getFrequencyAttr(ACS::doubleSeq& freq) const +{ + freq.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + freq[i]=m_frequency[i]; + } +} + +void CCommandLine::getBackendStatus(DWORD& status) +{ + AUTO_TRACE("CCommandLine::getBackendStatus()"); + try { + Message request = Command::status(); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) { + string _status = reply.get_argument<string>(2); + //strcpy(status, _status.c_str()); + status=atof(_status.c_str()); + if (status == 0) + clearStatusField(BUSY); + if (status == 1) + setStatusField(BUSY); + + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::getBackendStatus()",(LM_NOTICE,"BACKEND_SKARAB_GET_STATUS_ERROR")); + } + //return _status.length(); + return status; +} + +void CCommandLine::getSampleRate(ACS::doubleSeq& sr) const +{ + sr.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + sr[i]=m_sampleRate[i]; + } +} + +void CCommandLine::getTsys(ACS::doubleSeq& tsys) const +{ + /*tsys.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + tsys[i]=m_tsys[i]; + }*/ + tsys.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + tsys[i]=m_tsys[i]; + } +} + +void CCommandLine::getKCRatio(ACS::doubleSeq& ratio) const +{ + ratio.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + ratio[i]=m_KCratio[i]; + } +} + +void CCommandLine::getBins(ACS::longSeq& bins) const +{ + bins.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + bins[i]=m_bins[i]; + } +} + +void CCommandLine::getPolarization(ACS::longSeq& pol) const +{ + pol.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + if (m_stokes==true) + pol[i]=2; + else + pol[i]=(long)m_polarization[i]; + } +} + +void CCommandLine::getFeed(ACS::longSeq& feed) const +{ + feed.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + feed[i]=m_feedNumber[i]; + } +} + +void CCommandLine::getFeedAttr(ACS::longSeq& feed) const +{ + feed.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + if (m_stokes == true) + feed[i]=m_feedNumber[2*i]; + /*else if (m_SK01S == true || m_SK02S == true || m_SK03S==true || m_SK04S==true || m_SK05S==true || m_SK06S==true) { + if (i < 1) + feed[i] = 0; + else { + if (m_SK01S == true) + feed[i] = 1; + if (m_SK02S == true) + feed[i] = 2; + if (m_SK03S == true) + feed[i] = 3; + if (m_SK04S == true) + feed[i] = 4; + if (m_SK05S == true) + feed[i] = 5; + if (m_SK06S == true) + feed[i] = 6; + } + }*/ + else + feed[i]=m_feedNumber[i]; + } +} + +void CCommandLine::getIFs(ACS::longSeq& ifs) const +{ + ifs.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + ifs[i]=m_ifNumber[i]; + } +} + +void CCommandLine::getInputSection(ACS::longSeq& inpSection) const +{ + inpSection.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + inpSection[i]=m_inputSection[i]; + } +} + +void CCommandLine::getInputSectionAttr(ACS::longSeq& inpSection) const +{ + long index=0; + + if (m_stokes==true) + index = m_sectionsNumber; + else + index = m_inputsNumber; + + inpSection.length(index); + for (int i=0;i<index;i++) { + inpSection[i]=m_inputSection[i]; + } +} + +void CCommandLine::getBandWidth(ACS::doubleSeq& bw) throw (ComponentErrors::SocketErrorExImpl, + ComponentErrors::TimeoutExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::getBandWidth()"); + bw.length(m_inputsNumber); + for (int i=0;i<m_inputsNumber;i++) { + bw[i]=m_bandWidth[i]; + } +} + +void CCommandLine::getBandWidthAttr(ACS::doubleSeq& bw) const +{ + AUTO_TRACE("CCommandLine::getBandWidthAttr()"); + + bw.length(m_sectionsNumber); + for (int i=0;i<m_sectionsNumber;i++) { + bw[i]=m_bandWidth[i]; + } +} +void CCommandLine::getTime(ACS::Time& tt) throw (ComponentErrors::SocketErrorExImpl,ComponentErrors::TimeoutExImpl, + BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ConnectionExImpl) +{ + AUTO_TRACE("CCommandLine::getTime()"); + TIMEDIFFERENCE bkndTime; + TIMEVALUE tm; + long long seconds; + long second,minute,hour,day; + try { + Message request = Command::time(); + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) { + seconds=reply.get_argument<long long>(0); + day=seconds/86400; + seconds%=86400; + hour=seconds/3600; + seconds%=3600; + minute=seconds/60; + second=seconds % 60; + bkndTime.day(day); + bkndTime.hour(hour); + bkndTime.minute(minute); + bkndTime.second(second); + tm.reset(); + tm.normalize(true); + tm.year(1970); + tm.month(1); + tm.day(1); + tm+=bkndTime.value(); + tt=tm.value().value; + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::getTime()",(LM_NOTICE,"BACKEND_SKARAB_GET_TIME_ERROR")); + } +} + +void CCommandLine::fillMainHeader(Backends::TMainHeader& bkd) +{ + bkd.sections=m_sectionsNumber; + bkd.beams=m_beams; + //resultingSampleRate(m_integration,m_commonSampleRate,intTime); + //bkd.integration=intTime; + bkd.integration=m_integration; + bkd.sampleSize=m_sampleSize; + bkd.noData=true; +} + +void CCommandLine::fillChannelHeader(Backends::TSectionHeader *chHr,const long& size) +{ + long index=0; + for (int i=0;i<m_sectionsNumber;i++) { + //for (int i=0;i<m_inputsNumber;i++) { + //printf("i = %d\n", i); + //if (m_enabled[i]) { + // if (index<size) { + chHr[index].id=i; + chHr[index].bins=m_bins[i]; + chHr[index].bandWidth=m_bandWidth[i]; + chHr[index].frequency=m_frequency[i]; + chHr[index].attenuation[0]=m_attenuation[i]; + chHr[index].attenuation[1]=m_attenuation[i]; + chHr[index].sampleRate=/*m_sampleRate[i];*/m_commonSampleRate; + if (m_stokes==true) { + chHr[index].inputs=2; + chHr[index].feed=m_feedNumber[2*i]; + chHr[index].polarization=m_polarization[2*i]; + chHr[index].IF[0]=0; + chHr[index].IF[1]=1; + } + else { + chHr[index].inputs=1; + chHr[index].feed=m_feedNumber[i]; + chHr[index].polarization=m_polarization[i]; + chHr[index].IF[0]=m_ifNumber[i]; + } + //printf("feed = %d\n", chHr[index].feed); + //printf("pol = %d\n", m_polarization[i]); + index++; + // } + //} + } +} + +void CCommandLine::saveTsys(const ACS::doubleSeq& tsys,const ACS::doubleSeq& ratio) +{ + /*if (tsys.length()==(unsigned)m_sectionsNumber) { + for (int i=0;i<m_sectionsNumber;i++) { + m_tsys[i]=tsys[i]; + } + } + if (ratio.length()==(unsigned)m_sectionsNumber) { + for (int i=0;i<m_sectionsNumber;i++) { + m_KCratio[i]=ratio[i]; + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::saveTsys()",(LM_NOTICE,"KELVIN_COUNTS_CONVERSION_FACTOR_SET")); + }*/ + if (tsys.length()==(unsigned)m_inputsNumber) { + for (int i=0;i<m_inputsNumber;i++) { + m_tsys[i]=tsys[i]; + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::saveTsys()",(LM_NOTICE,"TSYS_SET")); + } + if (ratio.length()==(unsigned)m_inputsNumber) { + for (int i=0;i<m_inputsNumber;i++) { + m_KCratio[i]=ratio[i]; + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::saveTsys()",(LM_NOTICE,"KELVIN_COUNTS_CONVERSION_FACTOR_SET")); + } +} + +bool CCommandLine::resultingSampleRate(const long& integration,const double& sr,long& result) +{ + bool res=false; + long accumulations; + double temp; + temp=(double)integration*1000.0*sr; + accumulations=(long)round(temp); + if (accumulations<1) accumulations=1; + if (((temp-accumulations)>0.0) || ((temp-accumulations)<0.0)) { + res=true; + } + result=(long)round((accumulations/(sr*1000))); + return res; +} + +// Protected Methods + +void CCommandLine::onConnect(int ErrorCode) +{ + CError Tmp; + if (getStatus()==CNTDING) { // if the line is connecting....... + if (ErrorCode==0) { + if (EventSelect(Tmp,E_CONNECT,false)==SUCCESS) { + setStatus(CNTD); + CSocket::setStatus(IRA::CSocket::READY); // force the socket status to be ready..... + try { + //stopDataAcquisitionForced(); // ask the backend to exit the data transfering mode...... + } + catch (ACSErr::ACSbaseExImpl& ex) { + + } + clearStatusField(BUSY); + m_reiniting=true; // ask to the datasocket to accept connection again + ACS_LOG(LM_FULL_INFO,"CCommandLine::onConnect()",(LM_NOTICE,"SOCKET_RECONNECTED")); + } + } + else { + setStatus(NOTCNTD); + ACS_DEBUG_PARAM("CCommandLine::onConnect()","Reconnection failed, exit code is %d",ErrorCode); + } + } +} + +void CCommandLine::onTimeout(WORD EventMask) +{ + if ((EventMask&E_CONNECT)==E_CONNECT) { + ACS_DEBUG("CCommandLine::onTimeout()","Reconnection timed-out, keep trying...."); + } +} + +// private methods + +IRA::CSocket::OperationResult CCommandLine::sendBuffer(char *Msg,WORD Len) +{ + int NWrite; + int BytesSent; + BytesSent=0; + while (BytesSent<Len) { + if ((NWrite=Send(m_Error,(const void *)(Msg+BytesSent),Len-BytesSent))<0) { + if (NWrite==WOULDBLOCK) { + setStatus(NOTCNTD); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CCommandLine::sendBuffer()","SOCKET_DISCONNECTED - remote side shutdown"); + return WOULDBLOCK; + } + else { + setStatus(NOTCNTD); + CString app; + app.Format("SOCKET_DISCONNECTED - %s",(const char *)m_Error.getFullDescription()); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CCommandLine::sendBuffer()",(const char*)app); + return FAIL; + } + } + else { // success + BytesSent+=NWrite; + } + } + if (BytesSent==Len) { + return SUCCESS; + } + else { + _SET_ERROR(m_Error,CError::SocketType,CError::SendError,"CCommandLine::SendBuffer()"); + return FAIL; + } +} + +int CCommandLine::receiveBuffer(char *Msg,WORD Len) +{ + char inCh; + int res; + int nRead=0; + TIMEVALUE Now; + TIMEVALUE Start; + CIRATools::getTime(Start); + while(true) { + res=Receive(m_Error,&inCh,1); + if (res==WOULDBLOCK) { + CIRATools::getTime(Now); + if (CIRATools::timeDifference(Start,Now)>m_configuration->getCommandLineTimeout()) { + m_bTimedout=true; + return WOULDBLOCK; + } + else { + CIRATools::Wait(0,20000); + continue; + } + } + else if (res==FAIL) { + setStatus(NOTCNTD); + CString app; + app.Format("SOCKET_DISCONNECTED - %s",(const char *)m_Error.getFullDescription()); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CCommandLine::receiveBuffer()",(const char*)app); + return res; + } + else if (res==0) { + setStatus(NOTCNTD); + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CCommandLine::receiveBuffer()","SOCKET_DISCONNECTED - remote side shutdown"); + return res; + } + else { + if (inCh!=PROT_TERMINATOR_CH) { + Msg[nRead]=inCh; + nRead++; + } + else { + Msg[nRead]=0; + return nRead; + } + } + } +} + +int CCommandLine::sendCommand(char *inBuff,const WORD& inLen,char *outBuff) +{ + OperationResult Res; + if ((Res=sendBuffer(inBuff,inLen))==SUCCESS) { + int bytes=receiveBuffer(outBuff,RECBUFFERSIZE); + return bytes; + } + else { // send fails....m_Error already set by sendBuffer + return Res; + } +} + +Message +CCommandLine::sendBackendCommand(Message request) +{ + if (!checkConnection()) { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::sendBackendCommand()"); + } + char sBuff[SENDBUFFERSIZE]; + char rBuff[RECBUFFERSIZE]; + strcpy (sBuff,request.toString(true).c_str()); + int len = strlen (sBuff); + int res = 0; + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); + } + if (res>0) { // operation was ok. + clearStatusField(CCommandLine::BUSY); + setStatusField(SUSPEND); + } + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::sendBackendCommand()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::sendBackendCommand()"); + } + else { + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::sendBackendCommand()"); + } + Message reply(string(rBuff, res), true); + try { + reply.validate(); + } + catch (BackendProtocolError& bpe) { + //TODO: somehow the reply is not valid + //we cannot proceed we need to throw an exception + _THROW_EXCPT(BackendsErrors::MalformedAnswerExImpl,"sendBackendCommand()"); + } + if(!(reply.is_valid_reply_for(request))) + { + //TODO: this answer is not valid for this request, throw exception + _THROW_EXCPT(BackendsErrors::ReplyNotValidExImpl,"sendBackendCommand()"); + } + if(!(reply.is_success_reply())) + { + //TODO: the reply has a FAIL o INVALID code, this must be + //managed + _EXCPT(BackendsErrors::BackendFailExImpl,impl,"sendBackendCommand()"); + //impl.setReason("transfer job cannot be resumed in present configuration"); + impl.setReason(reply.get_argument<string>(0).c_str()); + throw impl; + } + return reply; +} + +//int CCommandLine::getConfiguration(char* configuration) +void CCommandLine::getConfiguration(char* configuration) +{ + Message request = Command::getConfiguration(); + try { + Message reply = sendBackendCommand(request); + if(reply.is_success_reply()) + { + strcpy(configuration, reply.get_argument<string>(0).c_str()); + } + } + catch (...) { + + } +} + +int CCommandLine::getCommProtVersion(CORBA::String_out version) +{ + Message request = Command::version(); + Message reply = sendBackendCommand(request); + string _version = reply.get_argument<string>(0); + if(reply.is_success_reply()) + strcpy(version, _version.c_str()); + return _version.length(); +} + +bool CCommandLine::checkConnection() +{ + CError Tmp; + char sBuffer[RECBUFFERSIZE]; + int rBytes; + if (m_bTimedout) { // if a previous time out happend....try if the buffer has still to be received + rBytes=receiveBuffer(sBuffer,RECBUFFERSIZE); + if (rBytes==WOULDBLOCK) { // if the operation would have block again.....declare the disconnection + setStatus(NOTCNTD); // another timeout! something has happend + _IRA_LOGFILTER_LOG(LM_CRITICAL,"CCommandLine::checkConnection()","SOCKET_DISCONNECTED - timeout expired"); + } + else if (rBytes==FAIL) { + // Nothing to do, this error will be handled below.... + } + else if (rBytes==0) { + // Nothing to do, this error will be handled below.... + } + else { + m_bTimedout=false; // timeout recovered + } + } + if (getStatus()==CNTD) { + return true; + } + else if (getStatus()==CNTDING) { + return false; + } + else { // socket is not connected.... + // try to close the socket, if it is already closed : never known.... + Close(Tmp); + Tmp.Reset(); + m_bTimedout=false; + // this will create the socket in blocking mode..... + if (Create(Tmp,STREAM)==SUCCESS) { + // Put the socket in non-blocking mode, registers the onconnect event....and allow some seconds to complete! + if (EventSelect(Tmp,E_CONNECT,true,m_configuration->getConnectTimeout())==SUCCESS) { + OperationResult Res; + ACS_DEBUG("CCommandLine::checkConnection()","Trying to reconnect"); + Res=Connect(Tmp,m_configuration->getAddress(),m_configuration->getPort()); + if (Res==WOULDBLOCK) { + setStatus(CNTDING); + } + else if (Res==SUCCESS) { + setStatus(CNTD); + try { + //stopDataAcquisitionForced(); // ask the backend to exit the data transfering mode...... + } + catch (ACSErr::ACSbaseExImpl& ex) { + + } + clearStatusField(BUSY); + m_reiniting=true; + ACS_LOG(LM_FULL_INFO,"CCommandLine::checkConnection()",(LM_NOTICE,"SOCKET_RECONNECTED")); //we do not want to filter this info so no logfilter..... + return true; + } + } + } + return false; + } +} + +bool CCommandLine::initializeConfiguration(const IRA::CString & config) throw (ComponentErrors::CDBAccessExImpl) +{ + int i; + CConfiguration::TBackendSetup setup; + if (m_configuration->getSetupFromID(config,setup)) { // throw (ComponentErrors::CDBAccessExImpl) + m_sectionsNumber=setup.sections; + for (WORD k=0;k<MAX_BOARDS_NUMBER;k++) { + //m_defaultInput[k]=setup.inputPort[k]; + m_sections[k]=-1; + } + m_defaultInputSize=setup.inputPorts; // this should be 1 or the number of installed boards + m_beams=setup.beams; + m_calSwitchingEnabled=setup.calSwitchEnabled; + for (i=0;i<m_sectionsNumber;i++) { + m_boards[i]=setup.section_boards[i]; + m_sections[m_boards[i]]=i; + //m_input[i]=m_defaultInput[m_boards[i]]; + m_polarization[i]=setup.polarizations[i]; + //printf ("m_polarization = %d\n", m_polarization[i]); + m_ifNumber[i]=setup.ifs[i]; + m_feedNumber[i]=setup.feed[i]; + m_inputSection[i]=i; // input 0 belongs to section 0 and so on..... + m_attenuation[i]=setup.attenuation; + m_bandWidth[i]=setup.bandWidth; + m_bins[i]=setup.bins; + } + } + else { + return false; + } + + // Common configurations....... + m_integration=DEFAULT_INTEGRATION; // integration if by default zero...that means the 1/samplerate is the real integration time + m_currentSampleRate=m_integration; // this is given in milliseconds as sample period + m_sampleSize=SAMPLESIZE; + m_commonSampleRate=DEFAULT_SAMPLE_RATE; + m_calPeriod=DEFAULT_DIODE_SWITCH_PERIOD; + for (i=0;i<m_sectionsNumber;i++) { + m_sampleRate[i]=DEFAULT_SAMPLE_RATE; + m_frequency[i]=STARTFREQUENCY; + //m_bins[i]=BINSNUMBER; + m_enabled[i]=true; + m_tsys[i]=0.0; + m_KCratio[i]=1.0; + m_tpiZero[i]=0.0; + } + return true; +} + +void CCommandLine::setStatus(TLineStatus sta) +{ + m_status=sta; + if (m_status!=CNTD) { + setStatusField(CMDLINERROR); + } + else { + clearStatusField(CMDLINERROR); + } +} diff --git a/Common/Servers/Skarab/src/Configuration.cpp b/Common/Servers/Skarab/src/Configuration.cpp new file mode 100644 index 000000000..493568217 --- /dev/null +++ b/Common/Servers/Skarab/src/Configuration.cpp @@ -0,0 +1,224 @@ +// $Id: Configuration.cpp,v 1.2 2011-05-12 14:14:31 c.migoni Exp $ + +#include "Configuration.h" + +#define _GET_DWORD_ATTRIBUTE(ATTRIB,DESCR,FIELD) { \ + DWORD tmpw; \ + if (!CIRATools::getDBValue(Services,ATTRIB,tmpw)) { \ + _EXCPT(ComponentErrors::CDBAccessExImpl,dummy,"CConfiguration::Init()"); \ + dummy.setFieldName(ATTRIB); \ + throw dummy; \ + } \ + else { \ + FIELD=tmpw; \ + ACS_DEBUG_PARAM("CConfiguration::Init()",DESCR" %lu",tmpw); \ + } \ +} + +#define _GET_STRING_ATTRIBUTE(ATTRIB,DESCR,FIELD) { \ + CString tmps; \ + if (!CIRATools::getDBValue(Services,ATTRIB,tmps)) { \ + _EXCPT(ComponentErrors::CDBAccessExImpl,dummy,"::CConfiguration::Init()"); \ + dummy.setFieldName(ATTRIB); \ + throw dummy; \ + } \ + else { \ + FIELD=tmps; \ + ACS_DEBUG_PARAM("CConfiguration::Init()",DESCR" %s",(const char*)tmps); \ + } \ +} + +CConfiguration::CConfiguration() +{ + m_configurationTable=NULL; +} + +CConfiguration::~CConfiguration() +{ + if (m_configurationTable!=NULL) { + m_configurationTable->closeTable(); + delete m_configurationTable; + } +} + +bool CConfiguration::getInputPorts(const IRA::CString& conf,CProtocol::TInputs* inputPort,WORD& size) +{ + int start=0; + IRA::CString ret; + size=0; + while (IRA::CIRATools::getNextToken(conf,start,' ',ret)) { + if (size>=MAX_BOARDS_NUMBER) return false; + if (ret=="PRIMARY") { + inputPort[size]=CProtocol::PRIMARY; + } + else if (ret=="BWG") { + inputPort[size]=CProtocol::BWG; + } + else if (ret=="GREGORIAN") { // GREGORIAN + inputPort[size]=CProtocol::GREGORIAN; + } + else { + return false; + } + size++; + } + if ((size!=1) && (size!=m_dwBoardsNumber)) return false; // the size of inputs vector should be 1 or equal to the number of boards + if ((size==1)) { // if the provided list of input ports is one element, i'll fill everything up to the maximum number of boards + for (WORD k=1;k<MAX_BOARDS_NUMBER;k++) { + inputPort[k]=inputPort[0]; + } + } + return true; +} + +bool CConfiguration::getSetupFromID(const IRA::CString setupID,TBackendSetup& setup) throw (ComponentErrors::CDBAccessExImpl) +{ + bool done=false; + CString inputPorts; + m_configurationTable->First(); + for (int i=0;i<m_configurationTable->recordCount();i++) { + CString id((*m_configurationTable)["configurationID"]->asString()); + if (setupID==id) { + done=true; + break; + } + m_configurationTable->Next(); + } + if (done) { + setup.setupID=(*m_configurationTable)["configurationID"]->asString(); + setup.sections=(*m_configurationTable)["sections"]->asLongLong(); + if (setup.sections>MAX_SECTION_NUMBER) { + return false; + } + if ((*m_configurationTable)["calSwitchingEnabled"]->asString()=="TRUE") { + setup.calSwitchEnabled=true; + } + else { + setup.calSwitchEnabled=false; + } + inputPorts=(*m_configurationTable)["inputPort"]->asString(); + if (!getInputPorts(inputPorts,setup.inputPort,setup.inputPorts)) { + _EXCPT(ComponentErrors::CDBAccessExImpl,impl,""); + impl.setFieldName("Configuration.inputPort"); + throw impl; + } + setup.beams=(*m_configurationTable)["beams"]->asLongLong(); + setup.bandWidth=(*m_configurationTable)["bandWidth"]->asDouble(); + setup.attenuation=(*m_configurationTable)["attenuation"]->asDouble(); + int start_si=0,start_pol=0,start_feed=0,start_ifs=0; + IRA::CString section_boards((*m_configurationTable)["section_boards"]->asString()); + IRA::CString polarizations((*m_configurationTable)["polarizations"]->asString()); + IRA::CString feed((*m_configurationTable)["feed"]->asString()); + IRA::CString ifs((*m_configurationTable)["IF"]->asString()); + IRA::CString ret; + for(int i=0;i<setup.sections;i++) { + if (!IRA::CIRATools::getNextToken(section_boards,start_si,' ',ret)) return false; + setup.section_boards[i]=ret.ToLong(); + if ((setup.section_boards[i]>=(long)m_dwBoardsNumber) || (setup.section_boards[i]<0)) return false; + if (!IRA::CIRATools::getNextToken(polarizations,start_pol,' ',ret)) return false; + if (ret=="L") { + setup.polarizations[i]=Backends::BKND_LCP; + } + else if (ret=="R") { + setup.polarizations[i]=Backends::BKND_RCP; + } + else { + setup.polarizations[i]=Backends::BKND_FULL_STOKES; + } + //printf("setup.pol = %d\n", setup.polarizations[i]); + if (!IRA::CIRATools::getNextToken(feed,start_feed,' ',ret)) return false; + setup.feed[i]=ret.ToLong(); + if (!IRA::CIRATools::getNextToken(ifs,start_ifs,' ',ret)) return false; + setup.ifs[i]=ret.ToLong(); + ACS_LOG(LM_FULL_INFO,"CConfiguration::getSetupFromID()",(LM_DEBUG,"Sections: %d - Board: %d - Polarization: %d - Feed: %d - Ifs: %d",i,setup.section_boards[i],setup.polarizations[i],setup.feed[i],setup.ifs[i])); + } + setup.bins=(*m_configurationTable)["bins"]->asLongLong(); + return true; + } + else { + return false; + } +} + +void CConfiguration::init(maci::ContainerServices *Services) throw (ComponentErrors::CDBAccessExImpl,ComponentErrors::MemoryAllocationExImpl,ComponentErrors::IRALibraryResourceExImpl) +{ + _GET_STRING_ATTRIBUTE("IPAddress","TCP/IP address is: ",m_sAddress); + _GET_DWORD_ATTRIBUTE("Port","Port is: ",m_wPort); + _GET_DWORD_ATTRIBUTE("CommandLineTimeout","Time out of the command line is (uSec): ",m_dwCommandLineTimeout); + _GET_DWORD_ATTRIBUTE("ConnectTimeout","Time out of the command line connection is (uSec): ",m_dwConnectTimeout); + _GET_DWORD_ATTRIBUTE("PropertyRefreshTime","The property refresh time is (microseconds): ",m_dwPropertyRefreshTime); + _GET_STRING_ATTRIBUTE("Configuration","Backend configuration is: ",m_sConfig); + _GET_DWORD_ATTRIBUTE("TimeTollerance","The time tollerance is (microseconds): ",m_dwTimeTollerance); + _GET_DWORD_ATTRIBUTE("RepetitionCacheTime","Log repetition filter cache time (uSec)",m_dwRepetitionCacheTime); + _GET_DWORD_ATTRIBUTE("RepetitionExpireTime","Log repetition filter expire time (uSec)",m_dwRepetitionExpireTime); + _GET_DWORD_ATTRIBUTE("DataPort","Port of data line is: ",m_wDataPort); + _GET_STRING_ATTRIBUTE("DataIPAddress","Data line TCP/IP address is: ", m_sDataAddress); + _GET_DWORD_ATTRIBUTE("DataLatency","The latency of the backend data line is (uSec)",m_dwDataLatency); + _GET_DWORD_ATTRIBUTE("SenderSleepTime","The sender thread sleep time is (uSec)",m_dwSenderSleepTime); + _GET_DWORD_ATTRIBUTE("SenderResponseTime","The sender thread response time is (uSec)",m_dwSenderResponseTime); + _GET_DWORD_ATTRIBUTE("ControlSleepTime","The control thread sleep time is (uSec)",m_dwControlSleepTime); + _GET_DWORD_ATTRIBUTE("ControlResponseTime","The control thread response time is (uSec)",m_dwControlResponseTime); + _GET_DWORD_ATTRIBUTE("BoardsNumber","The number of installed boards is ",m_dwBoardsNumber); + _GET_DWORD_ATTRIBUTE("DataBufferSize","Size of data packet is (bytes)",m_dwDataBufferSize); + + if (m_dwBoardsNumber>MAX_BOARDS_NUMBER) m_dwBoardsNumber=MAX_BOARDS_NUMBER; + + // read the configurations + IRA::CError error; + try { + m_configurationTable=(CDBTable *)new CDBTable(Services,"Configuration","DataBlock/Skarab"); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"SkarabImpl::initialize()"); + throw dummy; + } + error.Reset(); + if (!m_configurationTable->addField(error,"configurationID", CDataField::STRING)) { + error.setExtra("Error adding field configurationID", 0); + } + else if (!m_configurationTable->addField(error,"sections",CDataField::LONGLONG)) { + error.setExtra("Error adding field sections", 0); + } + else if (!m_configurationTable->addField(error,"calSwitchingEnabled",CDataField::STRING)) { + error.setExtra("Error adding field calSwitchingEnabled", 0); + } + else if (!m_configurationTable->addField(error,"inputPort", CDataField::STRING)) { + error.setExtra("Error adding field inputPort", 0); + } + else if (!m_configurationTable->addField(error,"beams", CDataField::LONGLONG)) { + error.setExtra("Error adding field beams", 0); + } + else if (!m_configurationTable->addField(error,"bandWidth",CDataField::DOUBLE)) { + error.setExtra("Error adding field bandWidth", 0); + } + else if (!m_configurationTable->addField(error,"attenuation",CDataField::DOUBLE)) { + error.setExtra("Error adding field attenuation", 0); + } + else if (!m_configurationTable->addField(error,"section_boards", CDataField::STRING)) { + error.setExtra("Error adding field sections_inputs", 0); + } + else if (!m_configurationTable->addField(error,"polarizations", CDataField::STRING)) { + error.setExtra("Error adding field polarizations", 0); + } + else if (!m_configurationTable->addField(error,"feed",CDataField::STRING)) { + error.setExtra("Error adding field feed", 0); + } + else if (!m_configurationTable->addField(error,"IF",CDataField::STRING)) { + error.setExtra("Error adding field IF", 0); + } + else if (!m_configurationTable->addField(error,"bins", CDataField::LONGLONG)) { + error.setExtra("Error adding field bins", 0); + } + if (!error.isNoError()) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,error); + dummy.setCode(error.getErrorCode()); + dummy.setDescription((const char*)error.getDescription()); + throw dummy; + } + if (!m_configurationTable->openTable(error)) { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); + throw dummy; + } + +} + diff --git a/Common/Servers/Skarab/src/ControlThread.cpp b/Common/Servers/Skarab/src/ControlThread.cpp new file mode 100644 index 000000000..a954c6504 --- /dev/null +++ b/Common/Servers/Skarab/src/ControlThread.cpp @@ -0,0 +1,43 @@ +// $Id: ControlThread.cpp,v 1.1 2011-03-14 14:15:07 c.migoni Exp $ + +#include "ControlThread.h" +#include <LogFilter.h> + +_IRA_LOGFILTER_IMPORT; + + +CControlThread::CControlThread(const ACE_CString& name,CSecureArea<CCommandLine> *parameter,const ACS::TimeInterval& responseTime, + const ACS::TimeInterval& sleepTime) : ACS::Thread(name,responseTime,sleepTime) + { + AUTO_TRACE("CControlThread::CControlThread()"); + m_pData=parameter; +} + + CControlThread::~CControlThread() + { + AUTO_TRACE("CControlThread::~CControlThread()"); + } + + void CControlThread::onStart() + { + AUTO_TRACE("CControlThread::onStart()"); + } + + void CControlThread::onStop() + { + AUTO_TRACE("CControlThread::onStop()"); + } + + void CControlThread::runLoop() + { + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_pData->Get(); + try { + //line->checkTime(); + } + catch (ACSErr::ACSbaseExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl,_dummy,E,"CControlThread::runLoop()"); + _dummy.setReason("Could not check time synchronization"); + _IRA_LOGFILTER_LOG_EXCEPTION(_dummy,LM_ERROR); + } +} + diff --git a/Common/Servers/Skarab/src/Makefile b/Common/Servers/Skarab/src/Makefile new file mode 100644 index 000000000..931948bd8 --- /dev/null +++ b/Common/Servers/Skarab/src/Makefile @@ -0,0 +1,215 @@ +#******************************************************************************* +# PPPPPPPP +# +# "@(#) $Id: Makefile,v 1.1 2011-03-14 14:15:07 a.orlati Exp $" +# +# Makefile of ........ +# +# who when what +# -------- -------- ---------------------------------------------- +# andrea 11/09/08 created +# + +#******************************************************************************* +# This Makefile follows VLT Standards (see Makefile(5) for more). +#******************************************************************************* +# REMARKS +# None +#------------------------------------------------------------------------ + +MAKE_PDF = ON + +# +# user definable C-compilation flags +#USER_CFLAGS = + +# +# additional include and library search paths +#USER_INC = +USER_LIB = -lstdc++ + +# +# MODULE CODE DESCRIPTION: +# ------------------------ +# As a general rule: public file are "cleaned" and "installed" +# local (_L) are not "installed". + +# +# C programs (public and local) +# ----------------------------- +EXECUTABLES = +EXECUTABLES_L = + +# +# <brief description of xxxxx program> +xxxxx_OBJECTS = +xxxxx_LDFLAGS = +xxxxx_LIBS = + +# +# special compilation flags for single c sources +#yyyyy_CFLAGS = + +# +# Includes (.h) files (public only) +# --------------------------------- +INCLUDES = + +# +# Libraries (public and local) +# ---------------------------- +LIBRARIES = SkarabImpl +LIBRARIES_L = + +SkarabImpl_OBJECTS = SkarabImpl Configuration CommandLine SenderThread ControlThread Protocol +SkarabImpl_LIBS = IRALibrary GenericBackendStubs SkarabStubs TotalPowerStubs ManagmentDefinitionsStubs ReceiversDefinitionsStubs BackendsDefinitionsStubs bulkDataStubs bulkDataSenderStubs GenericIFDistributorStubs\ + bulkDataReceiverStubs ACSBulkDataError ComponentErrors BackendsErrors ParserErrors ManagementErrors \ + DiscosBackendProtocolLib DiscosVersion + +# +# <brief description of lllll library> +lllll_OBJECTS = + +# +# Scripts (public and local) +# ---------------------------- +SCRIPTS = _send_backend_command +SCRIPTS_L = + +# +# TCL scripts (public and local) +# ------------------------------ +TCL_SCRIPTS = +TCL_SCRIPTS_L = + +# +# Python stuff (public and local) +# ---------------------------- +PY_SCRIPTS = +PY_SCRIPTS_L = + +PY_MODULES = +PY_MODULES_L = + +PY_PACKAGES = +PY_PACKAGES_L = +pppppp_MODULES = + +# +# <brief description of tttttt tcl-script> +tttttt_OBJECTS = +tttttt_TCLSH = +tttttt_LIBS = + +# +# TCL libraries (public and local) +# ------------------------------ +TCL_LIBRARIES = +TCL_LIBRARIES_L = + +# +# <brief description of tttlll library> +tttlll_OBJECTS = + +# +# Configuration Database Files +# ---------------------------- +CDB_SCHEMAS = Skarab SkarabSetup + +# +# IDL Files and flags +# +IDL_FILES = +IDL_TAO_FLAGS = +USER_IDL = +# +# Jarfiles and their directories +# +JARFILES= +jjj_DIRS= +jjj_EXTRAS= +# +# java sources in Jarfile on/off +DEBUG= +# +# ACS XmlIdl generation on/off +# +XML_IDL= +# +# Java Component Helper Classes generation on/off +# +COMPONENT_HELPERS= +# +# Java Entity Classes generation on/off +# +XSDBIND= +# +# Schema Config files for the above +# +XSDBIND_INCLUDE= +# man pages to be done +# -------------------- +MANSECTIONS = +MAN1 = +MAN3 = +MAN5 = +MAN7 = +MAN8 = + +# +# local man pages +# --------------- +MANl = + +# +# ASCII file to be converted into Framemaker-MIF +# -------------------- +ASCII_TO_MIF = + +# +# other files to be installed +#---------------------------- +INSTALL_FILES = + +# +# list of all possible C-sources (used to create automatic dependencies) +# ------------------------------ +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +# +#>>>>> END OF standard rules + +# +# INCLUDE STANDARDS +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @chmod 700 $(INTROOT)/bin/_send_backend_command + @echo " . . . installation done" + + +#___oOo___ diff --git a/Common/Servers/Skarab/src/Protocol.cpp b/Common/Servers/Skarab/src/Protocol.cpp new file mode 100644 index 000000000..78c24d200 --- /dev/null +++ b/Common/Servers/Skarab/src/Protocol.cpp @@ -0,0 +1,596 @@ + +#include "Protocol.h" +#include "Common.h" + +WORD CProtocol::setConfiguration_broadcast(char *sBuff,const TInputs& input,const double &att,const double& bw) +{ + strcpy(sBuff,PROT_SET_CONF_BROAD); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeInput(input)); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeAttenuationLevel(att)); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeBandWidth(bw)); + strcat(sBuff,PROT_TERMINATOR); + return strlen (sBuff); +} + +WORD CProtocol::setConfiguration(char *sBuff,long id,const TInputs& input,const double &att,const double& bw,long *boards) +{ + char tempBuff[128]; + strcpy(sBuff,PROT_SET_CONF); + strcat(sBuff,PROT_SEPARATOR); + if (boards==NULL) { + sprintf(tempBuff,"%ld",id+1); //the inner enumeration goes from 0 to SECTIONNUMBER-1, + // in the backend goes from 1 to BOARDNUMBER + } + else { + sprintf(tempBuff,"%ld",boards[id]+1); //the inner enumeration goes from 0 to SECTIONNUMBER-1, + } + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeInput(input)); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeAttenuationLevel(att)); + strcat(sBuff,PROT_SEPARATOR); + strcat(sBuff,(const char *)encodeBandWidth(bw)); + strcat(sBuff,PROT_TERMINATOR); + return strlen (sBuff); +} + +WORD CProtocol::askBackendConfiguration(char *sBuff) +{ + strcpy(sBuff,PROT_GET_CONF); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + +WORD CProtocol::checkBackendTime(char *sBuff) +{ + TIMEVALUE now,tm; + TIMEDIFFERENCE diff; + long long seconds; + char tempBuff[128]; + strcpy(sBuff,PROT_CHECK_TIME); + strcat(sBuff,PROT_SEPARATOR); + getReferenceTime(tm); + IRA::CIRATools::getTime(now); + diff.value(now.difference(tm.value())); + seconds=diff.day()*86400+diff.hour()*3600+diff.minute()*60+diff.second(); + sprintf(tempBuff,"%lld%c%ld",seconds,PROT_SEPARATOR_CH,(long)diff.microSecond()); + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + +WORD CProtocol::setBackendTime(char *sBuff) +{ + TIMEVALUE now,tm; + TIMEDIFFERENCE diff; + long micro; + long long seconds; + char tempBuff[128]; + strcpy(sBuff,PROT_SET_TIME); + strcat(sBuff,PROT_SEPARATOR); + getReferenceTime(tm); + IRA::CIRATools::getTime(now); + micro=now.microSecond(); + if (micro<300000) { + micro=(400000-micro); // take 1 more tens of second. + IRA::CIRATools::Wait(0,micro); + IRA::CIRATools::getTime(now); + } + else if (micro>700000) { + micro=1400000-micro; // take 1 more tens of second. + IRA::CIRATools::Wait(0,micro); + IRA::CIRATools::getTime(now); + } + diff.value(now.difference(tm.value())); + seconds=diff.day()*86400+diff.hour()*3600+diff.minute()*60+diff.second(); + sprintf(tempBuff,"%lld%c%ld",seconds,PROT_SEPARATOR_CH,(long)diff.microSecond()); + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + + WORD CProtocol::startAcquisition(char *sBuff,const double& sampleRate,const long& cal,const WORD& port,const IRA::CString& address) + { + double sR; + char tempBuff[200]; + strcpy(sBuff, PROT_START_ACQ); + strcat(sBuff,PROT_SEPARATOR); + sR=sampleRate*1000.0; //sample rate in KHz + sR=1/sR; // sample rate given in milliseconds (sample period) + sprintf(tempBuff,"%ld%c%ld%c%hd%c%s%c%hd",(long)round(sR),PROT_SEPARATOR_CH,cal,PROT_SEPARATOR_CH, + 0,PROT_SEPARATOR_CH,(const char*)address,PROT_SEPARATOR_CH,port); + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); + } + + WORD CProtocol::setIntegrationTime(char *sBuff,const long& integrationTime) + { + char tempBuff[200]; + strcpy(sBuff, PROT_SET_SAMPLE_RATE); + strcat(sBuff,PROT_SEPARATOR); + sprintf(tempBuff,"%ld%c",integrationTime,PROT_SEPARATOR_CH); + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); + } + +WORD CProtocol::AutoGainControl(char *sBuff,const WORD& channels,const WORD& level) +{ + char tempBuff[200]; + strcpy(sBuff,PROT_AUTO_GAIN); + strcat(sBuff,PROT_SEPARATOR); + sprintf(tempBuff,"%d%c%d%c",channels,PROT_SEPARATOR_CH,level,PROT_SEPARATOR_CH); + strcat(sBuff,tempBuff); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + +WORD CProtocol::getSample(char *sBuff) +{ + strcpy(sBuff,PROT_GET_SAMPLE); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + + WORD CProtocol::resumeAcquisition(char *sBuff) + { + strcpy(sBuff,PROT_RESUME_ACQ); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); + } + + WORD CProtocol::stopAcquisition(char *sBuff) +{ + strcpy(sBuff,PROT_STOP_ACQ); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + +WORD CProtocol::setZeroInput(char *sBuff,bool activate) +{ + strcpy(sBuff,PROT_SET_ZERO); + strcat(sBuff,PROT_SEPARATOR); + if (activate) strcat(sBuff,"1"); + else strcat(sBuff,"0"); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); +} + + WORD CProtocol::suspendAcquisition(char *sBuff) + { + strcpy(sBuff,PROT_SUSPEND_ACQ); + strcat(sBuff,PROT_TERMINATOR); + return strlen(sBuff); + } + +void CProtocol::swap(DWORD* word) + { + DWORD p; + p=((*word)<<16)|((*word)>>16); + *word=p; + } + +bool CProtocol::status(char *rBuff,double ×tamp, char *statusCode, bool &acquiring) +{ + +} + +bool CProtocol::setConfiguration(const char *rBuff) +{ + IRA::CString str(rBuff); + IRA::CString ret; + int start=0; + + // get !set-configuration string + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_COMMA,ret)) { + return false; + } + // get !set-configuration string + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_COMMA,ret)) { + return false; + } + +} + +bool CProtocol::decodeBackendConfiguration(const char *rBuff,const long& sectionNumber,const DWORD& boardsNumber,double *att,double *bw,TInputs *in,TIMEVALUE& tm,long& currentSR,long * boards) +{ + IRA::CString str(rBuff); + IRA::CString ret; + int start=0; + double boardBw[MAX_BOARDS_NUMBER],boardAtt[MAX_BOARDS_NUMBER]; + TInputs boardIn[MAX_BOARDS_NUMBER]; + // get fox cpu time (seconds)...not used yet + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + // get fox cpu time (microseconds)...not used yet + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + // get FPGA time ...just seconds are reported + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + if (!decodeFPGATime(ret,tm)) { + return false; + } + } + // get the sample rate in millisecs....... + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + currentSR=ret.ToLong(); + } + // get the cal diode cycle period (multiple of the sample rate). + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + } + // get the zero cycle period (multiple of the caldiode cycle) + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + } + for (DWORD i=0;i<boardsNumber;i++) { + // read the input source..... + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + if (!decodeInput(ret,boardIn[i])) { + return false; + } + } + // read the attenuation level..... + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + if (!decodeAttenuationLevel(ret,boardAtt[i])) { + return false; + } + } + // read the bandwidth + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_CH,ret)) { + return false; + } + else { + if (!decodeBandWidth(ret,boardBw[i])) { + return false; + } + } + } + // now I will build the output arrays + for (long j=0;j<sectionNumber;j++) { + if (boards==NULL) { + att[j]=boardAtt[j]; + in[j]=boardIn[j]; + bw[j]=boardBw[j]; + } + else { + att[j]=boardAtt[boards[j]]; + in[j]=boardIn[boards[j]]; + bw[j]=boardBw[boards[j]]; + } + } + return true; +} + +bool CProtocol::decodeBackendTime(const char *rBuff,bool& res) +{ + long hostMicro,foxMicro; + long long hostSec,fpgaSec,foxSec; + if (sscanf(rBuff,"%lld, %ld, %lld, %ld, %lld",&hostSec,&hostMicro,&foxSec,&foxMicro,&fpgaSec)!=5) { + return false; + } + else { + res=(fpgaSec==hostSec); + return true; + } +} + +bool CProtocol::checkBackendTime(const char * rBuff,const long threshold,bool& res) +{ + long hostMicro,foxMicro; + long long hostSec,fpgaSec,foxSec; + long long micro; + res=true; + //printf("%s\n",rBuff); + if (sscanf(rBuff,"%lld, %ld, %lld, %ld, %lld",&hostSec,&hostMicro,&foxSec,&foxMicro,&fpgaSec)!=5) { //both fgpa and fox timer are checkd + return false; //parsing error + } + else { + if ((hostMicro>threshold) && (hostMicro<(1000000-threshold))) { //if the time check request has been issued around the middle of a second... + if ((hostSec!=foxSec) && (hostSec!=fpgaSec)) { + res=false; + } + } + else { + if (hostSec>foxSec) { + micro=(hostSec-foxSec)*1000000; + micro+=(hostMicro-foxMicro); + } + else if (foxSec>hostSec) { + micro=(foxSec-hostSec)*1000000; + micro+=(foxMicro-hostMicro); + } + else { + micro=ABS(hostMicro,foxMicro); + } + if (micro>threshold) { + res=false; + } + } + } + return true; +} + +bool CProtocol::isAck(const char *rBuff) +{ + return (strcmp(rBuff,PROT_ACK)==0); +} + +bool CProtocol::isTpi(const WORD& flag) +{ + return (((flag & 0x30) >> 4)==0); +} + +bool CProtocol::isCal(const WORD& flag) +{ + return (((flag & 0x30) >> 4)==1); +} + +bool CProtocol::isNewStream(const WORD& previousStatus,const WORD& previousCounter,const WORD& currentCounter) +{ + if (previousStatus==0) { + return true; + } + else if (ABS(previousCounter,currentCounter)>1) { + if ((previousCounter==65535) && (currentCounter==0)) { + return false; + } + else return true; + } + else return false; +} + +bool CProtocol::decodeData(const char *rBuff,DWORD *data,const DWORD& boardsNumber,const long& sectionNumber,long *boards) +{ + IRA::CString str(rBuff); + IRA::CString ret; + int start=0; + DWORD boardOutput[MAX_BOARDS_NUMBER]; + + printf("outtpi = %s\n",rBuff); + + // get fox cpu time (seconds)...not used yet + if (!CIRATools::getNextToken(str,start,PROT_GET_TPI_STR,ret)) { + printf("uno\n"); + return false; + } + // get sample counter....it should be always zero + //if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_COMMA,ret)) { + // printf("due\n"); + // return false; + //} + // get sample flag.....not used for this purpose + //if (!CIRATools::getNextToken(str,start,PROT_OK,ret)) { + // printf("tre\n"); + // return false; + //} + //if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_COMMA,ret)) { + // return false; + //} + //for (DWORD j=0;j<boardsNumber;j++) { + for (DWORD j=0;j<2;j++) { + if (!CIRATools::getNextToken(str,start,PROT_SEPARATOR_COMMA,ret)) { + printf("quattro\n"); + return false; + } + boardOutput[j]=ret.ToLong(); + printf("tpi = %d\n",boardOutput[j]); + } + //for (long k=0;k<sectionNumber;k++) { + for (long k=0;k<2;k++) { + //if (boards==NULL) { + data[k]=boardOutput[k]; + //} + //else { + // data[k]=boardOutput[boards[k]]; + //} + } + return true; +} + +void CProtocol::decodeData(BYTE *buff,const double& sampleRate,const WORD& prevStatus,const WORD& prevCounter, + TIMEVALUE& tm,WORD& counter,WORD& flag,DWORD *data,const long& sectionNumber,long *boards) +{ + static DWORD previousClock=0; + static WORD sampleCounter=0; + DWORD clock; + DWORD *boardData; + //CProtocol::swap((DWORD *)buff); + counter=*((WORD*)(buff+4)); + flag=*((WORD*)(buff+6)); + clock=*((DWORD*)buff); + if (clock!=previousClock) { // stores the sample counter when the clock changes + if (isNewStream(prevStatus,prevCounter,counter) ) { + sampleCounter=1; // this is a workaround the samples belonging to the first second of data are 1 less than expected and the missing one is the first + } + else { + sampleCounter=0; + } + } + else { + sampleCounter++; + } + previousClock=clock; + decodeFPGATime(clock,sampleRate,sampleCounter,tm); + boardData=(DWORD *)(buff+8); + for(long k=0;k<sectionNumber;k++) { + if (boards==NULL) { + data[k]=boardData[k]; + } + else { + data[k]=boardData[boards[k]]; + } + } +} + +bool CProtocol::decodeAttenuationLevel(const IRA::CString& str,double& val) +{ + val=str.ToDouble(); + return true; +} + +IRA::CString CProtocol::encodeAttenuationLevel(const double& att) +{ + IRA::CString temp; + temp.Format("%d",(int)att); + return temp; +} + +bool CProtocol::decodeInput(const IRA::CString& str,TInputs& val) +{ + if (str=="NA") { + val=OHM50; + } + else if (str=="PRIM") { + val=PRIMARY; + } + else if (str=="BWG") { + val=BWG; + } + else if (str=="GREG") { + val=GREGORIAN; + } + else if (str=="50_OHM") { + val=OHM50; + } + else { + return false; + } + return true; +} + +IRA::CString CProtocol::encodeInput(const TInputs& in) +{ + if (in==PRIMARY) { + return IRA::CString("P"); + } + else if (in==BWG) { + return IRA::CString("B"); + } + else if (in==GREGORIAN) { + return IRA::CString("G"); + } + else { //OHM50 + return IRA::CString("Z"); + } +} + +bool CProtocol::decodeBandWidth(const IRA::CString& str,double& val) +{ + long bw; + if (str=="NA") { + val=0.0; + } + else { + bw=str.ToLong(); + val=(double)bw; + } + return true; +} + +IRA::CString CProtocol::encodeBandWidth(const double& bw) +{ + IRA::CString temp; + int num; + if (bw<=300.0) { + num=4; + } + else if (bw<=730.0) { + num=3; + } + else if (bw<=1250.0) { + num=2; + } + else { //2350.0 + num=1; + } + temp.Format("%d",num); + return temp; +} + +bool CProtocol::decodeFPGATime(const DWORD& clock,const double& sampleRate,const WORD& counter,TIMEVALUE& tm) +{ + DWORD clockT; + double period; + long second,minute,hour,day,micro; + ACS::TimeInterval temp; + TIMEDIFFERENCE bkndTime; + bkndTime.reset(); + bkndTime.normalize(true); + clockT=clock; + day=clockT/86400; + clockT%=86400; + hour=clockT/3600; + clockT%=3600; + minute=clockT/60; + second=clockT % 60; + period=1.0/sampleRate; // sample rate is MHz so period is in microseconds + //micro=(long)(period*((double)counter-0.5)); // take the mean time + micro=(long)(period*((double)counter)); // I'd like to assign the time to the start of the sample! + bkndTime.day(day); + bkndTime.hour(hour); + bkndTime.minute(minute); + bkndTime.second(second); + bkndTime.microSecond(micro); + temp=bkndTime.value().value; + temp-=(long long)(period*10); // we have to shift back the time of one period...because the sample is referred to the period before. + bkndTime.value(temp); + getReferenceTime(tm); + tm+=bkndTime.value(); + return true; +} + +bool CProtocol::decodeFPGATime(const IRA::CString& str,TIMEVALUE& tm) +{ + long long seconds; + long second,minute,hour,day; + TIMEDIFFERENCE bkndTime; + bkndTime.reset(); + bkndTime.normalize(true); + seconds=str.ToLongLong(); + day=seconds/86400; + seconds%=86400; + hour=seconds/3600; + seconds%=3600; + minute=seconds/60; + second=seconds % 60; + bkndTime.day(day); + bkndTime.hour(hour); + bkndTime.minute(minute); + bkndTime.second(second); + getReferenceTime(tm); + tm+=bkndTime.value(); + return true; +} + +void CProtocol::getReferenceTime(TIMEVALUE& tm) +{ + tm.reset(); + tm.normalize(true); + tm.year(1970); + tm.month(1); + tm.day(1); +} diff --git a/Common/Servers/Skarab/src/SenderThread.cpp b/Common/Servers/Skarab/src/SenderThread.cpp new file mode 100644 index 000000000..e7ab900c6 --- /dev/null +++ b/Common/Servers/Skarab/src/SenderThread.cpp @@ -0,0 +1,358 @@ +// $Id: SenderThread.cpp,v 1.2 2011-05-12 14:14:31 c.migoni Exp $ + +#include "SkarabImpl.h" +#include "CommandLine.h" +#include "SenderThread.h" +#include <LogFilter.h> + +_IRA_LOGFILTER_IMPORT; + +CSenderThread::CSenderThread(const ACE_CString& name,TSenderParameter *par, + const ACS::TimeInterval& responseTime,const ACS::TimeInterval& sleepTime) : ACS::Thread(name,responseTime,sleepTime) +{ + AUTO_TRACE("CSenderThread::CSenderThread()"); + m_sender=par->sender; + m_commandLine=par->command; + m_configuration=par->configuration; + //m_dataLine=par->dataLine; + m_isConnected=false; + m_inputBuffer=new BYTE[DATABUFFERSIZE]; + m_tempBuffer=new BYTE[DATABUFFERSIZE*2]; + m_tempBufferPointer=0; + m_zeroBuffer=new DWORD[MAX_SECTION_NUMBER]; + m_KCountsRatio.length(MAX_SECTION_NUMBER); + for (int i=0;i<MAX_SECTION_NUMBER;i++) { + m_zeroBuffer[i]=0; + m_KCountsRatio[i]=1.0; + } + clearIntegration(m_tpi); + clearIntegration(m_cal); + m_lastReceiveEpoch.reset(); + m_stop=m_go=m_sending=false; + //m_immediateStart=false; +} + +CSenderThread::~CSenderThread() +{ + AUTO_TRACE("CSenderThread::~CSenderThread()"); + if (m_inputBuffer) delete[] m_inputBuffer; + if (m_tempBuffer) delete[] m_tempBuffer; + if (m_zeroBuffer) delete[] m_zeroBuffer; +} + +void CSenderThread::onStart() +{ + AUTO_TRACE("CSenderThread::onStart()"); +} + +void CSenderThread::onStop() +{ + AUTO_TRACE("CSenderThread::onStop()"); +} + +void CSenderThread::closeSocket() +{ + IRA::CError err; + m_isConnected=false; + m_stop=true; + m_backendSock.Close(err); +} + +void CSenderThread::runLoop() +{ + IRA::CError err; + int res; + IRA::CSecAreaResourceWrapper<CCommandLine> cmd=m_commandLine->Get(); + if (cmd->m_reiniting) { + cmd->m_reiniting=false; + closeSocket(); + cmd->clearStatusField(CCommandLine::DATALINERROR); + cmd->clearStatusField(CCommandLine::SAMPLING); + return; + } + cmd.Release(); + /* DO NOTHING + //the thread starts to listen to the socket for incoming connections to + if (!m_isConnected) { + res=m_dataLine->Accept(err,m_backendSock); + if (res==IRA::CSocket::WOULDBLOCK) { + // do nothing...exit the run loop until the next iteration + } + else if (res==IRA::CSocket::FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,err); + dummy.setCode(err.getErrorCode()); + dummy.setDescription((const char*)err.getDescription()); + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->setStatusField(CCommandLine::DATALINERROR); + _IRA_LOGFILTER_LOG_EXCEPTION(dummy,LM_WARNING); //log as warn because this is the thread and no client is aware of that + } + else { + m_isConnected=true; // the conneciton has been enstablished + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->clearStatusField(CCommandLine::DATALINERROR); + ACS_LOG(LM_FULL_INFO,"CCSenderThread::runLoop()",(LM_INFO,"BACKEND_CONNECTED_TO_DATA_LINE")); + initTransfer(); + } + } + else { //already connected...then try a new data reception + res=m_backendSock.Receive(err,m_inputBuffer,DATABUFFERSIZE); + if (res==0) { // backend disconnected...propably as a consequence of a terminate data transmission command. + // gets the access to the + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->clearStatusField(CCommandLine::DATALINERROR); + line->clearStatusField(CCommandLine::SAMPLING); + closeSocket(); + ACS_LOG(LM_FULL_INFO,"CCSenderThread::runLoop()",(LM_INFO,"DISCONNECTED")); + } + else if (res==IRA::CSocket::FAIL) { //error during receive !!!! + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,err); + dummy.setCode(err.getErrorCode()); + dummy.setDescription((const char*)err.getDescription()); + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->setStatusField(CCommandLine::DATALINERROR); + _IRA_LOGFILTER_LOG_EXCEPTION(dummy,LM_WARNING); + } + else if (res==IRA::CSocket::WOULDBLOCK) { //nothing to read + TIMEVALUE now; + IRA::CIRATools::getTime(now); + if (IRA::CIRATools::timeDifference(now,m_lastReceiveEpoch)>2000000) { // if the last data reception is more than two seconds old + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->clearStatusField(CCommandLine::SAMPLING); + } + } + else { // receive was ok and res is the number of bytes that are read + + long *boards; + long sectionNumber; + IRA::CIRATools::getTime(m_lastReceiveEpoch); + IRA::CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + boards=line->boardsMapping(); + sectionNumber=line->sectionNumber(); + line->setStatusField(CCommandLine::SAMPLING); + line->clearStatusField(CCommandLine::DATALINERROR); + line->getKCRatio(m_KCountsRatio); // get the K/C ratio + //processData((DWORD)res,sectionNumber,boards); + processData(1,sectionNumber,boards); + //} + //} + if (m_stop) { // we were asked to stop the data transfer..... + m_go=false; + m_stop=false; + try { + #ifndef BKD_DEBUG + if (m_sending) { + m_sender->getSender()->stopSend(FLOW_NUMBER); + } + #endif + m_sending=false; + } + catch (AVStopSendErrorExImpl& ex) { + _ADD_BACKTRACE(BackendsErrors::TXErrorExImpl,impl,ex,"CSenderThread::runLoop()"); + impl.setDetails("stop message could not be sent"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CSenderThread::runLoop()"); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + } + */ +} + +void CSenderThread::saveDataHeader(Backends::TMainHeader* mH,Backends::TSectionHeader* cH) +{ + m_dataHeader.channels=mH->sections; + m_dataHeader.integration=mH->integration; + for (int j=0;j<m_dataHeader.channels;j++) { + m_dataHeader.id[j]=cH[j].id; + } + m_dataHeader.sampleRate=cH[0].sampleRate; // should be the same for all the channels..... + m_dataHeader.sampleSize=mH->sampleSize; + //m_dataHeader.normalization=round(m_dataHeader.sampleRate*double(m_dataHeader.integration*1000)); // integration from milli to microseconds + m_dataHeader.normalization=(1.0/m_dataHeader.sampleRate)/1000.0; +} + +void CSenderThread::saveStartTime(const ACS::Time& time) +{ + /*if (time!=0) {*/ + m_startTime.value(time); + /*m_immediateStart=false; + } + else { + m_immediateStart=true; + }*/ +} + +/*void CSenderThread::setKelvinCountsRatio(const ACS::doubleSeq& ratio) +{ + for (unsigned i=0;i<ratio.length();i++) { + m_KCountsRatio[i]=ratio[i]; + } +}*/ + +void CSenderThread::saveZero(DWORD *zeros) +{ + for (int i=0;i<MAX_SECTION_NUMBER;i++) { + m_zeroBuffer[i]=zeros[i]; + } +} + +void CSenderThread::processData(DWORD dataSize,const long& sectionNumber,long *boards) +{ + /* + BYTE *currentPointer; + //DWORD *data; + DWORD data[MAX_SECTION_NUMBER]; + WORD counter; + WORD status; + TIMEVALUE sampleTime; + DWORD bufferCounter=0; + memcpy(m_tempBuffer+m_tempBufferPointer,m_inputBuffer,dataSize); + m_tempBufferPointer+=dataSize; + currentPointer=m_tempBuffer; + while (bufferCounter+m_configuration->getDataBufferSize()<=m_tempBufferPointer) { + printf("after while\n"); + currentPointer=m_tempBuffer+bufferCounter; + CProtocol::decodeData(currentPointer,m_dataHeader.sampleRate,m_previousStatus,m_previousCounter,sampleTime,counter,status,data,sectionNumber,boards); + bufferCounter+=m_configuration->getDataBufferSize(); + if (!CProtocol::isNewStream(m_previousStatus,m_previousCounter,counter)) { //the first sample is discarded + printf("before if m_startTime\n"); + if (m_startTime<=sampleTime.value()) || (m_immediateStart)) { //if the start time is elapsed than start processing + printf("after if m_startTime\n"); + for (int i=0;i<MAX_SECTION_NUMBER;i++) { // subtract the zero level + if (data[i]>m_zeroBuffer[i]) { + data[i]-=m_zeroBuffer[i]; + } + else { + data[i]=0; + } + } + if (CProtocol::isCal(m_previousStatus)) { // the sample is a calibration diode on + computeSample(m_cal,sampleTime,data,true); + } + if (CProtocol::isTpi(m_previousStatus)) { // the sample is a normal tpi measure + computeSample(m_tpi,sampleTime,data,false); + } + } + } + else { + clearIntegration(m_tpi); + clearIntegration(m_cal); + ACS_LOG(LM_FULL_INFO,"CCSenderThread::processData()",(LM_INFO,"STREAM_STARTED")); + } + m_previousStatus=status; // the current status refers to the next sample + m_previousCounter=counter; + } + if (bufferCounter>0) { + m_tempBufferPointer-=bufferCounter; + memcpy(m_tempBuffer,m_tempBuffer+bufferCounter,m_tempBufferPointer); + } + */ +} + +void CSenderThread::initTransfer() +{ + clearIntegration(m_tpi); + clearIntegration(m_cal); + m_previousStatus=0; + m_previousCounter=0; +} + +void CSenderThread::clearIntegration(TSampleRecord& samp) +{ + samp.started=false; + for (int i=0;i<MAX_SECTION_NUMBER;i++) samp.tpi[i]=0; + samp.start.reset(); + samp.counts=0; + samp.accumulations=0; +} + +void CSenderThread::computeSample(TSampleRecord& samp,TIMEVALUE& sampleTime,DWORD *data,bool isCal) +{ + if (!samp.started) { // if the integration is not started yet + double accTemp; + IRA::CIRATools::timeCopy(samp.start,sampleTime); //save the start time + samp.started=true; // mark the integration started; + accTemp=(double)m_dataHeader.integration*1000.0*m_dataHeader.sampleRate; + samp.accumulations=(DWORD)round(accTemp); //computes the number of integrations + if (samp.accumulations<1) samp.accumulations=1; //at least one accumulation is needed + } + for (int i=0;i<MAX_SECTION_NUMBER;i++) { // computes the new data.... + samp.tpi[i]+=(SAMPLETYPE)(double(data[i])/(m_dataHeader.normalization*(double)samp.accumulations)); + } + samp.counts++; //increase the number of accumulations + if (samp.counts==samp.accumulations) { // if the required number of accumulations is reached..... + // computes the mean time + ACS::Time diff=samp.start.value().value+(sampleTime.value().value-samp.start.value().value)/2; + samp.start.value(diff); + // now send the data + SAMPLETYPE sample[MAX_SECTION_NUMBER]; + double tsys[MAX_SECTION_NUMBER],allTsys[MAX_SECTION_NUMBER]; + Backends::TDumpHeader hd; + //TDumpRecord *buffer=(TDumpRecord *)new char[sizeof(TDumprecord)]; + //char buffer[sizeof(SAMPLETYPE)*MAX_INPUT_NUMBER+sizeof(Backends::TDumpHeader)]; + hd.calOn=isCal; + hd.time=samp.start.value().value; + hd.dumpSize=m_dataHeader.sampleSize*m_dataHeader.channels; // add data size. + hd.dumpSize+=sizeof(double)*m_dataHeader.channels; // add data size required for tsys trasmission + ACE_Message_Block buffer(hd.dumpSize+sizeof(Backends::TDumpHeader)); + printf("after ACE\n"); + //memcpy(buffer,&hd,sizeof(Backends::TDumpHeader)); + for (long jj=0;jj<MAX_SECTION_NUMBER;jj++) { //computes the system temperatures for all inputs + allTsys[jj]=(double)samp.tpi[jj]*m_KCountsRatio[jj]; + } + for (long i=0;i<m_dataHeader.channels;i++) { + //sample[i]=samp.tpi[m_dataHeader.id[i]]; // stores the tpi for the enabled sections + sample[i]=0.0;//samp.tpi[m_dataHeader.id[i]]; // stores the tpi for the enabled sections + tsys[i]=allTsys[m_dataHeader.id[i]]; // stores the tsys for th enable inputs + //printf("section %ld, %lf, %lf, %ld\n",i,sample[i],tsys[i],m_dataHeader.id[i]); + } + //if (buffer.copy((const char *)&hd,sizeof(Backends::TDumpHeader))==0) printf("COPIA FATTA CON SUCCESSO!!\n"); + //if (buffer.copy((const char *)sample,hd.dumpSize)==0) printf("COPIA FATTA CON SUCCESSO!!\n"); + buffer.copy((const char *)&hd,sizeof(Backends::TDumpHeader)); + buffer.copy((const char *)tsys,sizeof(double)*m_dataHeader.channels); + buffer.copy((const char *)sample,m_dataHeader.sampleSize*m_dataHeader.channels); + //memcpy(buffer+sizeof(Backends::TDumpHeader),sample,hd.dumpSize); + #ifndef BKD_DEBUG + try { + // m_sender->getSender()->sendData(FLOW_NUMBER,(const char *)&buffer, + // sizeof(Backends::TDumpHeader)+buffer.hd.dumpSize); + //m_sender->getSender()->sendData(FLOW_NUMBER,(const char *)&hd,sizeof(Backends::TDumpHeader)); + //m_sender->getSender()->sendData(FLOW_NUMBER,(const char *)sample,hd.dumpSize); + //if (!m_stop) { + if (m_go) { + printf("m_go\n"); + m_sender->getSender()->sendData(FLOW_NUMBER,&buffer); + m_sending=true; + } + else { + } + //m_sender->getSender()->sendData(FLOW_NUMBER,(const char *)sample,hd.dumpSize); + } + catch (AVSendFrameErrorExImpl& ex) { + _ADD_BACKTRACE(BackendsErrors::TXErrorExImpl,impl,ex,"CSenderThread::computeSample()"); + impl.setDetails("raw data could not be sent"); + //impl.log(); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CSenderThread::computeSample()"); + //throw impl.getComponentErrorsEx(); + _IRA_LOGFILTER_LOG_EXCEPTION(impl,LM_ERROR); + } + #else + if (m_go) { + printf("Time: %d-%d, %02d:%02d:%02d.%d Size: %d Cal: %d\n ",samp.start.year(),samp.start.dayOfYear(),samp.start.hour(), + samp.start.minute(),samp.start.second(),samp.start.microSecond(),hd.dumpSize,hd.calOn); + for (int y=0;y<m_dataHeader.channels;y++) { + printf("%ld %f - ",m_dataHeader.id[y],sample[y]); + } + printf("\n"); + m_sending=true; + } + #endif + buffer.reset(); + //finally clear the integration...in order to stat a new one the next step + clearIntegration(samp); + } +} diff --git a/Common/Servers/Skarab/src/SkarabImpl.cpp b/Common/Servers/Skarab/src/SkarabImpl.cpp new file mode 100644 index 000000000..95ca7ec9c --- /dev/null +++ b/Common/Servers/Skarab/src/SkarabImpl.cpp @@ -0,0 +1,846 @@ +// $Id: SkarabImpl.cpp,v 1.1 2011-03-14 14:15:07 c.migoni Exp $ + +#include "SkarabImpl.h" +#include <Definitions.h> +#include <ComponentErrors.h> +#include <LogFilter.h> +#include "Common.h" +#include "DevIOAttenuation.h" +#include "DevIOBandWidth.h" +#include "DevIOTime.h" +#include "DevIOFrequency.h" +#include "DevIOPolarization.h" +#include "DevIOInputsNumber.h" +#include "DevIOSampleRate.h" +#include "DevIOBins.h" +#include "DevIOIntegration.h" +#include "DevIOStatus.h" +#include "DevIOBusy.h" +#include "DevIOFeed.h" +#include "DevIOTsys.h" +#include "DevIOInputSection.h" +#include "DevIOSectionsNumber.h" +#include "SenderThread.h" + +static char *rcsId="@(#) $Id: SkarabImpl.cpp,v 1.1 2011-03-14 14:15:07 c.migoni Exp $"; +static void *use_rcsId = ((void)&use_rcsId,(void *) &rcsId); + +using namespace SimpleParser; + +_IRA_LOGFILTER_DECLARE; + +SkarabImpl::SkarabImpl(const ACE_CString &CompName,maci::ContainerServices *containerServices) : + BulkDataSenderDefaultImpl(CompName,containerServices), + m_ptime(this), + m_pbackendName(this), + m_pbandWidth(this), + m_pfrequency(this), + m_psampleRate(this), + m_pattenuation(this), + m_ppolarization(this), + m_pbins(this), + m_pinputsNumber(this), + m_pintegration(this), + m_pstatus(this), + m_pbusy(this), + m_pfeed(this), + m_ptsys(this), + m_psectionsNumber(this), + m_pinputSection(this) +{ + AUTO_TRACE("SkarabImpl::SkarabImpl"); + m_initialized=false; + m_senderThread=NULL; + m_controlThread=NULL; +} + +SkarabImpl::~SkarabImpl() +{ + AUTO_TRACE("SkarabImpl::~SkarabImpl()"); + // if the initialization failed...clear everything as well. + // otherwise it is called by the cleanUp procedure. + if (!m_initialized) deleteAll(); +} + +void SkarabImpl::initialize() throw (ACSErr::ACSbaseExImpl) +{ + CError Err; + CSenderThread::TSenderParameter threadPar; + CCommandLine* line; + //IRA::CString hostName,hostAddress; + AUTO_TRACE("SkarabImpl::initialize()"); + ACS_LOG(LM_FULL_INFO,"SkarabImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZING")); + ACS_LOG(LM_FULL_INFO,"SkarabImpl::initialize()",(LM_INFO,"READING_CONFIGURATION")); + // could throw an ComponentErrors::CDBAccessExImpl exception + m_configuration.init(getContainerServices()); + ACS_LOG(LM_FULL_INFO,"SkarabImpl::initialize()",(LM_INFO,"CONFIGURATION_OK")); + ACS_LOG(LM_FULL_INFO,"SkarabImpl::initialize()",(LM_INFO,"INITIALIIZING_COMMUNICATION_LINES")); + _IRA_LOGFILTER_ACTIVATE(m_configuration.getRepetitionCacheTime(),m_configuration.getRepetitionExpireTime()); + try { + line=new CCommandLine(getContainerServices()); + m_commandLine=new CSecureArea<CCommandLine>(line); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"SkarabImpl::initialize()"); + throw dummy; + } + try { + m_ptime=new ROuLongLong(getContainerServices()->getName()+":time",getComponent(), + new DevIOTime(m_commandLine),true); + m_pbackendName=new ROstring(getContainerServices()->getName()+":backendName",getComponent()); + m_pbandWidth=new ROdoubleSeq(getContainerServices()->getName()+":bandWidth",getComponent(), + new DevIOBandWidth(m_commandLine),true); + m_pfrequency=new ROdoubleSeq(getContainerServices()->getName()+":frequency",getComponent(), + new DevIOFrequency(m_commandLine),true); + m_psampleRate=new ROdoubleSeq(getContainerServices()->getName()+":sampleRate",getComponent(), + new DevIOSampleRate(m_commandLine),true); + m_pattenuation=new ROdoubleSeq(getContainerServices()->getName()+":attenuation",getComponent(), + new DevIOAttenuation(m_commandLine),true); + m_ppolarization=new ROlongSeq(getContainerServices()->getName()+":polarization",getComponent(), + new DevIOPolarization(m_commandLine),true); + m_pinputsNumber=new ROlong(getContainerServices()->getName()+":inputsNumber",getComponent(), + new DevIOInputsNumber(m_commandLine),true); + m_pbins=new ROlongSeq(getContainerServices()->getName()+":bins",getComponent(), + new DevIOBins(m_commandLine),true); + m_pintegration=new ROlong(getContainerServices()->getName()+":integration",getComponent(), + new DevIOIntegration(m_commandLine),false); + m_pstatus=new ROpattern(getContainerServices()->getName()+":status",getComponent(), + new DevIOStatus(m_commandLine),true); + m_pbusy=new ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> + (getContainerServices()->getName()+":busy",getComponent(), new DevIOBusy(m_commandLine),true); + m_pfeed=new ROlongSeq(getContainerServices()->getName()+":feed",getComponent(),new DevIOFeed(m_commandLine),true); + m_ptsys=new ROdoubleSeq(getContainerServices()->getName()+":systemTemperature",getComponent(),new DevIOTsys(m_commandLine),true); + m_psectionsNumber=new ROlong(getContainerServices()->getName()+":sectionsNumber",getComponent(), + new DevIOSectionsNumber(m_commandLine),true); + m_pinputSection=new ROlongSeq(getContainerServices()->getName()+":inputSection",getComponent(),new DevIOInputSection(m_commandLine),true); + m_parser=new CParser<CCommandLine>(line,10); + } + catch (std::bad_alloc& ex) { + _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"SkarabImpl::initialize()"); + throw dummy; + } + // command parser configuration + m_parser->add("integration",new function1<CCommandLine,non_constant,void_type,I<long_type> >(line,&CCommandLine::setIntegration),1); + m_parser->add("calSwitch",new function1<CCommandLine,non_constant,void_type,I<long_type> >(line,&CCommandLine::activateCalSwitching),1 ); + m_parser->add("setSection", new function7<CCommandLine,non_constant,void_type,I<long_type>,I<double_type>,I<double_type>,I<long_type>,I<enum_type<PolarizationToString> >,I<double_type>,I<long_type> > + (line,&CCommandLine::setConfiguration),7 ); + m_parser->add("setAttenuation", new function2<CCommandLine,non_constant,void_type,I<long_type>,I<double_type> >(line,&CCommandLine::setAttenuation),2 ); + m_parser->add("enable",new function1<CCommandLine,non_constant,void_type,I<longSeq_type> >(line,&CCommandLine::setEnabled),1 ); + m_parser->add("getIntegration",new function1<CCommandLine,constant,void_type,O<long_type> >(line,&CCommandLine::getIntegration),0 ); + m_parser->add("getFrequency",new function1<CCommandLine,constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getFrequency),0 ); + m_parser->add("getSampleRate",new function1<CCommandLine,constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getSampleRate),0 ); + m_parser->add("getBins",new function1<CCommandLine,constant,void_type,O<longSeq_type> >(line,&CCommandLine::getBins),0 ); + m_parser->add("getPolarization",new function1<CCommandLine,constant,void_type,O<longSeq_type> >(line,&CCommandLine::getPolarization),0 ); + m_parser->add("getBandWidth",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getBandWidth),0 ); + m_parser->add("getAttenuation",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getAttenuation),0 ); + m_parser->add("getTpi",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getTpi),0 ); + m_parser->add("getZero",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getZero),0 ); + m_parser->add("getTime",new function1<CCommandLine,non_constant,void_type,O<time_type> >(line,&CCommandLine::getTime),0 ); + m_parser->add("initialize",new function1<CCommandLine,non_constant,void_type,I<string_type> >(line,&CCommandLine::setup),1 ); + m_parser->add("getRms",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getRms),0 ); + + threadPar.sender=this; + threadPar.command=m_commandLine; + threadPar.configuration=&m_configuration; + //threadPar.dataLine=&m_dataLine; + try { + CSenderThread::TSenderParameter *temp=&threadPar; + m_senderThread=getContainerServices()->getThreadManager()->create<CSenderThread,CSenderThread::TSenderParameter*> ( + "DATAPUSHER",temp,m_configuration.getSenderResponseTime()*10,m_configuration.getSenderSleepTime()*10); + m_controlThread=getContainerServices()->getThreadManager()->create<CControlThread,CSecureArea<CCommandLine> * > ( + "SUPERVISOR",m_commandLine,m_configuration.getControlResponseTime()*10,m_configuration.getControlSleepTime()*10); + } + catch (acsthreadErrType::acsthreadErrTypeExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,_dummy,ex,"SkarabImpl::initialize()"); + throw _dummy; + } + catch (...) { + _THROW_EXCPT(ComponentErrors::UnexpectedExImpl,"SkarabImpl::initialize()"); + } + m_initialized=true; + ACS_LOG(LM_FULL_INFO,"SkarabImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED")); +} + +void SkarabImpl::execute() throw (ACSErr::ACSbaseExImpl) +{ + AUTO_TRACE("SkarabImpl::execute()"); + ACS::Time time; + IRA::CError error; + ACS_LOG(LM_FULL_INFO,"SkarabImpl::execute()",(LM_INFO,"BACKEND_INITIAL_CONFIGURATION")); + try { + //sets the property defaults....some of them cannot be changed any more (hardware dependent) + m_pbackendName->getDevIO()->write(getComponent()->getName(),time); + } + catch (ACSErr::ACSbaseExImpl& ex) { + _ADD_BACKTRACE(ComponentErrors::InitializationProblemExImpl,impl,ex,"SkarabImpl::execute()"); + throw impl; + } + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + ACS_LOG(LM_FULL_INFO,"SkarabImpl::execute()",(LM_INFO,"SOCKET_CONNECTING")); + try { + ACS_LOG(LM_FULL_INFO,"SkarabImpl::execute()",(LM_INFO,"HARDWARE_INITIALIZATION")); + line->Init(&m_configuration); // this could throw an ACS exception..... + //line->setTime(); // this could throw ACS exceptions.... + } + catch (ACSErr::ACSbaseExImpl& ex) { + deleteAll(); + throw ex; + } + //resume the threads + //m_senderThread->resume(); + //m_controlThread->resume(); + try { + startPropertiesMonitoring(); + } + catch (acsthreadErrType::CanNotStartThreadExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,__dummy,E,"SkarabImpl::execute"); + deleteAll(); + throw __dummy; + } + catch (ACSErrTypeCommon::NullPointerExImpl& E) { + _ADD_BACKTRACE(ComponentErrors::ThreadErrorExImpl,__dummy,E,"SkarabImpl::execute"); + deleteAll(); + throw __dummy; + } + ACS_LOG(LM_FULL_INFO,"SkarabImpl::execute()",(LM_INFO,"COMPSTATE_OPERATIONAL")); +} + +void SkarabImpl::deleteAll() +{ + IRA::CError err; + if (m_initialized) { + if (m_senderThread!=NULL) { + m_senderThread->suspend(); + } + if (m_controlThread!=NULL) { + m_controlThread->suspend(); + } + if (m_commandLine) { + delete m_commandLine; + m_commandLine=NULL; + } + if (m_senderThread!=NULL) { + getContainerServices()->getThreadManager()->destroy(m_senderThread); + m_senderThread=NULL; + } + if (m_controlThread!=NULL) { + getContainerServices()->getThreadManager()->destroy(m_controlThread); + m_senderThread=NULL; + } + if (m_parser) { + delete m_parser; + m_parser=NULL; + } + // need to be closed before the thread that makes use of it + // m_dataLine.Close(err); + // ACS_LOG(LM_FULL_INFO,"SkarabImpl::deleteAll()",(LM_INFO,"DATA_LINE_CLOSED")); + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; + ACS_LOG(LM_FULL_INFO,"SkarabImpl::deleteAll()",(LM_INFO,"LOGS_FLUSHED")); + m_initialized=false; + } +} + +void SkarabImpl::cleanUp() +{ + AUTO_TRACE("SkarabImpl::cleanUp()"); + stopPropertiesMonitoring(); + deleteAll(); + CharacteristicComponentImpl::cleanUp(); +} + +void SkarabImpl::aboutToAbort() +{ + AUTO_TRACE("SkarabImpl::aboutToAbort()"); + deleteAll(); +} + +void SkarabImpl::sendHeader() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx) +{ + AUTO_TRACE("SkarabImpl::sendHeader()"); + Backends::TMainHeader header; + Backends::TSectionHeader chHeader[MAX_SECTION_NUMBER]; + //DWORD tpi[MAX_SECTION_NUMBER]; + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->fillMainHeader(header); + line->fillChannelHeader(chHeader,MAX_SECTION_NUMBER); + /*try { + line->setTime(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendHeader()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + */ + + char buffer[sizeof(Backends::TMainHeader)+header.sections*sizeof(Backends::TSectionHeader)]; + + memcpy(buffer,(void *)&header,sizeof(Backends::TMainHeader)); + memcpy(buffer+sizeof(Backends::TMainHeader),(void *)chHeader,header.sections*sizeof(Backends::TSectionHeader)); + + #ifndef BKD_DEBUG + try { + getSender()->startSend(FLOW_NUMBER,(const char*)buffer, + sizeof(Backends::TMainHeader)+header.sections*sizeof(Backends::TSectionHeader)); + } + catch (AVStartSendErrorExImpl& ex) { + _ADD_BACKTRACE(BackendsErrors::TXErrorExImpl,impl,ex,"SkarabImpl::sendHeader()"); + impl.setDetails("main header could not be sent"); + impl.log(LM_DEBUG); + throw impl.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SkarabImpl::sendHeader()"); + impl.log(LM_DEBUG); + throw impl.getComponentErrorsEx(); + } + #else + /*printf("Sects: %d beams: %d integration: %d sampleSize: %d\n",header.sections,header.beams, + header.integration,header.sampleSize); + for(int h=0;h<header.sections;h++) { + printf("id: %d bins: %d pol: %d bw: %lf freq: %lf att L: %lf att R: %lf sr: %lf feed: %d\n", + chHeader[h].id, + chHeader[h].bins, + chHeader[h].polarization, + chHeader[h].bandWidth, + chHeader[h].frequency, + chHeader[h].attenuation[0], + chHeader[h].attenuation[1], + chHeader[h].sampleRate, + chHeader[h].feed); + }*/ + #endif + ACS_LOG(LM_FULL_INFO,"SkarabImpl::sendHeader()",(LM_INFO,"HEADERS_SENT")); + // inform the sender thread about the configuration...... + m_senderThread->saveDataHeader(&header,chHeader); + // measure the zero tpi + #ifndef BKD_DEBUG + /*try { + //line->getZeroTPI(tpi); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendHeader()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + }*/ + #else + //for(int i=0;i<MAX_INPUT_NUMBER;tpi[i]=0,i++); + #endif + // now comunicate the reading to the sender thread..... + //m_senderThread->saveZero(tpi); + // start the job for the backend..... + try { + line->startDataAcquisition(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendHeader()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::terminate() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx) +{ + AUTO_TRACE("SkarabImpl::terminate()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->stopDataAcquisition(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::terminate()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::sendData(ACS::Time startTime) throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx) +{ + + AUTO_TRACE("SkarabImpl::sendData()"); + + TIMEVALUE now; + ACS::Time expectedStartTime; + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + expectedStartTime=line->resumeDataAcquisition(startTime); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendData()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + // if the resume succeeds....than set the start time accordingly. + //I explicitly release the mutex before accessing the sender thread because it also make use of the command line...just to make sure to avoid deadlock + line.Release(); + m_senderThread->saveStartTime(expectedStartTime); + //m_senderThread->resumeTransfer(); +} + +void SkarabImpl::sendStop() throw (CORBA::SystemException, BackendsErrors::BackendsErrorsEx, + ComponentErrors::ComponentErrorsEx) +{ + + AUTO_TRACE("SkarabImpl::sendStop()"); + + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->suspendDataAcquisition(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendStop()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + //I explicity release the mutex before accessing the sender thread because it also make use of the command line...just to make sure to avoid deadlock + //line.Release(); + //m_senderThread->suspendTransfer(); + + try { + getSender()->stopSend(FLOW_NUMBER); + } + catch (AVStopSendErrorExImpl& ex) { + _ADD_BACKTRACE(BackendsErrors::TXErrorExImpl,impl,ex,"SkarabImpl::sendStop()"); + impl.setDetails("stop message could not be sent"); + throw impl.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"SkarabImpl::sendStop()"); + throw impl.getComponentErrorsEx(); + } + + try { + line->sendTargetFileName(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::sendStop()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::setSection(CORBA::Long input,CORBA::Double freq,CORBA::Double bw,CORBA::Long feed,CORBA::Long pol,CORBA::Double sr,CORBA::Long bins) throw ( + CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setSection()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setConfiguration(input,freq,bw,feed,pol,sr,bins); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::setSection()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::setTargetFileName (const char * fileName) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx, + BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setTargetFileName()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + + line->setTargetFileName(fileName); +} + +ACS::doubleSeq *SkarabImpl::getRms() throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::getRms()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + ACS::doubleSeq_var rms=new ACS::doubleSeq; + try { + line->getRms(rms); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::getRms()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + return rms._retn(); +} + +ACS::doubleSeq *SkarabImpl::getTpi() throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::getTpi()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + ACS::doubleSeq_var tpi=new ACS::doubleSeq; + try { + line->getSample(tpi,false); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::getTpi()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + return tpi._retn(); +} + +ACS::doubleSeq * SkarabImpl::getZero () throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::getZero()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + ACS::doubleSeq_var tpi=new ACS::doubleSeq; + //TODO: how many sections???? + //tpi->length(2); + try { + line->getSample(tpi,true); + //tpi[0]=0.0; + //tpi[1]=0.0; + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::getZero()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } + return tpi._retn(); +} + +void SkarabImpl::setKelvinCountsRatio(const ACS::doubleSeq& ratio, const ACS::doubleSeq& tsys) throw (CORBA::SystemException) +{ + AUTO_TRACE("SkarabImpl::setKelvinCountsRatio()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + line->saveTsys(tsys,ratio); + //if (m_senderThread) { + //m_senderThread->setKelvinCountsRatio(ratio); + //ACS_LOG(LM_FULL_INFO,"SkarabImpl::setKelvinCountsRatio()",(LM_INFO,"KELVIN_COUNTS_CONVERSION_FACTOR_SET")); + //} +} + +void SkarabImpl::enableChannels(const ACS::longSeq& enable) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx, + BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::enableChannels()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setEnabled(enable); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::enableChannels()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::setTime() throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx, + BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setTime()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setTime(); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::setTime()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::setAttenuation(CORBA::Long input,CORBA::Double att) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setAttenutation()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setAttenuation(input,att); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::setAttenutation()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +CORBA::Long SkarabImpl::getInputs(ACS::doubleSeq_out freq,ACS::doubleSeq_out bandWidth,ACS::longSeq_out feed,ACS::longSeq_out ifNumber) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + long inputs; + ACS::longSeq pol; + AUTO_TRACE("SkarabImpl::getInputs()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + //no need to take care of freeing allocated memory in case of exception because there are no except........ + freq=new ACS::doubleSeq; + bandWidth=new ACS::doubleSeq; + feed=new ACS::longSeq; + ifNumber=new ACS::longSeq; + line->getFeed(*feed); + line->getFrequency(*freq); + line->getInputsNumber(inputs); + line->getBandWidth(*bandWidth); + line->getIFs(*ifNumber); + return inputs; +} + + +void SkarabImpl::activateNoiseCalibrationSwitching(CORBA::Long interleave) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::activateNoiseCalibrationSwitching()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->activateCalSwitching(interleave); // NOT YET AVAILABLE + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::activateNoiseCalibrationSwitching()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::initialize(const char * configuration) throw (CORBA::SystemException, + ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::initialize()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setup(configuration); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::initialize()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::setIntegration(CORBA::Long Integration) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx, + BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setIntegration()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setIntegration(Integration); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::setIntegration()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::getConfiguration (CORBA::String_out configuration) throw (CORBA::SystemException) +{ + AUTO_TRACE("SkarabImpl::getIntegration()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->getConfiguration(configuration); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::getConfiguration()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +void SkarabImpl::getCommProtVersion (CORBA::String_out version) throw (CORBA::SystemException) +{ + AUTO_TRACE("SkarabImpl::getCommProtVersion()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->getCommProtVersion(version); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::getCommProtVersion()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + +CORBA::Boolean SkarabImpl::command(const char *cmd,CORBA::String_out answer) throw (CORBA::SystemException) +{ + AUTO_TRACE("SkarabImpl::command()"); + IRA::CString out; + bool res; + // this is a cheat....it forces the acquisition of the mutex before the parser. It works only because the parser has no async behaviour configured + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + m_parser->run(cmd,out); + res=true; + } + catch (ParserErrors::ParserErrorsExImpl &ex) { + res=false; + } + catch (ACSErr::ACSbaseExImpl& ex) { + ex.log(LM_ERROR); // the errors resulting from the execution are logged here as stated in the documentation of CommandInterpreter interface, while the parser errors are never logged. + res=false; + } + answer=CORBA::string_dup((const char *)out); + return res; +} + +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROuLongLong,m_ptime,time); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROstring,m_pbackendName,backendName); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROdoubleSeq,m_pbandWidth,bandWidth); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROdoubleSeq,m_pfrequency,frequency); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROdoubleSeq,m_psampleRate,sampleRate); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROdoubleSeq,m_pattenuation,attenuation); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlongSeq,m_ppolarization,polarization); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlongSeq,m_pbins,bins); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlong,m_pinputsNumber,inputsNumber); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlong,m_pintegration,integration); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROpattern,m_pstatus,status); +_PROPERTY_REFERENCE_CPP(SkarabImpl,Management::ROTBoolean,m_pbusy,busy); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlongSeq,m_pfeed,feed); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROdoubleSeq,m_ptsys,systemTemperature); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlong,m_psectionsNumber,sectionsNumber); +_PROPERTY_REFERENCE_CPP(SkarabImpl,ACS::ROlongSeq,m_pinputSection,inputSection); + +/* --------------- [ MACI DLL support functions ] -----------------*/ +#include <maciACSComponentDefines.h> +MACI_DLL_SUPPORT_FUNCTIONS(SkarabImpl) diff --git a/Common/Servers/Skarab/src/_send_backend_command b/Common/Servers/Skarab/src/_send_backend_command new file mode 100755 index 000000000..0a791b013 --- /dev/null +++ b/Common/Servers/Skarab/src/_send_backend_command @@ -0,0 +1,37 @@ +#!/bin/bash + +#initialize default values +COMMAND=convert-data #this is for convenience +SERVER=192.168.200.216 #roach backend at SRT +PORT=10000 + +#parsing command line arguments +while getopts "c:s:p:h" opt; do + case "$opt" in + s) + SERVER=$OPTARG + ;; + p) + PORT=$OPTARG + ;; + c) + COMMAND=$OPTARG + ;; + h) + echo "Usage: + _send_backend_command [-c command] [-s SERVER.IP] [-p PORT] [-h] + + defaults: COMMAND convert-data + SERVER 192.168.200.216 + PORT 10000 + + A list of protocol commands and a description of the protocol can be found at: + http://discos.readthedocs.org/en/latest/developer/protocols/backends.html" + exit 0 + ;; + esac +done + +#executing +{ echo "?$COMMAND"; sleep 1; echo ""; echo "quit"; } | telnet $SERVER $PORT >/dev/null + diff --git a/Medicina/CDB/MACI/Components/BACKENDS/Skarab/Skarab.xml b/Medicina/CDB/MACI/Components/BACKENDS/Skarab/Skarab.xml new file mode 100644 index 000000000..80b544670 --- /dev/null +++ b/Medicina/CDB/MACI/Components/BACKENDS/Skarab/Skarab.xml @@ -0,0 +1,17 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - +--> +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Skarab" + Code="SkarabImpl" + Type="IDL:alma/Backends/Skarab:1.0" + Container="SkarabContainer" + KeepAliveTime="-1" + ImplLang="cpp" +/> diff --git a/Medicina/CDB/MACI/Containers/SkarabContainer/SkarabContainer.xml b/Medicina/CDB/MACI/Containers/SkarabContainer/SkarabContainer.xml new file mode 100644 index 000000000..2b6f79973 --- /dev/null +++ b/Medicina/CDB/MACI/Containers/SkarabContainer/SkarabContainer.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<Container + xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="150.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="cpp" + Recovery="false"> + + <Autoload> + <cdb:e string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> + diff --git a/Medicina/CDB/alma/BACKENDS/Skarab/Skarab.xml b/Medicina/CDB/alma/BACKENDS/Skarab/Skarab.xml new file mode 100644 index 000000000..e7d02a72c --- /dev/null +++ b/Medicina/CDB/alma/BACKENDS/Skarab/Skarab.xml @@ -0,0 +1,45 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - Wed Apr 13 15:18:03 UTC 2005 modified by Andrea Orlati +--> +<Skarab xmlns="urn:schemas-cosylab-com:Skarab:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + sender_protocols="TCP=${HOST}:14000" + IPAddress="192.167.189.91" + Port="10001" + CommandLineTimeout="100000000" + ConnectTimeout="300000000" + PropertyRefreshTime="1000000" + Configuration="SKARAB_1S" + TimeTollerance="250000" + RepetitionCacheTime="200000000" + RepetitionExpireTime="500000000" + DataPort="6001" + DataIPAddress="192.168.200.200" + DataLatency="3000000" + SenderSleepTime="30000000" + SenderResponseTime="10000000" + ControlSleepTime="90000000" + ControlResponseTime="100000000" + BoardsNumber="14" + DataBufferSize="64"> + <time/> + <backendName/> + <bandWidth/> + <frequency/> + <sampleRate/> + <attenuation/> + <polarization/> + <bins/> + <feed/> + <systemTemperature/> + <inputSection/> + <inputsNumber/> + <sectionsNumber/> + <integration/> + <status/> + <busy/> +</Skarab> diff --git a/Medicina/CDB/alma/DataBlock/Skarab/Skarab.xml b/Medicina/CDB/alma/DataBlock/Skarab/Skarab.xml new file mode 100644 index 000000000..ab460fb64 --- /dev/null +++ b/Medicina/CDB/alma/DataBlock/Skarab/Skarab.xml @@ -0,0 +1,158 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<SkarabSetup xmlns="urn:schemas-cosylab-com:SkarabSetup:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<Configuration> + <configurationID>SKARAB_1</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>1400.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>2048</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_1S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>1400.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>2048</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_2</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>187.5</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>32768</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_2S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>187.5</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>32768</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_3</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>187.5</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>65536</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_3S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>187.5</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>65536</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_4</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>93.75</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>32768</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_4S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>93.75</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>32768</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_5</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>93.75</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>65536</bins> +</Configuration> + +<Configuration> + <configurationID>SKARAB_5S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>1</beams> + <bandWidth>93.75</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>65536</bins> +</Configuration> + +</SkarabSetup> -- GitLab From f1b99657214596e86ab5c109b52087f739fdd5e8 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 29 Nov 2023 09:41:04 +0100 Subject: [PATCH 045/150] Fix #814, updated C-low receiver CDB configuration (#818) --- .../DataBlock/PointingModel/PointingModel.xml | 34 +++++++++++++++++++ .../NormalModeSetup/NormalModeSetup.xml | 2 +- .../alma/DataBlock/TotalPower/TotalPower.xml | 14 ++++++++ .../StationProcedures/StationProcedures.xml | 5 +++ .../CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml | 2 +- .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 6 ++-- 6 files changed, 58 insertions(+), 5 deletions(-) diff --git a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml index c1aaaf5e5..b1cf45978 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -139,5 +139,39 @@ <coefficientNum28>0</coefficientNum28> <coefficientVal28>0.0000000000</coefficientVal28> <coefficientNum29>0</coefficientNum29> <coefficientVal29>0.0000000000</coefficientVal29> </Receiver> +<Receiver> + <receiverCode>CCG</receiverCode> + <phi>90.0</phi> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00>-2.2881932258 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0040601296</coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> 0.0014384996 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0003379379 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015144897</coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.2964673936 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> -0.1382924467 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0023407035 </coefficientVal10> + <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0 </coefficientVal11> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002931280 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> -0.0004088043 </coefficientVal13> + <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0 </coefficientVal14> + <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0 </coefficientVal15> + <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0 </coefficientVal16> + <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0 </coefficientVal17> + <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0 </coefficientVal18> + <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0 </coefficientVal19> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> +</Receiver> </PointingModel> diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml index 44e1e2e0a..195fc2d65 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml @@ -21,5 +21,5 @@ DefaultLO="4100.0 4100.0" FixedLO2="4100.0 4100.0" LOMin="4100.0 4100.0" - LOMax="4100.0 4100.0" + LOMax="5400.0 5400.0" /> diff --git a/SRT/Configuration/CDB/alma/DataBlock/TotalPower/TotalPower.xml b/SRT/Configuration/CDB/alma/DataBlock/TotalPower/TotalPower.xml index 8966b1ad5..20bc44029 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/TotalPower/TotalPower.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/TotalPower/TotalPower.xml @@ -61,6 +61,20 @@ <IF>0 1</IF> </Configuration> +<Configuration> + <configurationID>CCG</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>PRIMARY</inputPort> + <inputPortDB>10</inputPortDB> + <inputPortBW>730</inputPortBW> + <beams>1</beams> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> +</Configuration> + <Configuration> <configurationID>PPP</configurationID> <sections>2</sections> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index b6d47acd7..39b02cfa4 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -20,8 +20,13 @@ <Procedure name="setupCCG" args="0"> <body> receiversSetup=CCG + antennaSetup=CCG chooseBackend=TotalPower + initialize=CCG + device=0 calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml b/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml index 4c3814682..64089db15 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml @@ -2,7 +2,7 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - IP="192.168.200.128" PORT="5025"> + IP="192.168.200.118" PORT="5025"> <frequency units="MHz"/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index 939faecf2..9fa31b2ee 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -8,16 +8,16 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - DewarIPAddress="192.168.60.51" + DewarIPAddress="192.168.200.188" DewarPort="5002" - LNAIPAddress="192.168.60.50" + LNAIPAddress="192.168.200.189" LNAPort="5002" WatchDogResponseTime="400000" WatchDogSleepTime="500000" LNASamplingTime="250000" RepetitionCacheTime="7000000" RepetitionExpireTime="10000000" - LocalOscillatorInstance="RECEIVERS/LO_CBAND" + LocalOscillatorInstance="RECEIVERS/LO_KBAND" > <LO description="Sequence of local oscillator values for each IF chain"/> <feeds description="Number of feeds of the receiver"/> -- GitLab From c5e191b5c4c1a9424ec80882ad10fdf8f3857e98 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 1 Jan 2024 22:46:53 +0000 Subject: [PATCH 046/150] Fixed missing declaration --- .../SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h b/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h index 2019c0f1b..8f02a34c8 100644 --- a/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h +++ b/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h @@ -169,6 +169,8 @@ public: void setProfile (const ActiveSurface::TASProfile& profile) throw (ComponentErrors::ComponentErrorsExImpl); + void asSetLUT(const char* newlut); + private: std::map<int, std::string> m_error_strings; ContainerServices* m_services; -- GitLab From d14a3a8b08815da719307d3cfec217500c895522 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 2 Jan 2024 00:21:34 +0000 Subject: [PATCH 047/150] Some updates --- .../include/MinorServoBossTextClient.h | 4 +- .../MinorServoBossTextClient/src/Makefile | 3 + .../src/MinorServoBossTextClient.cpp | 2 +- .../MACI/Components/MINORSERVO/M3R/M3R.xml | 5 +- .../MACI/Components/MINORSERVO/PFP/PFP.xml | 4 +- .../MACI/Components/MINORSERVO/SRP/GFR.xml | 14 - .../GFR/LookupTables/LookupTables.xml | 44 +- .../MinorServo/GFR/Properties/Properties.xml | 4 +- .../M3R/LookupTables/LookupTables.xml | 23 +- .../MinorServo/M3R/Properties/Properties.xml | 4 +- .../PFP/LookupTables/LookupTables.xml | 33 ++ .../MinorServo/PFP/Properties/Properties.xml | 10 +- .../SRP/LookupTables/LookupTables.xml | 203 ++++--- .../MinorServo/SRP/Properties/Properties.xml | 12 +- SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- SRT/CDB/alma/MINORSERVO/Boss/Boss.xml | 15 +- SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 9 +- SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 9 +- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 9 +- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 9 +- .../SRTMinorServoInterface/idl/.gitignore | 1 + .../idl/SRTMinorServo.idl | 48 +- .../idl/SRTMinorServoBoss.idl | 52 +- .../idl/SRTMinorServoCommon.idl | 131 ----- .../idl/SRTMinorServoCommon.midl | 19 +- .../SRTMinorServoInterface/src/Makefile | 7 +- .../app-defaults/simulationStartup.xml | 11 +- .../config/CDB/schemas/SRTMinorServo.xsd | 17 +- .../config/CDB/schemas/SRTMinorServoBoss.xsd | 30 +- .../CDB/schemas/SRTMinorServoLookupTable.xsd | 34 +- .../CDB/schemas/SRTMinorServoProperties.xsd | 2 +- SRT/Servers/SRTMinorServo/include/Common.h | 73 +++ SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 314 ++++++++--- .../include/SRTMinorServoBossCore.h | 67 ++- .../include/SRTMinorServoBossImpl.h | 79 ++- .../SRTMinorServo/include/SRTMinorServoImpl.h | 137 +++-- .../include/SRTMinorServoParkThread.h | 10 +- .../include/SRTMinorServoSetupThread.h | 12 +- .../include/SRTMinorServoSocket.h | 2 +- .../include/SRTMinorServoStatusThread.h | 2 +- .../include/SRTMinorServoTrackingThread.h | 78 +++ SRT/Servers/SRTMinorServo/src/Makefile | 10 +- .../src/SRTBaseMinorServoImpl.cpp | 415 +++++++++++--- .../src/SRTMinorServoBossCore.cpp | 526 +++++++++++++++--- .../src/SRTMinorServoBossImpl.cpp | 317 ++++++++++- .../src/SRTMinorServoParkThread.cpp | 79 ++- .../src/SRTMinorServoSetupThread.cpp | 154 ++--- .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 60 +- .../src/SRTMinorServoStatusThread.cpp | 2 +- .../src/SRTMinorServoTrackingThread.cpp | 159 ++++++ .../src/SRTProgramTrackMinorServoImpl.cpp | 12 +- 51 files changed, 2385 insertions(+), 893 deletions(-) delete mode 100644 SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore delete mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl create mode 100644 SRT/Servers/SRTMinorServo/include/Common.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp diff --git a/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h b/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h index 97cdc5198..3656b750c 100644 --- a/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h +++ b/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h @@ -78,10 +78,12 @@ /* define name and component interface */ /* ********************************** */ #define COMPONENT_NAME "MINORSERVO/Boss" /* the name of the instantiation of the component */ -#define COMPONENT_INTERFACE_TPYE "IDL:alma/MinorServo/MinorServoBoss:1.0" /* the type of the interface */ #define COMPONENT_IDL_MODULE MinorServo /* the IDL module that contains the component interface */ #define COMPONENT_IDL_INTERFACE MinorServoBoss /* the IDL interface of the component */ #define COMPONENT_SMARTPOINTER MinorServoBoss_var /* the component type */ +#ifndef COMPONENT_INTERFACE_TPYE + #define COMPONENT_INTERFACE_TPYE "IDL:alma/MinorServo/MinorServoBoss:1.0" +#endif /* ********************************** */ /* define user input command style */ diff --git a/Common/Clients/MinorServoBossTextClient/src/Makefile b/Common/Clients/MinorServoBossTextClient/src/Makefile index 39d35e743..246fd626e 100644 --- a/Common/Clients/MinorServoBossTextClient/src/Makefile +++ b/Common/Clients/MinorServoBossTextClient/src/Makefile @@ -69,6 +69,9 @@ _tui_MinorServoBossTextClient_LIBS = MinorServoBossStubs IRALibrary Managme TextWindowLibrary ClientErrors ComponentErrors ManagementErrors MinorServoErrors AntennaDefinitionsStubs \ MinorServoDefinitionsStubs +ifeq ($(STATION),SRT) + MinorServoBossTextClient_CFLAGS = -DCOMPONENT_INTERFACE_TPYE="\"IDL:alma/MinorServo/SRTMinorServoBoss:1.0\"" +endif SCRIPTS = minorservoBossTui diff --git a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp index 9f490e5ba..c90158e95 100644 --- a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp +++ b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp @@ -289,7 +289,7 @@ int main(int argc, char *argv[]) { status_box->setStatusLook(Management::MNG_OK,CStyle(BLACK_GREEN,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_WARNING,CStyle(BLACK_YELLOW,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_FAILURE,CStyle(BLACK_RED,CStyle::BOLD)); - _TW_SET_COMPONENT(motionInfo_field,18,3,23,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(motionInfo_field,18,3,30,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); /* ****************************************************************** */ _TW_SET_COMPONENT(userInput,0,WINDOW_HEIGHT-6,WINDOW_WIDTH-1,1,USER_INPUT_COLOR_PAIR,USER_INPUT_STYLE,NULL); diff --git a/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml b/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml index 8a01ba209..94efe94c9 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="M3R" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" Default="true" - /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml b/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml index d75a83d75..a5801b66d 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml @@ -6,9 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="PFP" - Code="WPServoImpl" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" Default="true" diff --git a/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml b/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml deleted file mode 100644 index 6e6b16d10..000000000 --- a/SRT/CDB/MACI/Components/MINORSERVO/SRP/GFR.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Component - xmlns="urn:schemas-cosylab-com:Component:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - - Name="GFR" - Code="SRTGenericMinorServoImpl" - ImplLang="cpp" - Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" - Container="MinorServoContainer" - Default="true" -/> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml index 715f7031c..d0275a194 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -10,33 +10,23 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <!-- Primario - GFR not used --> - <Primario><axis>ROTATION</axis> <coefficients></coefficients></Primario> + <CCG> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG> + <CCG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG_ASACTIVE> + <KKG> <axis>ROTATION</axis> <coefficients>0 </coefficients></KKG> + <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></KKG_ASACTIVE> + <WWG> <axis>ROTATION</axis> <coefficients>0 </coefficients></WWG> + <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></WWG_ASACTIVE> + <QQG> <axis>ROTATION</axis> <coefficients>0 </coefficients></QQG> + <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></QQG_ASACTIVE> + <TRI> <axis>ROTATION</axis> <coefficients>0 </coefficients></TRI> + <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></TRI_ASACTIVE> + <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> + <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> - <!-- Gregoriano1 == CCG (initialized with KKG) --> - <Gregoriano1><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano1> - <!-- Gregoriano2 == KKG --> - <Gregoriano2><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano2> - <!-- Gregoriano3 --> - <Gregoriano3><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano3> - <!-- Gregoriano4 --> - <Gregoriano4><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano4> - <!-- Gregoriano5 --> - <Gregoriano5><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano5> - <!-- Gregoriano6 --> - <Gregoriano6><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano6> - <!-- Gregoriano7 --> - <Gregoriano7><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano7> - <!-- Gregoriano8 --> - <Gregoriano8><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano8> - - <!-- BWG1 - GFR open --> - <BWG1><axis>ROTATION</axis> <coefficients>0</coefficients></BWG1> - <!-- BWG2 - GFR open --> - <BWG2><axis>ROTATION</axis> <coefficients>0</coefficients></BWG2> - <!-- BWG3 - GFR open --> - <BWG3><axis>ROTATION</axis> <coefficients>0</coefficients></BWG3> - <!-- BWG4 - GFR open --> - <BWG4><axis>ROTATION</axis> <coefficients>0</coefficients></BWG4> + <!-- BWG - GFR open --> + <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> </SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml index 0c087d882..c6ae42675 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -10,8 +10,8 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></axes_enabled> + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml index ce0cb0857..fccec0b0f 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml @@ -10,24 +10,9 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <!-- Primary and gregorian configurations - M3R not used --> - <Primario><axis>ROTATION</axis> <coefficients>0</coefficients></Primario> - <Gregoriano1><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano1> - <Gregoriano2><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano2> - <Gregoriano3><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano3> - <Gregoriano4><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano4> - <Gregoriano5><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano5> - <Gregoriano6><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano6> - <Gregoriano7><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano7> - <Gregoriano8><axis>ROTATION</axis> <coefficients>0</coefficients></Gregoriano8> - - <!-- BWG1 --> - <BWG1><axis>ROTATION</axis> <coefficients>0</coefficients></BWG1> - <!-- BWG2 --> - <BWG2><axis>ROTATION</axis> <coefficients>0</coefficients></BWG2> - <!-- BWG3 --> - <BWG3><axis>ROTATION</axis> <coefficients>0</coefficients></BWG3> - <!-- BWG4 --> - <BWG4><axis>ROTATION</axis> <coefficients>0</coefficients></BWG4> + <CCB> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0</coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></XB_ASACTIVE> </SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml index 0c087d882..c6ae42675 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -10,8 +10,8 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></axes_enabled> + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..086b3785b --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <LLP> <axis>TX</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>TZ</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></LLP> + + <PPP> <axis>TX</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>TZ</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PPP> + + <PLP> <axis>TX</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>TZ</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PLP> + + <HHP> <axis>TX</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>TZ</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>RTHETA</axis> <coefficients>0 </coefficients></HHP> + + <XKP> <axis>TX</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>TZ</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>RTHETA</axis> <coefficients>0 </coefficients></XKP> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml index 0dd96f036..b720bbf40 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -10,11 +10,11 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <axes_enabled><property_name>X_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Z_MASTER_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></axes_enabled> + <physical_axes_enabled><property_name>X_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></physical_axes_enabled> <physical_positions><property_name>ELONG_X</property_name></physical_positions> <physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml index 3c2c8cfcb..6869a5c77 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -10,97 +10,116 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <Primario><axis>TX</axis> <coefficients>0 </coefficients></Primario> - <Primario><axis>TY</axis> <coefficients>0 </coefficients></Primario> - <Primario><axis>TZ</axis> <coefficients>0 </coefficients></Primario> - <Primario><axis>RX</axis> <coefficients>0 </coefficients></Primario> - <Primario><axis>RY</axis> <coefficients>0 </coefficients></Primario> - <Primario><axis>RZ</axis> <coefficients>0 </coefficients></Primario> - - <!-- Gregoriano1 == CCB (initialized with KKG) --> - <Gregoriano1><axis>TX</axis> <coefficients>-1.5 </coefficients></Gregoriano1> - <Gregoriano1><axis>TY</axis> <coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></Gregoriano1> - <Gregoriano1><axis>TZ</axis> <coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></Gregoriano1> - <Gregoriano1><axis>RX</axis> <coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></Gregoriano1> - <Gregoriano1><axis>RY</axis> <coefficients>-0.03611111111111111 </coefficients></Gregoriano1> - <Gregoriano1><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano1> - - <!-- Gregoriano2 == KKG --> - <Gregoriano2><axis>TX</axis> <coefficients>-1.5 </coefficients></Gregoriano2> - <Gregoriano2><axis>TY</axis> <coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></Gregoriano2> - <Gregoriano2><axis>TZ</axis> <coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></Gregoriano2> - <Gregoriano2><axis>RX</axis> <coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></Gregoriano2> - <Gregoriano2><axis>RY</axis> <coefficients>-0.03611111111111111 </coefficients></Gregoriano2> - <Gregoriano2><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano2> - - <Gregoriano3><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano3> - <Gregoriano3><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano3> - <Gregoriano3><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano3> - <Gregoriano3><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano3> - <Gregoriano3><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano3> - <Gregoriano3><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano3> - - <Gregoriano4><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano4> - <Gregoriano4><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano4> - <Gregoriano4><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano4> - <Gregoriano4><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano4> - <Gregoriano4><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano4> - <Gregoriano4><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano4> - - <Gregoriano5><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano5> - <Gregoriano5><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano5> - <Gregoriano5><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano5> - <Gregoriano5><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano5> - <Gregoriano5><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano5> - <Gregoriano5><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano5> - - <Gregoriano6><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano6> - <Gregoriano6><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano6> - <Gregoriano6><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano6> - <Gregoriano6><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano6> - <Gregoriano6><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano6> - <Gregoriano6><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano6> - - <Gregoriano7><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano7> - <Gregoriano7><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano7> - <Gregoriano7><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano7> - <Gregoriano7><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano7> - <Gregoriano7><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano7> - <Gregoriano7><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano7> - - <Gregoriano8><axis>TX</axis> <coefficients>0 </coefficients></Gregoriano8> - <Gregoriano8><axis>TY</axis> <coefficients>0 </coefficients></Gregoriano8> - <Gregoriano8><axis>TZ</axis> <coefficients>0 </coefficients></Gregoriano8> - <Gregoriano8><axis>RX</axis> <coefficients>0 </coefficients></Gregoriano8> - <Gregoriano8><axis>RY</axis> <coefficients>0 </coefficients></Gregoriano8> - <Gregoriano8><axis>RZ</axis> <coefficients>0 </coefficients></Gregoriano8> - - <BWG1><axis>TX</axis> <coefficients>0 </coefficients></BWG1> - <BWG1><axis>TY</axis> <coefficients>0 </coefficients></BWG1> - <BWG1><axis>TZ</axis> <coefficients>0 </coefficients></BWG1> - <BWG1><axis>RX</axis> <coefficients>0 </coefficients></BWG1> - <BWG1><axis>RY</axis> <coefficients>0 </coefficients></BWG1> - <BWG1><axis>RZ</axis> <coefficients>0 </coefficients></BWG1> - - <BWG2><axis>TX</axis> <coefficients>0 </coefficients></BWG2> - <BWG2><axis>TY</axis> <coefficients>0 </coefficients></BWG2> - <BWG2><axis>TZ</axis> <coefficients>0 </coefficients></BWG2> - <BWG2><axis>RX</axis> <coefficients>0 </coefficients></BWG2> - <BWG2><axis>RY</axis> <coefficients>0 </coefficients></BWG2> - <BWG2><axis>RZ</axis> <coefficients>0 </coefficients></BWG2> - <BWG3><axis>TX</axis> <coefficients>0 </coefficients></BWG3> - - <BWG3><axis>TY</axis> <coefficients>0 </coefficients></BWG3> - <BWG3><axis>TZ</axis> <coefficients>0 </coefficients></BWG3> - <BWG3><axis>RX</axis> <coefficients>0 </coefficients></BWG3> - <BWG3><axis>RY</axis> <coefficients>0 </coefficients></BWG3> - <BWG3><axis>RZ</axis> <coefficients>0 </coefficients></BWG3> - - <BWG4><axis>TX</axis> <coefficients>0 </coefficients></BWG4> - <BWG4><axis>TY</axis> <coefficients>0 </coefficients></BWG4> - <BWG4><axis>TZ</axis> <coefficients>0 </coefficients></BWG4> - <BWG4><axis>RX</axis> <coefficients>0 </coefficients></BWG4> - <BWG4><axis>RY</axis> <coefficients>0 </coefficients></BWG4> - <BWG4><axis>RZ</axis> <coefficients>0 </coefficients></BWG4> + <CCG> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG> + <CCG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCG> + <CCG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCG> + <CCG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCG> + <CCG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCG> + <CCG> <axis>RZ</axis><coefficients>0 </coefficients></CCG> + + <CCG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCG_ASACTIVE> + + <KKG> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG> + <KKG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></KKG> + <KKG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></KKG> + <KKG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></KKG> + <KKG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></KKG> + <KKG> <axis>RZ</axis><coefficients>0 </coefficients></KKG> + + <KKG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></KKG_ASACTIVE> + + <WWG> <axis>TX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TZ</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RZ</axis><coefficients>0 </coefficients></WWG> + + <WWG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + + <QQG> <axis>TX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TZ</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RZ</axis><coefficients>0 </coefficients></QQG> + + <QQG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + + <TRI> <axis>TX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TZ</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RZ</axis><coefficients>0 </coefficients></TRI> + + <TRI_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + + <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> + <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> + + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> + + <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> + <CCB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCB> + <CCB> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCB> + <CCB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCB> + <CCB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCB> + <CCB> <axis>RZ</axis><coefficients>0 </coefficients></CCB> + + <CCB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TZ</axis><coefficients>91.5590595452,-16.4202062811,1.16941963489,-0.040640240455,0.000733782714288,-6.62393455442e-06,2.36410838911e-08 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCB_ASACTIVE> + + <XB> <axis>TX</axis><coefficients>-1.5 </coefficients></XB> + <XB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></XB> + <XB> <axis>TZ</axis><coefficients>7.92754535681,-1.73279985542,0.147346047014,-0.00516934108597,7.69094654954e-05,-4.0697957632e-07 </coefficients></XB> + <XB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></XB> + <XB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></XB> + <XB> <axis>RZ</axis><coefficients>0 </coefficients></XB> + + <XB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TZ</axis><coefficients>-38.3143893309,4.30888128547,-0.18265795755,0.00350049382452,-3.17057523513e-05,1.11006707448e-07 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></XB_ASACTIVE> </SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml index 896b0e8c4..963812767 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -10,12 +10,12 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <axes_enabled><property_name>Z1_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Z2_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Z3_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Y1_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>Y2_ENABLED</property_name></axes_enabled> - <axes_enabled><property_name>X1_ENABLED</property_name></axes_enabled> + <physical_axes_enabled><property_name>Z1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z3_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>X1_ENABLED</property_name></physical_axes_enabled> <physical_positions><property_name>ELONG_Z1</property_name></physical_positions> <physical_positions><property_name>ELONG_Z2</property_name></physical_positions> diff --git a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 4c835f64c..d11bb9411 100644 --- a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -23,7 +23,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" ActiveSurfaceBossInterface="IDL:alma/ActiveSurface/SRTActiveSurfaceBoss:1.0" CustomLoggerInterface="IDL:alma/Management/CustomLogger:1.0" WeatherStationInstance="IDL:alma/Weather/GenericWeatherStation:1.0" diff --git a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml index 4d647f16c..fe264a507 100644 --- a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -9,7 +9,20 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - status_thread_period="0.05"> + status_thread_period="0.05" + active_surface_configuration="ON" + elevation_tracking_enabled="ON"> + + <status description="The summary status of MinorServoBoss"/> + <actualSetup description="Mnemonic code that defines a setup" /> + <motionInfo description="Description of the movement in progress" /> + <ready description="True if the system is ready" /> + <starting description="True if the system is starting" /> + <asConfiguration description="True if the the AS configuration is active" /> + <elevationTrack description="True if the SRP is tracking the elevation" /> + <scanActive description="True if a scan is active" /> + <scanning description="True if the system is performing a scan" /> + <tracking description="Is the minor servo system tracking?" /> <current_configuration description="Current minor servos focal configuration" /> <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index c7bd27cbb..e542e0eb7 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -14,9 +14,14 @@ <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> - <axes_enabled description="Sequence, physical axes enabled" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> <virtual_positions description="Sequence, virtual axes positions" /> - <virtual_offsets description="Sequence, virtual axes offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> </SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index c7bd27cbb..e542e0eb7 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -14,9 +14,14 @@ <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> - <axes_enabled description="Sequence, physical axes enabled" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> <virtual_positions description="Sequence, virtual axes positions" /> - <virtual_offsets description="Sequence, virtual axes offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> </SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index fd8362d3f..72c2ede30 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -14,9 +14,14 @@ <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> - <axes_enabled description="Sequence, physical axes enabled" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> <virtual_positions description="Sequence, virtual axes positions" /> - <virtual_offsets description="Sequence, virtual axes offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> </SRTMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index 5dea1dfd2..a70473464 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -14,9 +14,14 @@ <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> - <axes_enabled description="Sequence, physical axes enabled" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> <virtual_positions description="Sequence, virtual axes positions" /> - <virtual_offsets description="Sequence, virtual axes offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> </SRTMinorServo> diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore b/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore new file mode 100644 index 000000000..981c93f21 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore @@ -0,0 +1 @@ +SRTMinorServoCommon.idl diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 29972eb8e..3d91e7e34 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -9,7 +9,6 @@ #ifndef __SRTMINORSERVO_IDL__ #define __SRTMINORSERVO_IDL__ -#include <baci.idl> #include "SRTMinorServoCommon.idl" #pragma prefix "alma" @@ -18,33 +17,36 @@ module MinorServo { interface SRTBaseMinorServo : ACS::CharacteristicComponent { - readonly attribute ACS::ROboolean enabled; - + readonly attribute Management::ROTBoolean enabled; readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status; - - readonly attribute ACS::ROboolean block; - + readonly attribute Management::ROTBoolean block; readonly attribute ROSRTMinorServoOperativeMode operative_mode; - - readonly attribute ACS::RObooleanSeq axes_enabled; - + readonly attribute ACS::RObooleanSeq physical_axes_enabled; readonly attribute ACS::ROdoubleSeq physical_positions; - + readonly attribute ACS::ROlong virtual_axes; readonly attribute ACS::ROdoubleSeq virtual_positions; - readonly attribute ACS::ROdoubleSeq virtual_offsets; + readonly attribute ACS::ROdoubleSeq virtual_user_offsets; + readonly attribute ACS::ROdoubleSeq virtual_system_offsets; + readonly attribute Management::ROTBoolean in_use; + readonly attribute ACS::ROstring current_setup; + + void status() raises (ComponentErrors::ComponentErrorsEx); + void stow(in long stow_position) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void stop() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void preset(in ACS::doubleSeq coordinates) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void offset(in ACS::doubleSeq offsets) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + ACS::doubleSeq getUserOffsets(); + void setUserOffset(in string axis_name, in double offset) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void clearUserOffsets() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + ACS::doubleSeq getSystemOffsets(); + void setSystemOffset(in string axis_name, in double offset) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void clearSystemOffsets() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + + void setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + void getAxesInfo(out ACS::stringSeq axes_names, out ACS::stringSeq axes_units) raises (ComponentErrors::ComponentErrorsEx); + ACS::doubleSeq calcCoordinates(in double elevation); - void status(); - - void stow(in long stow_position); - - void stop(); - - void preset(in ACS::doubleSeq coordinates); - - void offset(in ACS::doubleSeq offsets); - - void setup(in string configuration); }; interface SRTGenericMinorServo : SRTBaseMinorServo @@ -53,7 +55,7 @@ module MinorServo interface SRTProgramTrackMinorServo : SRTBaseMinorServo { - void programTrack(in long trajectory_id, in long point_id, in double start_time, in ACS::doubleSeq coordinates); + void programTrack(in long trajectory_id, in long point_id, in double start_time, in ACS::doubleSeq coordinates) raises (ComponentErrors::ComponentErrorsEx); }; }; diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl index 0eeb13b74..7bb3d8efc 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -8,66 +8,26 @@ #ifndef __SRTMINORSERVOBOSS_IDL__ #define __SRTMINORSERVOBOSS_IDL__ -#include <baci.idl> -#include <ComponentErrors.idl> -#include <MinorServoErrors.idl> -#include <AntennaDefinitions.idl> -#include "MinorServoDefinitions.idl" +#include <MinorServoBoss.idl> #include "SRTMinorServoCommon.idl" #pragma prefix "alma" module MinorServo { - interface SRTMinorServoBoss: ACS::CharacteristicComponent + interface SRTMinorServoBoss: MinorServoBoss { readonly attribute ROSRTMinorServoFocalConfiguration current_configuration; - readonly attribute ACS::ROboolean simulation_enabled; + readonly attribute Management::ROTBoolean simulation_enabled; readonly attribute ACS::ROdouble plc_time; readonly attribute ACS::ROstring plc_version; readonly attribute ROSRTMinorServoControlStatus control; - readonly attribute ACS::ROboolean power; - readonly attribute ACS::ROboolean emergency; + readonly attribute Management::ROTBoolean power; + readonly attribute Management::ROTBoolean emergency; readonly attribute ROSRTMinorServoGregorianCoverStatus gregorian_cover; readonly attribute ACS::ROdouble last_executed_command; - void setElevationTracking(in string value) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); - void setASConfiguration(in string value) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); - - /** - * Starts the scan of one axis of the MinorServo target. - * - * @param starting_time the time the scan will start or 0 if the scan is required to start immediately - * @param scan structure containing the description of the scan to be executed - * @param antennaInfo auxiliary information from the antenna - * - */ - void startScan(inout ACS::Time starting_time, in MinorServoScan scan, in Antenna::TRunTimeParameters antennaInfo) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); - - /** - * Closes the current scan and force the minor servo system to its normal behaviour - * @param timeToStop stores the expected epoch in which the scan will be stopped (closed). It could be zero meaning the - * scan will be closed immediately - * @throw ComponentErrors::ComponentErrorsEx - * @throw ReceiversErrors::ReceiversErrorsEx - */ - void closeScan(out ACS::Time timeToStop) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); - - /** - * Checks if it is possible to execute a scan along a given axis - * - * @param starting_time the time the scan will start or 0 if the scan is required to start immediately - * @param scan structure containing the description of the scan to be executed - * @param antennaInfo auxiliary information from the antenna - * @param runTime auxiliary information computed at run time by the subsystem - */ - boolean checkScan(in ACS::Time starting_time, in MinorServoScan scan, in Antenna::TRunTimeParameters antennaInfo, out TRunTimeParameters runtime) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); - - /** - * Setup all the minor servos to the given configuration - * @param configuration a string representing the given configuration - */ - void setup(in string configuration) raises (MinorServoErrors::MinorServoErrorsEx); + void preset(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); }; }; diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl deleted file mode 100644 index 924fb3996..000000000 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.idl +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************** $Id: JacPrep,v 1.13 2010/01/04 15:34:48 gchiozzi Exp $ -* DO NOT EDIT -* Automatically generated from ../idl/SRTMinorServoCommon.midl -* on Mon Nov 27 14:03:33 2023 -*******************************************************************************/ -#ifndef _SRTMinorServoCommon_midl_ -#define _SRTMinorServoCommon_midl_ -#ifndef _ACS_PREPROCESSED_ -#define _ACS_PREPROCESSED_ -#endif -#include <baci.idl> -#include <enumpropMACRO.idl> - - - - - - - -#pragma prefix "alma" - -module MinorServo -{ - enum SRTMinorServoFocalConfiguration - { - CONFIGURATION_UNKNOWN, - CONFIGURATION_PARK, - CONFIGURATION_PRIMARY, - CONFIGURATION_GREGORIAN1, - CONFIGURATION_GREGORIAN2, - CONFIGURATION_GREGORIAN3, - CONFIGURATION_GREGORIAN4, - CONFIGURATION_GREGORIAN5, - CONFIGURATION_GREGORIAN6, - CONFIGURATION_GREGORIAN7, - CONFIGURATION_GREGORIAN8, - CONFIGURATION_BWG1, - CONFIGURATION_BWG2, - CONFIGURATION_BWG3, - CONFIGURATION_BWG4 - }; - - - typedef sequence<SRTMinorServoFocalConfiguration> SRTMinorServoFocalConfigurationSeq; interface CBSRTMinorServoFocalConfiguration : ACS::Callback { oneway void working(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoFocalConfiguration SRTMinorServoFocalConfigurationCB; interface AlarmSRTMinorServoFocalConfiguration : ACS::Callback { oneway void alarm_raised(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoFocalConfiguration value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoFocalConfiguration SRTMinorServoFocalConfigurationAlarm; interface PSRTMinorServoFocalConfiguration: ACS::TypelessProperty { SRTMinorServoFocalConfiguration get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoFocalConfigurationSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoFocalConfiguration default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoFocalConfigurationSeq allStates; }; - interface ROSRTMinorServoFocalConfiguration: PSRTMinorServoFocalConfiguration{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoFocalConfigurationSeq alarm_on; readonly attribute SRTMinorServoFocalConfigurationSeq alarm_off; }; - interface RWSRTMinorServoFocalConfiguration: PSRTMinorServoFocalConfiguration { ACSErr::Completion set_sync(in SRTMinorServoFocalConfiguration value); void set_async(in SRTMinorServoFocalConfiguration value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoFocalConfiguration value);}; - - - enum SRTMinorServoControlStatus - { - CONTROL_DISCOS, - CONTROL_VBRAIN - }; - - - typedef sequence<SRTMinorServoControlStatus> SRTMinorServoControlStatusSeq; interface CBSRTMinorServoControlStatus : ACS::Callback { oneway void working(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoControlStatus SRTMinorServoControlStatusCB; interface AlarmSRTMinorServoControlStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoControlStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoControlStatus SRTMinorServoControlStatusAlarm; interface PSRTMinorServoControlStatus: ACS::TypelessProperty { SRTMinorServoControlStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoControlStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoControlStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoControlStatusSeq allStates; }; - interface ROSRTMinorServoControlStatus: PSRTMinorServoControlStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoControlStatusSeq alarm_on; readonly attribute SRTMinorServoControlStatusSeq alarm_off; }; - interface RWSRTMinorServoControlStatus: PSRTMinorServoControlStatus { ACSErr::Completion set_sync(in SRTMinorServoControlStatus value); void set_async(in SRTMinorServoControlStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoControlStatus value);}; - - - enum SRTMinorServoGregorianCoverStatus - { - COVER_STATUS_UNKNOWN, - COVER_STATUS_OPEN, - COVER_STATUS_CLOSED - }; - - - typedef sequence<SRTMinorServoGregorianCoverStatus> SRTMinorServoGregorianCoverStatusSeq; interface CBSRTMinorServoGregorianCoverStatus : ACS::Callback { oneway void working(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoGregorianCoverStatus SRTMinorServoGregorianCoverStatusCB; interface AlarmSRTMinorServoGregorianCoverStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoGregorianCoverStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoGregorianCoverStatus SRTMinorServoGregorianCoverStatusAlarm; interface PSRTMinorServoGregorianCoverStatus: ACS::TypelessProperty { SRTMinorServoGregorianCoverStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoGregorianCoverStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoGregorianCoverStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoGregorianCoverStatusSeq allStates; }; - interface ROSRTMinorServoGregorianCoverStatus: PSRTMinorServoGregorianCoverStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoGregorianCoverStatusSeq alarm_on; readonly attribute SRTMinorServoGregorianCoverStatusSeq alarm_off; }; - interface RWSRTMinorServoGregorianCoverStatus: PSRTMinorServoGregorianCoverStatus { ACSErr::Completion set_sync(in SRTMinorServoGregorianCoverStatus value); void set_async(in SRTMinorServoGregorianCoverStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoGregorianCoverStatus value);}; - - - enum SRTMinorServoCabinetStatus - { - DRIVE_CABINET_OK, - DRIVE_CABINET_WARNING, - DRIVE_CABINET_ERROR - }; - - - typedef sequence<SRTMinorServoCabinetStatus> SRTMinorServoCabinetStatusSeq; interface CBSRTMinorServoCabinetStatus : ACS::Callback { oneway void working(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoCabinetStatus SRTMinorServoCabinetStatusCB; interface AlarmSRTMinorServoCabinetStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoCabinetStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoCabinetStatus SRTMinorServoCabinetStatusAlarm; interface PSRTMinorServoCabinetStatus: ACS::TypelessProperty { SRTMinorServoCabinetStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoCabinetStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoCabinetStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoCabinetStatusSeq allStates; }; - interface ROSRTMinorServoCabinetStatus: PSRTMinorServoCabinetStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoCabinetStatusSeq alarm_on; readonly attribute SRTMinorServoCabinetStatusSeq alarm_off; }; - interface RWSRTMinorServoCabinetStatus: PSRTMinorServoCabinetStatus { ACSErr::Completion set_sync(in SRTMinorServoCabinetStatus value); void set_async(in SRTMinorServoCabinetStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoCabinetStatus value);}; - - - enum SRTMinorServoOperativeMode - { - OPERATIVE_MODE_UNKNOWN, - OPERATIVE_MODE_SETUP, - OPERATIVE_MODE_STOW, - OPERATIVE_MODE_STOP, - OPERATIVE_MODE_PRESET, - OPERATIVE_MODE_PROGRAMTRACK - }; - - - typedef sequence<SRTMinorServoOperativeMode> SRTMinorServoOperativeModeSeq; interface CBSRTMinorServoOperativeMode : ACS::Callback { oneway void working(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoOperativeMode SRTMinorServoOperativeModeCB; interface AlarmSRTMinorServoOperativeMode : ACS::Callback { oneway void alarm_raised(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoOperativeMode value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoOperativeMode SRTMinorServoOperativeModeAlarm; interface PSRTMinorServoOperativeMode: ACS::TypelessProperty { SRTMinorServoOperativeMode get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoOperativeModeSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoOperativeMode default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoOperativeModeSeq allStates; }; - interface ROSRTMinorServoOperativeMode: PSRTMinorServoOperativeMode{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoOperativeModeSeq alarm_on; readonly attribute SRTMinorServoOperativeModeSeq alarm_off; }; - interface RWSRTMinorServoOperativeMode: PSRTMinorServoOperativeMode { ACSErr::Completion set_sync(in SRTMinorServoOperativeMode value); void set_async(in SRTMinorServoOperativeMode value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoOperativeMode value);}; - - - enum SRTMinorServoBossStatus - { - BOSS_STATUS_UNCONFIGURED, - BOSS_STATUS_SETUP_IN_PROGRESS, - BOSS_STATUS_PARK_IN_PROGRESS, - BOSS_STATUS_ERROR, - BOSS_STATUS_CONFIGURED - }; - - - typedef sequence<SRTMinorServoBossStatus> SRTMinorServoBossStatusSeq; interface CBSRTMinorServoBossStatus : ACS::Callback { oneway void working(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void done(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; -typedef CBSRTMinorServoBossStatus SRTMinorServoBossStatusCB; interface AlarmSRTMinorServoBossStatus : ACS::Callback { oneway void alarm_raised(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); oneway void alarm_cleared(in SRTMinorServoBossStatus value, in ACSErr::Completion c, in ACS::CBDescOut desc); }; - typedef AlarmSRTMinorServoBossStatus SRTMinorServoBossStatusAlarm; interface PSRTMinorServoBossStatus: ACS::TypelessProperty { SRTMinorServoBossStatus get_sync(out ACSErr::Completion c); void get_async(in ACS::CBpattern cb, in ACS::CBDescIn desc); long get_history(in long n_last_values, out SRTMinorServoBossStatusSeq vs, out ACS::TimeSeq ts); ACS::Monitorpattern create_monitor(in ACS::CBpattern cb, in ACS::CBDescIn desc); ACS::Monitor create_postponed_monitor (in ACS::Time start_time, in ACS::CBpattern cb, in ACS::CBDescIn desc); readonly attribute ACS::TimeInterval default_timer_trigger; readonly attribute ACS::TimeInterval min_timer_trigger; readonly attribute SRTMinorServoBossStatus default_value; readonly attribute ACS::stringSeq statesDescription; readonly attribute ACS::ConditionSeq condition; readonly attribute SRTMinorServoBossStatusSeq allStates; }; - interface ROSRTMinorServoBossStatus: PSRTMinorServoBossStatus{ ACS::Subscription new_subscription_AlarmEnum(in ACS::Alarmpattern cb, in ACS::CBDescIn desc); readonly attribute SRTMinorServoBossStatusSeq alarm_on; readonly attribute SRTMinorServoBossStatusSeq alarm_off; }; - interface RWSRTMinorServoBossStatus: PSRTMinorServoBossStatus { ACSErr::Completion set_sync(in SRTMinorServoBossStatus value); void set_async(in SRTMinorServoBossStatus value, in ACS::CBvoid cb, in ACS::CBDescIn desc); void set_nonblocking(in SRTMinorServoBossStatus value);}; - -}; - -#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl index 01ab82321..342b25b8b 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -6,6 +6,10 @@ #include <baci.idl> #include <enumpropMACRO.idl> +#include <ManagmentDefinitions.idl> +#include <MinorServoDefinitions.idl> +#include <ComponentErrors.idl> +#include <MinorServoErrors.idl> #pragma prefix "alma" @@ -70,15 +74,16 @@ module MinorServo ACS_ENUM(SRTMinorServoOperativeMode); - enum SRTMinorServoBossStatus + enum SRTMinorServoMotionStatus { - BOSS_STATUS_UNCONFIGURED, - BOSS_STATUS_SETUP_IN_PROGRESS, - BOSS_STATUS_PARK_IN_PROGRESS, - BOSS_STATUS_ERROR, - BOSS_STATUS_CONFIGURED + MOTION_STATUS_UNCONFIGURED, + MOTION_STATUS_CONFIGURING, + MOTION_STATUS_PARK, + MOTION_STATUS_ERROR, + MOTION_STATUS_CONFIGURED, + MOTION_STATUS_TRACKING }; - ACS_ENUM(SRTMinorServoBossStatus); + ACS_ENUM(SRTMinorServoMotionStatus); }; #endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/src/Makefile b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile index c9465cced..9cac56365 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/src/Makefile +++ b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile @@ -26,10 +26,9 @@ CSOURCENAMES = \ # IDL_FILES = SRTMinorServoBoss SRTMinorServo SRTMinorServoCommon -SRTMinorServoCommonStubs_LIBS = baciStubs -SRTMinorServoStubs_LIBS = baciStubs SRTMinorServoCommonStubs -SRTMinorServoBossStubs_LIBS = baciStubs SRTMinorServoCommonStubs ComponentErrorsStubs \ - MinorServoErrorsStubs AntennaDefinitionsStubs MinorServoDefinitionsStubs +SRTMinorServoCommonStubs_LIBS = baciStubs ManagmentDefinitionsStubs MinorServoDefinitionsStubs ComponentErrorsStubs MinorServoErrorsStubs +SRTMinorServoStubs_LIBS = SRTMinorServoCommonStubs +SRTMinorServoBossStubs_LIBS = SRTMinorServoCommonStubs MinorServoBossStubs # # INCLUDE STANDARDS diff --git a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml index 2fb1a7429..ca305c532 100644 --- a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>35</select> + <select>34</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -118,15 +118,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>MinorServoBossContainer</name> - <type>cpp</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>MinorServoContainer</name> <type>cpp</type> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index 73b8de58c..47490c9cb 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -9,7 +9,7 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xi="http://www.w3.org/2001/XInclude" - xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified"> @@ -22,7 +22,7 @@ <xs:restriction base="baci:ROEnum"> <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OK,WARNING,OFF" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DRIVE_CABINET_OK" /> </xs:restriction> </xs:complexContent> </xs:complexType> @@ -32,7 +32,7 @@ <xs:restriction base="baci:ROEnum"> <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> <xs:attribute name="graph_max" type="xs:int" use="optional" default="5" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="UNKNOWN_MODE,SETUP,STOW,STOP,PRESET,PROGRAMTRACK" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OPERATIVE_MODE_UNKNOWN" /> </xs:restriction> </xs:complexContent> </xs:complexType> @@ -41,14 +41,19 @@ <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:sequence> - <xs:element name="enabled" type="baci:ROboolean" /> + <xs:element name="enabled" type="mng:BooleanType" /> <xs:element name="drive_cabinet_status" type="SRTMinorServoCabinetStatusType" /> - <xs:element name="block" type="baci:ROboolean" /> + <xs:element name="block" type="mng:BooleanType" /> <xs:element name="operative_mode" type="SRTMinorServoOperativeModeType" /> - <xs:element name="axes_enabled" type="baci:RObooleanSeq" /> + <xs:element name="physical_axes_enabled" type="baci:RObooleanSeq" /> <xs:element name="physical_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_axes" type="baci:ROlong" /> <xs:element name="virtual_positions" type="baci:ROdoubleSeq" /> <xs:element name="virtual_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_user_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_system_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="in_use" type="mng:BooleanType" /> + <xs:element name="current_setup" type="baci:ROstring" /> </xs:sequence> <xs:attribute name="physical_axes" type="xs:unsignedShort" use="required" /> <xs:attribute name="virtual_axes" type="xs:unsignedShort" use="required" /> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd index 7b8fb9fe6..2484bce95 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd @@ -8,7 +8,7 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xi="http://www.w3.org/2001/XInclude" - xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified"> @@ -21,8 +21,7 @@ <xs:restriction base="baci:ROEnum"> <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> <xs:attribute name="graph_max" type="xs:int" use="optional" default="13" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" - default="UNKNOWN_CONFIGURATION,PRIMARY,GREGORIAN_1,GREGORIAN_2,GREGORIAN_3,GREGORIAN_4,GREGORIAN_5,GREGORIAN_6,GREGORIAN_7,GREGORIAN_8,BWG_1,BWG_2,BWG_3,BWG_4" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONFIGURATION_UNKNOWN" /> </xs:restriction> </xs:complexContent> </xs:complexType> @@ -32,7 +31,7 @@ <xs:restriction base="baci:ROEnum"> <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="UNKNOWN_STATUS,OPEN,CLOSED" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="COVER_STATUS_UNKNOWN" /> </xs:restriction> </xs:complexContent> </xs:complexType> @@ -42,7 +41,7 @@ <xs:restriction base="baci:ROEnum"> <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> <xs:attribute name="graph_max" type="xs:int" use="optional" default="1" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DISCOS,VBRAIN" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONTROL_DISCOS" /> </xs:restriction> </xs:complexContent> </xs:complexType> @@ -51,17 +50,30 @@ <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:sequence> + <xs:element name="status" type="mng:SystemStatusType" /> + <xs:element name="actualSetup" type="baci:ROstring" /> + <xs:element name="motionInfo" type="baci:ROstring" /> + <xs:element name="ready" type="mng:BooleanType" /> + <xs:element name="starting" type="mng:BooleanType" /> + <xs:element name="asConfiguration" type="mng:BooleanType" /> + <xs:element name="elevationTrack" type="mng:BooleanType" /> + <xs:element name="scanActive" type="mng:BooleanType" /> + <xs:element name="scanning" type="mng:BooleanType" /> + <xs:element name="tracking" type="mng:BooleanType" /> + <xs:element name="current_configuration" type="SRTMinorServoFocalConfigurationType" /> - <xs:element name="simulation_enabled" type="baci:ROboolean" /> + <xs:element name="simulation_enabled" type="mng:BooleanType" /> <xs:element name="plc_time" type="baci:ROdouble" /> <xs:element name="plc_version" type="baci:ROstring" /> <xs:element name="control" type="SRTMinorServoControlStatusType" /> - <xs:element name="power" type="baci:ROboolean" /> - <xs:element name="emergency" type="baci:ROboolean" /> + <xs:element name="power" type="mng:BooleanType" /> + <xs:element name="emergency" type="mng:BooleanType" /> <xs:element name="gregorian_cover" type="SRTMinorServoGregorianCoverStatusType" /> <xs:element name="last_executed_command" type="baci:ROdouble" /> </xs:sequence> - <xs:attribute name="status_thread_period" type="xs:double" use="required"/> + <xs:attribute name="status_thread_period" type="xs:double" use="required" /> + <xs:attribute name="active_surface_configuration" type="xs:string" use="required" /> + <xs:attribute name="elevation_tracking_enabled" type="xs:string" use="required" /> </xs:extension> </xs:complexContent> </xs:complexType> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd index 7dc0034ef..858936df2 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd @@ -23,19 +23,27 @@ <xs:complexType name="SRTMinorServoLookupTableType"> <xs:sequence> - <xs:element name="Primario" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano1" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano2" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano3" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano4" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano5" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano6" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano7" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="Gregoriano8" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="BWG1" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="BWG2" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="BWG3" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="BWG4" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="LLP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="PPP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="PLP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="HHP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="XKP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="KKG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="KKG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="WWG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="WWG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="QQG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="QQG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="TRI" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="TRI_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="MISTRAL" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="MISTRAL_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCB" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <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:sequence> </xs:complexType> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd index accb3d172..46c9f8a9e 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd @@ -22,7 +22,7 @@ <xs:complexType name="SRTMinorServoPropertiesType"> <xs:sequence> - <xs:element name="axes_enabled" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="physical_axes_enabled" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="physical_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="virtual_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="virtual_offsets" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> diff --git a/SRT/Servers/SRTMinorServo/include/Common.h b/SRT/Servers/SRTMinorServo/include/Common.h new file mode 100644 index 000000000..6453273e9 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/Common.h @@ -0,0 +1,73 @@ +#ifndef __SRTMINORSERVOCOMMON_H__ +#define __SRTMINORSERVOCOMMON_H__ + +#include "SuppressWarnings.h" +#include <SRTMinorServoCommonS.h> +#include <boost/bimap.hpp> +#include <boost/assign.hpp> + + +namespace MinorServo +{ + // The second value of the pair indicates whether the configuration has a ASACTIVE double configuration + using DiscosConfigurationNameTableType = std::map<std::string, std::pair<MinorServo::SRTMinorServoFocalConfiguration, bool> >; + const DiscosConfigurationNameTableType DiscosConfigurationNameTable = + { + {"LLP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, + {"PPP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, + {"PLP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, + {"HHP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, + {"XKP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, + {"CCG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN1, true )}, + {"KKG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN2, true )}, + {"WWG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN3, true )}, + {"QQG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN4, true )}, + {"TRI", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN5, true )}, + {"MISTRAL", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN6, true )}, + {"CCB", std::make_pair(MinorServo::CONFIGURATION_BWG1, true )}, + {"XB", std::make_pair(MinorServo::CONFIGURATION_BWG3, true )}, + }; + + using LDOConfigurationNameTableType = boost::bimap<MinorServo::SRTMinorServoFocalConfiguration, std::string>; + const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of< LDOConfigurationNameTableType::relation > + (MinorServo::CONFIGURATION_PRIMARY, "Primario") + (MinorServo::CONFIGURATION_GREGORIAN1, "Gregoriano 1") + (MinorServo::CONFIGURATION_GREGORIAN2, "Gregoriano 2") + (MinorServo::CONFIGURATION_GREGORIAN3, "Gregoriano 3") + (MinorServo::CONFIGURATION_GREGORIAN4, "Gregoriano 4") + (MinorServo::CONFIGURATION_GREGORIAN5, "Gregoriano 5") + (MinorServo::CONFIGURATION_GREGORIAN6, "Gregoriano 6") + (MinorServo::CONFIGURATION_GREGORIAN7, "Gregoriano 7") + (MinorServo::CONFIGURATION_GREGORIAN8, "Gregoriano 8") + (MinorServo::CONFIGURATION_BWG1, "BWG1") + (MinorServo::CONFIGURATION_BWG2, "BWG2") + (MinorServo::CONFIGURATION_BWG3, "BWG3") + (MinorServo::CONFIGURATION_BWG4, "BWG4"); + + using LDOConfigurationIDTableType = boost::bimap<MinorServo::SRTMinorServoFocalConfiguration, unsigned int>; + const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of< LDOConfigurationIDTableType::relation > + (MinorServo::CONFIGURATION_UNKNOWN, 0) + (MinorServo::CONFIGURATION_PRIMARY, 1) + (MinorServo::CONFIGURATION_GREGORIAN1, 11) + (MinorServo::CONFIGURATION_GREGORIAN2, 12) + (MinorServo::CONFIGURATION_GREGORIAN3, 13) + (MinorServo::CONFIGURATION_GREGORIAN4, 14) + (MinorServo::CONFIGURATION_GREGORIAN5, 15) + (MinorServo::CONFIGURATION_GREGORIAN6, 16) + (MinorServo::CONFIGURATION_GREGORIAN7, 17) + (MinorServo::CONFIGURATION_GREGORIAN8, 18) + (MinorServo::CONFIGURATION_BWG1, 21) + (MinorServo::CONFIGURATION_BWG2, 22) + (MinorServo::CONFIGURATION_BWG3, 23) + (MinorServo::CONFIGURATION_BWG4, 24); + + const std::vector<std::string> ServoOrder = + { + "PFP", + "SRP", + "GFR", + "M3R", + }; +} + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index dd4c3a799..4f6be5359 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -5,7 +5,7 @@ /* Giuseppe Carboni <giuseppe.carboni@inaf.it> 20/09/2023 */ /**********************************************************/ -#include "SuppressWarnings.h" +#include "Common.h" #include <type_traits> #include <baciDevIO.h> #include <IRA> @@ -25,7 +25,7 @@ struct SRTMinorServoDevIOInfo /** -i * This template class is derived from DevIO and it is used by the almost all attributes of the SRT Minor Servos components. + * This template class is derived from DevIO and it is used by the almost all attributes of the SRT Minor Servos components. * The associeted property can be selected at construction time and cannot be changed anymore. * @author Giuseppe Carboni <giuseppe.carboni@inaf.it>, */ @@ -42,7 +42,7 @@ public: // The following expression will produce an error at compile time if the T class type is not one of the following static_assert( std::disjunction< - std::is_same<T, CORBA::Boolean>, + std::is_same<T, Management::TBoolean>, std::is_same<T, CORBA::Double>, std::is_same<T, ACE_CString>, std::is_same<T, ACS::booleanSeq>, @@ -80,115 +80,128 @@ public: /** * Used to read the property value. * @throw ComponentErrors::PropertyError - * @arg \c ComponentErrors::Timeout</a> - * @arg \c AntennaErrors::Connection</a> - * @arg \c ComponentErrors::SocketError * @param timestamp epoch when the operation completes */ T read(ACS::Time& timestamp) { - if(m_secure_area) + try { - IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> data = m_secure_area->Get(); - - try + if(m_secure_area) { - if constexpr(std::is_same<T, CORBA::Boolean>::value) - { - unsigned int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); - m_value = (value == 1) ? true : false; - } - else if constexpr(std::is_same<T, CORBA::Double>::value) + IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> data = m_secure_area->Get(); + + try { - auto object = data->at(m_prefix + m_property_fields[0]); - if(object.index() == 0) + if constexpr(std::is_same<T, Management::TBoolean>::value) { - m_value = double(std::get<long>(object)); + unsigned int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); + m_value = (value == 1) ? Management::MNG_TRUE : Management::MNG_FALSE; } - else if(object.index() == 1) + else if constexpr(std::is_same<T, CORBA::Double>::value) { - m_value = std::get<double>(object); + auto object = data->at(m_prefix + m_property_fields[0]); + if(object.index() == 0) + { + m_value = double(std::get<long>(object)); + } + else if(object.index() == 1) + { + m_value = std::get<double>(object); + } } - } - else if constexpr(std::is_same<T, ACE_CString>::value) - { - auto object = data->at(m_prefix + m_property_fields[0]); - if(object.index() == 0) + else if constexpr(std::is_same<T, ACE_CString>::value) { - m_value = std::to_string(std::get<long>(object)).c_str(); + auto object = data->at(m_prefix + m_property_fields[0]); + if(object.index() == 0) + { + m_value = std::to_string(std::get<long>(object)).c_str(); + } + else if(object.index() == 1) + { + m_value = std::to_string(std::get<double>(object)).c_str(); + } + else + { + m_value = std::get<std::string>(object).c_str(); + } } - else if(object.index() == 1) + else if constexpr(std::is_same<T, ACS::booleanSeq>::value) { - m_value = std::to_string(std::get<double>(object)).c_str(); + m_value.length(m_property_fields.size()); + + for(size_t i = 0; i < m_property_fields.size(); i++) + { + m_value[i] = std::get<long>(data->at(m_prefix + m_property_fields[i])); + } } - else + else if constexpr(std::is_same<T, ACS::doubleSeq>::value) { - m_value = std::get<std::string>(object).c_str(); - } - } - else if constexpr(std::is_same<T, ACS::booleanSeq>::value) - { - m_value.length(m_property_fields.size()); + m_value.length(m_property_fields.size()); - for(size_t i = 0; i < m_property_fields.size(); i++) + for(size_t i = 0; i < m_property_fields.size(); i++) + { + m_value[i] = std::get<double>(data->at(m_prefix + m_property_fields[i])); + } + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>::value) { - m_value[i] = std::get<long>(data->at(m_prefix + m_property_fields[i])); + int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); + m_value = MinorServo::LDOConfigurationIDTable.right.at(value); } - } - else if constexpr(std::is_same<T, ACS::doubleSeq>::value) - { - m_value.length(m_property_fields.size()); - - for(size_t i = 0; i < m_property_fields.size(); i++) + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoControlStatus>::value) { - m_value[i] = std::get<double>(data->at(m_prefix + m_property_fields[i])); + m_value = MinorServo::SRTMinorServoControlStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); } - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>::value) - { - int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); - if(value > 20) + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>::value) { - //BWG - value -= 11; + m_value = MinorServo::SRTMinorServoGregorianCoverStatus(std::get<long>(data->at(m_prefix + m_property_fields[0]))); } - else if(value > 10) + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>::value) { - //Gregorian - value -= 9; + m_value = MinorServo::SRTMinorServoCabinetStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); + } + else if constexpr(std::is_same<T, MinorServo::SRTMinorServoOperativeMode>::value) + { + m_value = MinorServo::SRTMinorServoOperativeMode(std::get<long>(data->at(m_prefix + m_property_fields[0])) / 10); + } + else + { + // This should never happen thanks to the static_assert in the constructor + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Unknown property type!"); + throw impl; } - - m_value = MinorServo::SRTMinorServoFocalConfiguration(value+1); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoControlStatus>::value) - { - m_value = MinorServo::SRTMinorServoControlStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>::value) - { - m_value = MinorServo::SRTMinorServoGregorianCoverStatus(std::get<long>(data->at(m_prefix + m_property_fields[0]))); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>::value) - { - m_value = MinorServo::SRTMinorServoCabinetStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoOperativeMode>::value) + catch(std::out_of_range& ex) { - m_value = MinorServo::SRTMinorServoOperativeMode(std::get<long>(data->at(m_prefix + m_property_fields[0])) / 10); + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Property is missing from the map!"); } - else + catch(std::bad_variant_access& ex) { - std::cout << "Unknown type" << std::endl; + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Attempt to access the property with the wrong type!"); } } - catch(ACSErr::ACSbaseExImpl& ex) + else { - _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, dummy, ex, "MSDevIO::read()"); - dummy.setPropertyName(m_property_name.c_str()); - dummy.setReason("Property could not be read"); - throw dummy; + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("SecureArea not ready!"); + throw impl; } } + catch(ACSErr::ACSbaseExImpl& ex) + { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Property could not be read!"); + throw impl; + } + timestamp = getTimeStamp(); //completion time return m_value; } @@ -210,4 +223,149 @@ private: std::vector<std::string> m_property_fields; }; + +template <class C, typename A> class MSGenericDevIO : public DevIO<C> +{ +public: + MSGenericDevIO(A* value) + { + // The following expression will produce an error at compile time if the T class type is not one of the following + static_assert( + std::disjunction< + std::is_same<C, Management::TSystemStatus>, + std::is_same<C, Management::TBoolean>, + std::is_same<C, ACE_CString>, + std::is_same<C, CORBA::Long>, + std::is_same<C, ACS::doubleSeq> + >::value, + "Not accepted MSDevIO type!" + ); + + // The following expressions will produce an error at compile time if the provided A argument class type is not recognized + static_assert( + std::disjunction< + std::negation<std::is_same<C, ACE_CString> >, + std::conjunction< + std::is_same<C, ACE_CString>, + std::disjunction< + std::is_same<A, std::string>, + std::is_same<A, std::atomic<MinorServo::SRTMinorServoMotionStatus> > + > + > + >::value, + "Not accepted argument type!" + ); + + static_assert( + std::disjunction< + std::negation<std::is_same<C, ACS::doubleSeq> >, + std::conjunction< + std::is_same<C, ACS::doubleSeq>, + std::is_same<A, std::vector<double> > + > + >::value, + "Not accepted argument type!" + ); + + m_value = value; + } + + /** + * Destructor + */ + ~MSGenericDevIO() + { + } + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + return false; + } + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes + */ + C read(ACS::Time& timestamp) + { + timestamp = getTimeStamp(); //completion time + + if constexpr(std::is_same<A, std::atomic<MinorServo::SRTMinorServoMotionStatus> >::value) // Motion status + { + std::string motion_status; + + switch(*m_value) + { + case MinorServo::MOTION_STATUS_UNCONFIGURED: + { + motion_status = "Not configured"; + break; + } + case MinorServo::MOTION_STATUS_CONFIGURING: + { + motion_status = "Configuring..."; + break; + } + case MinorServo::MOTION_STATUS_PARK: + { + motion_status = "Parked"; + break; + } + case MinorServo::MOTION_STATUS_ERROR: + { + motion_status = "Error"; + break; + } + case MinorServo::MOTION_STATUS_CONFIGURED: + { + motion_status = "Elevation Track Mode Disabled"; + break; + } + case MinorServo::MOTION_STATUS_TRACKING: + { + motion_status = "Elevation Track Mode"; + break; + } + } + + return motion_status.c_str(); + } + else if constexpr(std::is_same<A, std::string>::value) + { + return m_value->c_str(); + } + else if constexpr(std::is_same<C, ACS::doubleSeq>::value) + { + ACS::doubleSeq_var sequence = new ACS::doubleSeq; + sequence->length(m_value->size()); + + for(size_t i = 0; i < m_value->size(); i++) + { + sequence[i] = m_value->operator[](i); + } + + return sequence; + } + else + { + return *m_value; + } + } + + /** + * It writes values into controller. Unused because the properties are read-only. + */ + void write(const C& value, ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + return; + } + +private: + A* m_value; +}; + #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index bae147497..0801e2123 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> #include <baciSmartPropertyPointer.h> #include <baciROboolean.h> @@ -15,7 +15,7 @@ #include <enumpropROImpl.h> #include <SRTMinorServoBossS.h> #include <SRTMinorServoS.h> -#include <boost/bimap.hpp> +#include <ManagmentDefinitionsS.h> #include "ManagementErrors.h" #include "MinorServoErrors.h" #include "SRTMinorServoSocket.h" @@ -23,12 +23,12 @@ #include "SRTMinorServoBossImpl.h" #include "SRTMinorServoSetupThread.h" #include "SRTMinorServoParkThread.h" +#include "SRTMinorServoTrackingThread.h" class SRTMinorServoBossImpl; class SRTMinorServoSetupThread; class SRTMinorServoParkThread; - -using SRTMinorServoFocalConfigurationsTable = boost::bimap<std::string, MinorServo::SRTMinorServoFocalConfiguration>; +class SRTMinorServoTrackingThread; class SRTMinorServoBossCore @@ -37,6 +37,7 @@ friend class SRTMinorServoBossImpl; friend class SRTMinorServoStatusThread; friend class SRTMinorServoSetupThread; friend class SRTMinorServoParkThread; +friend class SRTMinorServoTrackingThread; public: SRTMinorServoBossCore(SRTMinorServoBossImpl* component); @@ -46,33 +47,55 @@ private: void setup(std::string configuration); void park(); void status(); - bool checkControl(); + void checkControl(); + void checkEmergency(); + void setElevationTracking(std::string configuration); + void setASConfiguration(std::string configuration); + void preset(double elevation); + + void clearUserOffsets(std::string servo_name); + void setUserOffset(std::string servo_axis_name, double offset); + std::vector<double> getUserOffsets(); + void clearSystemOffsets(std::string servo_name); + void setSystemOffset(std::string servo_axis_name, double offset); + std::vector<double> getSystemOffsets(); + + void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + + bool checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters); + void startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + void closeScan(ACS::Time& close_time); + + SRTMinorServoBossImpl* m_component; SRTMinorServoSocketConfiguration* m_socket_configuration; SRTMinorServoSocket* m_socket; SRTMinorServoSetupThread* m_setup_thread; SRTMinorServoParkThread* m_park_thread; - - SRTMinorServoAnswerMap m_status; - - SRTMinorServoFocalConfigurationsTable m_focal_configurations_table; + SRTMinorServoTrackingThread* m_tracking_thread; IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_secure_area; + SRTMinorServoAnswerMap m_status; - MinorServo::SRTMinorServoFocalConfiguration m_requested_configuration; - MinorServo::SRTMinorServoFocalConfiguration m_current_configuration; - - MinorServo::SRTGenericMinorServo_var m_GFR; - MinorServo::SRTProgramTrackMinorServo_var m_SRP; - - MinorServo::SRTMinorServoBossStatus m_boss_status; - - SRTMinorServoBossImpl* m_component; - - bool m_ready; - - std::vector<MinorServo::SRTBaseMinorServo_ptr> m_servos; + std::map<std::string, MinorServo::SRTBaseMinorServo_ptr> m_servos; + std::map<std::string, MinorServo::SRTProgramTrackMinorServo_ptr> m_tracking_servos; + + std::atomic<MinorServo::SRTMinorServoMotionStatus> m_motion_status; + std::string m_commanded_setup; + std::atomic<MinorServo::SRTMinorServoFocalConfiguration> m_commanded_configuration; + std::atomic<MinorServo::SRTMinorServoFocalConfiguration> m_current_configuration; + + std::atomic<Management::TSystemStatus> m_subsystem_status; + std::string m_actual_setup; + std::atomic<Management::TBoolean> m_ready; + std::atomic<Management::TBoolean> m_starting; + std::atomic<Management::TBoolean> m_as_configuration; + std::atomic<Management::TBoolean> m_elevation_tracking; + std::atomic<Management::TBoolean> m_elevation_tracking_enabled; + std::atomic<Management::TBoolean> m_scan_active; + std::atomic<Management::TBoolean> m_scanning; + std::atomic<Management::TBoolean> m_tracking; }; #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index 7aca8cafa..fa9a5fd13 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -6,15 +6,14 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> #include <baciCharacteristicComponentImpl.h> #include <baciSmartPropertyPointer.h> -#include <baciROboolean.h> #include <baciROdouble.h> #include <baciROstring.h> #include <enumpropROImpl.h> -#include <SRTMinorServoBossS.h> +#include <MinorServoBossS.h> #include <SRTMinorServoS.h> #include <SP_parser.h> #include "ManagementErrors.h" @@ -23,11 +22,11 @@ #include "SRTMinorServoStatusThread.h" #include "MSDevIOs.h" -#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTMinorServoBossImpl::PROPERTYNAME()\ +#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTMinorServoBossImpl::PROPERTYNAME() \ { \ - if (PROPERTY==0) return TYPE::_nil(); \ - TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ - return tmp._retn(); \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ } // Forward classes definitions @@ -51,41 +50,87 @@ public: // Parser methods virtual void setup(const char*); virtual void park(); - virtual void setElevationTracking(const char*); - virtual void setASConfiguration(const char*); - virtual void setOffsets(const char*, const double&); + virtual void setElevationTracking(const char* elevation_tracking); + virtual void setASConfiguration(const char* as_configuration); + virtual void setOffsets(const char* axis_name, const double& offset); virtual void clearOffsets(); + CORBA::Boolean command(const char*, CORBA::String_out); // MinorServoBoss interface methods + virtual CORBA::Boolean isElevationTrackingEn(); + virtual CORBA::Boolean isElevationTracking(); + virtual CORBA::Boolean isTracking(); + virtual CORBA::Boolean isStarting(); + virtual CORBA::Boolean isASConfiguration(); + virtual CORBA::Boolean isParking(); + virtual CORBA::Boolean isReady(); + virtual CORBA::Boolean isScanning(); + virtual CORBA::Boolean isScanActive(); + virtual char * getActualSetup(); + virtual char * getCommandedSetup(); + virtual CORBA::Double getCentralScanPosition(); + virtual void clearUserOffset(const char* servo_name); + virtual void setUserOffset(const char* servo_axis_name, CORBA::Double offset); + virtual ACS::doubleSeq* getUserOffset(); + virtual void clearSystemOffset(const char* servo_name); + virtual void setSystemOffset(const char* servo_axis_name, CORBA::Double offset); + virtual ACS::doubleSeq* getSystemOffset(); + virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + virtual char* getScanAxis(); + virtual ACS::doubleSeq* getAxesPosition(ACS::Time); + virtual CORBA::Boolean checkScan(const ACS::Time, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&, MinorServo::TRunTimeParameters_out); virtual void startScan(ACS::Time&, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&); virtual void closeScan(ACS::Time&); - CORBA::Boolean command(const char*, CORBA::String_out); + virtual void preset(double elevation); // Properties methods + virtual Management::ROTSystemStatus_ptr status(); + virtual Management::ROTBoolean_ptr ready(); + virtual ACS::ROstring_ptr actualSetup(); + virtual ACS::ROstring_ptr motionInfo(); + virtual Management::ROTBoolean_ptr starting(); + virtual Management::ROTBoolean_ptr asConfiguration(); + virtual Management::ROTBoolean_ptr elevationTrack(); + virtual Management::ROTBoolean_ptr scanActive(); + virtual Management::ROTBoolean_ptr scanning(); + virtual Management::ROTBoolean_ptr tracking(); + virtual MinorServo::ROSRTMinorServoFocalConfiguration_ptr current_configuration(); - virtual ACS::ROboolean_ptr simulation_enabled(); + virtual Management::ROTBoolean_ptr simulation_enabled(); virtual ACS::ROdouble_ptr plc_time(); virtual ACS::ROstring_ptr plc_version(); virtual MinorServo::ROSRTMinorServoControlStatus_ptr control(); - virtual ACS::ROboolean_ptr power(); - virtual ACS::ROboolean_ptr emergency(); + virtual Management::ROTBoolean_ptr power(); + virtual Management::ROTBoolean_ptr emergency(); virtual MinorServo::ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); virtual ACS::ROdouble_ptr last_executed_command(); + private: SRTMinorServoBossCore* m_core; SRTMinorServoStatusThread* m_status_thread; SimpleParser::CParser<SRTMinorServoBossImpl> *m_parser; // Properties pointers + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus> > m_status_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_ready_ptr; + baci::SmartPropertyPointer<baci::ROstring> m_actual_setup_ptr; + baci::SmartPropertyPointer<baci::ROstring> m_motion_info_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_starting_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_as_configuration_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_elevation_tracking_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_scan_active_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_scanning_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_tracking_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration> > m_current_configuration_ptr; - baci::SmartPropertyPointer<baci::ROboolean> m_simulation_enabled_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_simulation_enabled_ptr; baci::SmartPropertyPointer<baci::ROdouble> m_plc_time_ptr; baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus> > m_control_ptr; - baci::SmartPropertyPointer<baci::ROboolean> m_power_ptr; - baci::SmartPropertyPointer<baci::ROboolean> m_emergency_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_power_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_emergency_ptr; baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus> > m_gregorian_cover_ptr; baci::SmartPropertyPointer<baci::ROdouble> m_last_executed_command_ptr; }; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index b3910c5ea..679e33440 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -7,18 +7,19 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SuppressWarnings.h" +#include "Common.h" #include <regex> #include <IRA> #include <baciCharacteristicComponentImpl.h> #include <baciSmartPropertyPointer.h> #include <baciROlong.h> -#include <baciROboolean.h> #include <baciRObooleanSeq.h> #include <baciROdoubleSeq.h> +#include <baciROstring.h> #include <enumpropROImpl.h> #include <SRTMinorServoS.h> #include <maciACSComponentDefines.h> +#include <ManagmentDefinitionsS.h> #include "ManagementErrors.h" #include "MinorServoErrors.h" #include "SRTMinorServoSocket.h" @@ -50,19 +51,33 @@ public: virtual void stop(); virtual void preset(const ACS::doubleSeq& coordinates); virtual void offset(const ACS::doubleSeq& offsets); - virtual void setup(const char* configuration_name); - - virtual ACS::ROboolean_ptr enabled(); + virtual void setup(const char* configuration_name = ""); + virtual ACS::doubleSeq* calcCoordinates(double elevation); + + virtual ACS::doubleSeq* getUserOffsets(); + virtual void setUserOffset(const char* axis_name, CORBA::Double offset); + virtual void clearUserOffsets(); + virtual ACS::doubleSeq* getSystemOffsets(); + virtual void setSystemOffset(const char* axis_name, CORBA::Double offset); + virtual void clearSystemOffsets(); + virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + + virtual Management::ROTBoolean_ptr enabled(); virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); - virtual ACS::ROboolean_ptr block(); + virtual Management::ROTBoolean_ptr block(); virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode(); - virtual ACS::RObooleanSeq_ptr axes_enabled(); + virtual ACS::RObooleanSeq_ptr physical_axes_enabled(); virtual ACS::ROdoubleSeq_ptr physical_positions(); + virtual ACS::ROlong_ptr virtual_axes(); virtual ACS::ROdoubleSeq_ptr virtual_positions(); virtual ACS::ROdoubleSeq_ptr virtual_offsets(); + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets(); + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets(); + virtual Management::ROTBoolean_ptr in_use(); + virtual ACS::ROstring_ptr current_setup(); protected: - unsigned int m_physical_axes, m_virtual_axes; + std::atomic<unsigned int> m_physical_axes, m_virtual_axes; SRTMinorServoSocket* m_socket; std::string m_servo_name; @@ -72,21 +87,31 @@ private: SRTMinorServoAnswerMap m_status; IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_securearea; + std::vector<double> m_user_offsets; + std::vector<double> m_system_offsets; + std::vector<std::string> m_virtual_axes_names; + std::vector<std::string> m_virtual_axes_units; SRTMinorServoLookupTable m_current_lookup_table; - baci::SmartPropertyPointer<baci::ROboolean> m_enabled_ptr; + std::atomic<Management::TBoolean> m_in_use; + std::string m_current_setup; + + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_enabled_ptr; baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus> > m_drive_cabinet_status_ptr; - baci::SmartPropertyPointer<baci::ROboolean> m_block_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_block_ptr; baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode> > m_operative_mode_ptr; - baci::SmartPropertyPointer<baci::RObooleanSeq> m_axes_enabled_ptr; + baci::SmartPropertyPointer<baci::RObooleanSeq> m_physical_axes_enabled_ptr; baci::SmartPropertyPointer<baci::ROdoubleSeq> m_physical_positions_ptr; + baci::SmartPropertyPointer<baci::ROlong> m_virtual_axes_ptr; baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_offsets_ptr; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_user_offsets_ptr; + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_system_offsets_ptr; + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_in_use_ptr; + baci::SmartPropertyPointer<baci::ROstring> m_current_setup_ptr; - std::vector<std::string> getPropertiesTable(std::string properties_name); - SRTMinorServoLookupTable getLookupTable(std::string configuration_name); - + std::vector<std::string> getPropertiesTable(const std::string& properties_name); void checkErrors(); }; @@ -97,21 +122,34 @@ public: SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); ~SRTGenericMinorServoImpl(); - void status() { SRTBaseMinorServoImpl::status(); }; - void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; - void stop() { SRTBaseMinorServoImpl::stop(); }; - void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; - void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; - void setup(const char* configuration_name) { SRTBaseMinorServoImpl::setup(configuration_name); }; - - virtual ACS::ROboolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; - virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; - virtual ACS::ROboolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; - virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; - virtual ACS::RObooleanSeq_ptr axes_enabled() { return SRTBaseMinorServoImpl::axes_enabled(); }; - virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; + void status() { SRTBaseMinorServoImpl::status(); }; + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; + void stop() { SRTBaseMinorServoImpl::stop(); }; + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; + void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; + void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); }; + virtual ACS::doubleSeq* calcCoordinates(double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }; + virtual ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }; + virtual void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }; + virtual void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }; + virtual ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }; + virtual void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }; + virtual void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }; + virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) { SRTBaseMinorServoImpl::getAxesInfo(axes_names, axes_units); }; + + virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; + virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; + virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; + virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; + virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }; + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; + virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }; + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }; + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }; + virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }; + virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); }; }; class SRTProgramTrackMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTProgramTrackMinorServo @@ -120,23 +158,36 @@ public: SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); ~SRTProgramTrackMinorServoImpl(); - void status() { SRTBaseMinorServoImpl::status(); }; - void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; - void stop() { SRTBaseMinorServoImpl::stop(); }; - void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; - void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; - void setup(const char* configuration_name) { SRTBaseMinorServoImpl::setup(configuration_name); }; + void status() { SRTBaseMinorServoImpl::status(); }; + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; + void stop() { SRTBaseMinorServoImpl::stop(); }; + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; + void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; + void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); }; + virtual ACS::doubleSeq* calcCoordinates(double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }; + virtual ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }; + virtual void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }; + virtual void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }; + virtual ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }; + virtual void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }; + virtual void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }; + virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) { SRTBaseMinorServoImpl::getAxesInfo(axes_names, axes_units); }; void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, CORBA::Double start_time, const ACS::doubleSeq& coordinates); - virtual ACS::ROboolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; - virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; - virtual ACS::ROboolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; - virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; - virtual ACS::RObooleanSeq_ptr axes_enabled() { return SRTBaseMinorServoImpl::axes_enabled(); }; - virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; + virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; + virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; + virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; + virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; + virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }; + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; + virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }; + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }; + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }; + virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }; + virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); }; }; #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h index bfdd81105..2add0a420 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -11,13 +11,10 @@ /* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ /*************************************************************************************/ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> -#include <thread> -#include <chrono> #include <acsThread.h> #include <ComponentErrors.h> -#include "SRTMinorServoSocket.h" #include "SRTMinorServoBossCore.h" #define PARK_TIMEOUT 60 @@ -58,11 +55,14 @@ public: * This method overrides the thread implementation class. * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ - virtual void run(); + virtual void runLoop(); private: std::string m_thread_name; SRTMinorServoBossCore* m_core; + + unsigned int m_status; + double m_start_time; }; #endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h index 157a41c5d..476bdace8 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -11,13 +11,10 @@ /* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ /*************************************************************************************/ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> -#include <thread> -#include <chrono> #include <acsThread.h> #include <ComponentErrors.h> -#include "SRTMinorServoSocket.h" #include "SRTMinorServoBossCore.h" #define SETUP_TIMEOUT 60 @@ -58,11 +55,16 @@ public: * This method overrides the thread implementation class. * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ - virtual void run(); + virtual void runLoop(); private: std::string m_thread_name; SRTMinorServoBossCore* m_core; + + unsigned int m_status; + double m_start_time; + std::string m_LDO_configuration; + MinorServo::SRTMinorServoGregorianCoverStatus m_gregorian_cover_position; }; #endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h index 716260101..a25366e05 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h @@ -7,7 +7,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> #include <mutex> #include <ComponentErrors.h> diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h index f88870faa..546d9e603 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -11,7 +11,7 @@ /* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ /*************************************************************************************/ -#include "SuppressWarnings.h" +#include "Common.h" #include <IRA> #include <acsThread.h> #include <ComponentErrors.h> diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h new file mode 100644 index 000000000..02a79f468 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h @@ -0,0 +1,78 @@ +#ifndef _SRTMINORSERVOTRACKINGTHREAD_H_ +#define _SRTMINORSERVOTRACKINGTHREAD_H_ + +/*************************************************************************************/ +/* OAC Osservatorio Astronomico di Cagliari */ +/* $Id: SRTMinorServoTrackingThread.h */ +/* */ +/* This code is under GNU General Public Licence (GPL). */ +/* */ +/* Who When What */ +/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 30/12/2023 Creation */ +/*************************************************************************************/ + +#include "Common.h" +#include <IRA> +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" +#include <AntennaBossC.h> +#include <LogFilter.h> +#include <slamac.h> + +_IRA_LOGFILTER_IMPORT; + + +#define TRACKING_FUTURE_TIME 2 //2 seconds +#define TRACKING_TIMEGAP 0.2 //200 milliseconds + +class SRTMinorServoBossCore; + + +/** + * This class implements a tracking thread. This thread is in charge of positioning the minor servos in time. +*/ +class SRTMinorServoTrackingThread : public ACS::Thread +{ +public: + /** + * Constructor(). + * @param name thread name + * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoTrackingThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + +private: + double getElevation(double time); + void resetTracking(); + + std::string m_thread_name; + SRTMinorServoBossCore* m_core; + Antenna::AntennaBoss_var m_antennaBoss; + unsigned int m_point_id, m_trajectory_id; + double m_point_time; +}; + +#endif /*_SRTMINORSERVOTRACKINGTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile index 39ea58207..d32729457 100644 --- a/SRT/Servers/SRTMinorServo/src/Makefile +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -22,20 +22,22 @@ SRTMinorServoSocket_OBJECTS = SRTMinorServoSocket SRTMinorServoSocket_LIBS = IRALibrary ComponentErrors SRTMinorServoCommandLibrary SRTMinorServoSocket_CFLAGS = -std=c++17 -SRTMinorServoBossImpl_OBJECTS = SRTMinorServoStatusThread SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoBossCore SRTMinorServoBossImpl -SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket ParserErrors DiscosVersion +SRTMinorServoBossImpl_OBJECTS = SRTMinorServoStatusThread SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoTrackingThread SRTMinorServoBossCore SRTMinorServoBossImpl +SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary AntennaBossStubs SRTMinorServoSocket ParserErrors DiscosVersion SRTMinorServoBossImpl_CFLAGS = -std=c++17 SRTMinorServoBossCore_CFLAGS = -std=c++17 SRTMinorServoStatusThread_CFLAGS = -std=c++17 SRTMinorServoSetupThread_CFLAGS = -std=c++17 SRTMinorServoParkThread_CFLAGS = -std=c++17 +SRTMinorServoTrackingThread_CFLAGS = -std=c++17 +SRTMinorServoTrackingThread_LIBS = IRALibrary SRTGenericMinorServoImpl_OBJECTS = SRTGenericMinorServoImpl SRTBaseMinorServoImpl -SRTGenericMinorServoImpl_LIBS = SRTBaseMinorServoImpl IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion +SRTGenericMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion SRTGenericMinorServoImpl_CFLAGS = -std=c++17 SRTProgramTrackMinorServoImpl_OBJECTS = SRTProgramTrackMinorServoImpl SRTBaseMinorServoImpl -SRTProgramTrackMinorServoImpl_LIBS = SRTBaseMinorServoImpl IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion +SRTProgramTrackMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion SRTProgramTrackMinorServoImpl_CFLAGS = -std=c++17 SRTBaseMinorServoImpl_CFLAGS = -std=c++17 diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index d9440e71b..50ac89407 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -8,10 +8,15 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString &componentName, m m_drive_cabinet_status_ptr(this), m_block_ptr(this), m_operative_mode_ptr(this), - m_axes_enabled_ptr(this), + m_physical_axes_enabled_ptr(this), m_physical_positions_ptr(this), + m_virtual_axes_ptr(this), m_virtual_positions_ptr(this), - m_virtual_offsets_ptr(this) + m_virtual_offsets_ptr(this), + m_virtual_user_offsets_ptr(this), + m_virtual_system_offsets_ptr(this), + m_in_use_ptr(this), + m_current_setup_ptr(this) { std::string component_name(componentName.c_str()); m_servo_name = component_name.substr(component_name.rfind('/') + 1); @@ -28,18 +33,25 @@ void SRTBaseMinorServoImpl::initialize() { AUTO_TRACE(m_servo_name + "::initialize()"); - if(!IRA::CIRATools::getDBValue(getContainerServices(), "physical_axes", m_physical_axes)) + unsigned int tempvar; + if(!IRA::CIRATools::getDBValue(getContainerServices(), "physical_axes", tempvar)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, (m_servo_name + "::initialize()").c_str()); - exImpl.setFieldName("physical_axes"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setFieldName("physical_axes"); + throw impl; } - if(!IRA::CIRATools::getDBValue(getContainerServices(), "virtual_axes", m_virtual_axes)) + m_physical_axes = tempvar; + if(!IRA::CIRATools::getDBValue(getContainerServices(), "virtual_axes", tempvar)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, (m_servo_name + "::initialize()").c_str()); - exImpl.setFieldName("virtual_axes"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setFieldName("virtual_axes"); + throw impl; } + m_virtual_axes = tempvar; + + // Initialize offsets + m_user_offsets = std::vector<double>(m_virtual_axes, 0.0); + m_system_offsets = std::vector<double>(m_virtual_axes, 0.0); m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(getContainerServices()); m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); @@ -58,7 +70,7 @@ void SRTBaseMinorServoImpl::initialize() dev_io_info.property_name = "enabled"; dev_io_info.property_fields = std::vector<std::string>{ "ENABLED" }; - m_enabled_ptr = new baci::ROboolean((component_name + ":enabled").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":enabled").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); dev_io_info.property_name = "drive_cabinet_status"; dev_io_info.property_fields = std::vector<std::string>{ "STATUS" }; @@ -66,34 +78,64 @@ void SRTBaseMinorServoImpl::initialize() dev_io_info.property_name = "block"; dev_io_info.property_fields = std::vector<std::string>{ "BLOCK" }; - m_block_ptr = new baci::ROboolean((component_name + ":block").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":block").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); dev_io_info.property_name = "operative_mode"; dev_io_info.property_fields = std::vector<std::string>{ "OPERATIVE_MODE" }; m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((component_name + ":operative_mode").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoOperativeMode>(dev_io_info), true); - dev_io_info.property_name = "axes_enabled"; - dev_io_info.property_fields = getPropertiesTable("axes_enabled"); + dev_io_info.property_name = "physical_axes_enabled"; + dev_io_info.property_fields = getPropertiesTable("physical_axes_enabled"); if(dev_io_info.property_fields.size() != m_physical_axes) { - // Wrong length for axes_enabled property + // Wrong length for physical_axes_enabled property + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setValueName(dev_io_info.property_name.c_str()); + impl.setValueLimit(m_physical_axes); + throw impl; } - m_axes_enabled_ptr = new baci::RObooleanSeq((component_name + ":axes_enabled").c_str(), getComponent(), new MSDevIO<ACS::booleanSeq>(dev_io_info), true); + m_physical_axes_enabled_ptr = new baci::RObooleanSeq((component_name + ":physical_axes_enabled").c_str(), getComponent(), new MSDevIO<ACS::booleanSeq>(dev_io_info), true); dev_io_info.property_name = "physical_positions"; dev_io_info.property_fields = getPropertiesTable("physical_positions"); if(dev_io_info.property_fields.size() != m_physical_axes) { // Wrong length for physical_positions property + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setValueName(dev_io_info.property_name.c_str()); + impl.setValueLimit(m_physical_axes); + throw impl; } m_physical_positions_ptr = new baci::ROdoubleSeq((component_name + ":physical_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); + m_virtual_axes_ptr = new baci::ROlong((component_name + ":virtual_axes").c_str(), getComponent(), new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int> >(&m_virtual_axes), true); + m_virtual_axes_names = getPropertiesTable("virtual_positions"); + for(const std::string& axis_name : m_virtual_axes_names) + { + if(axis_name.at(0) == 'T') + { + m_virtual_axes_units.push_back("mm"); + } + else if(axis_name.at(0) == 'R') + { + m_virtual_axes_units.push_back("degrees"); + } + else + { + m_virtual_axes_units.push_back("unknown"); + } + } + dev_io_info.property_name = "virtual_positions"; dev_io_info.property_fields = m_virtual_axes_names; if(m_virtual_axes_names.size() != m_virtual_axes) { // Wrong length for virtual_axes property + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setValueName(dev_io_info.property_name.c_str()); + impl.setValueLimit(m_virtual_axes); + throw impl; } m_virtual_positions_ptr = new baci::ROdoubleSeq((component_name + ":virtual_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); @@ -102,13 +144,25 @@ void SRTBaseMinorServoImpl::initialize() if(dev_io_info.property_fields.size() != m_virtual_axes) { // Wrong length for virtual_offsets property + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); + impl.setValueName(dev_io_info.property_name.c_str()); + impl.setValueLimit(m_virtual_axes); + throw impl; } m_virtual_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_offsets").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); + m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_user_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double> >(&m_user_offsets), true); + m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_system_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double> >(&m_system_offsets), true); + + m_in_use_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":in_use").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_in_use), true); + m_current_setup_ptr = new baci::ROstring((component_name + ":current_setup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(&m_current_setup), true); } catch(std::bad_alloc& ex) { _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl, std::string(m_servo_name + "::initialize()").c_str()); } + + m_current_setup = ""; + m_in_use = Management::MNG_FALSE; } void SRTBaseMinorServoImpl::execute() @@ -143,7 +197,9 @@ void SRTBaseMinorServoImpl::stow(CORBA::Long stow_position) if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - _THROW_EXCPT(MinorServoErrors::StowErrorExImpl, std::string(m_servo_name + "::stow()").c_str()); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::stow()").c_str()); + impl.setReason("Received NAK in response to a STOW command!"); + throw impl; } } @@ -156,7 +212,9 @@ void SRTBaseMinorServoImpl::stop() if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, std::string(m_servo_name + "::stop()").c_str()); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::stop()").c_str()); + impl.setReason("Received NAK in response to a STOP command!"); + throw impl; } } @@ -167,11 +225,9 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) if(virtual_coordinates.length() != m_virtual_axes) { - //Wrong number of virtual_coordinates - } - else if(m_current_lookup_table.empty()) - { - // Empty lookup table, cannot execute + _EXCPT(MinorServoErrors::PositioningErrorExImpl, impl, (m_servo_name + "::preset()").c_str()); + impl.addData("Reason", "Wrong number of values for this servo system!"); + throw impl; } std::vector<double> coords(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); @@ -180,7 +236,9 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - _THROW_EXCPT(MinorServoErrors::PositioningErrorExImpl, std::string(m_servo_name + "::preset()").c_str()); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::preset()").c_str()); + impl.setReason("Received NAK in response to a PRESET command!"); + throw impl; } } @@ -191,7 +249,9 @@ void SRTBaseMinorServoImpl::offset(const ACS::doubleSeq& virtual_offsets) if(virtual_offsets.length() != m_virtual_axes) { - //Wrong number of virtual_offsets + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::offset()").c_str()); + impl.addData("Reason", "Wrong number of values for this servo system!"); + throw impl; } std::vector<double> offsets(virtual_offsets.get_buffer(), virtual_offsets.get_buffer() + virtual_offsets.length()); @@ -200,57 +260,176 @@ void SRTBaseMinorServoImpl::offset(const ACS::doubleSeq& virtual_offsets) if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - _THROW_EXCPT(MinorServoErrors::OffsetErrorExImpl, std::string(m_servo_name + "::offset()").c_str()); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::offset()").c_str()); + impl.setReason("Received NAK in response to an OFFSET command!"); + throw impl; } } -void SRTBaseMinorServoImpl::setup(const char* configuration_name) +ACS::doubleSeq* SRTBaseMinorServoImpl::getUserOffsets() { - m_current_lookup_table = getLookupTable(std::string(configuration_name)); + AUTO_TRACE(m_servo_name + "::getUserOffsets()"); + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(m_user_offsets.size()); + for(size_t i = 0; i < m_user_offsets.size(); i++) + { + offsets[i] = m_user_offsets[i]; + } + return offsets._retn(); } -std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(std::string properties_name) +void SRTBaseMinorServoImpl::setUserOffset(const char* axis_name, CORBA::Double offset) { - AUTO_TRACE(m_servo_name + "::getPropertiesTable()"); + AUTO_TRACE(m_servo_name + "::setUserOffset()"); + checkErrors(); - std::vector<std::string> properties; - - IRA::CDBTable table(getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); - IRA::CError error; - error.Reset(); + std::string axis(axis_name); + std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); - if(!table.addField(error, "property_name", IRA::CDataField::STRING)) + if(axis == "RZ" && m_virtual_axes == 1) { - error.setExtra("Error adding field property_name", 0); + axis = "ROTATION"; } - if(!error.isNoError()) + + unsigned int index = std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis) - m_virtual_axes_names.begin(); + + try { - _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, dummy, error); - dummy.setCode(error.getErrorCode()); - dummy.setDescription((const char *)error.getDescription()); - throw dummy; + m_user_offsets.at(index) = (double)offset; } - if(!table.openTable(error)) + catch(std::out_of_range const& ex) { - _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); - throw dummy; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::setUserOffset()").c_str()); + impl.addData("Reason", ("Unknown axis '" + axis + "'!").c_str()); + throw impl; } - table.First(); - for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + // Update the offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - properties.push_back(std::string(table["property_name"]->asString())); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::setUserOffset()").c_str()); + impl.setReason("Received NAK in response to an OFFSET command!"); + throw impl; } - table.closeTable(); +} - return properties; +void SRTBaseMinorServoImpl::clearUserOffsets() +{ + AUTO_TRACE(m_servo_name + "::clearUserOffsets()"); + checkErrors(); + + m_user_offsets = std::vector<double>(m_virtual_axes, 0.0); + + // Update the offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::clearUserOffset()").c_str()); + impl.setReason("Received NAK in response to an OFFSET command!"); + throw impl; + } +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::getSystemOffsets() +{ + AUTO_TRACE(m_servo_name + "::getSystemOffsets()"); + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(m_system_offsets.size()); + for(size_t i = 0; i < m_system_offsets.size(); i++) + { + offsets[i] = m_system_offsets[i]; + } + return offsets._retn(); +} + +void SRTBaseMinorServoImpl::setSystemOffset(const char* axis_name, CORBA::Double offset) +{ + AUTO_TRACE(m_servo_name + "::setSystemOffset()"); + checkErrors(); + + std::string axis(axis_name); + std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); + + if(axis == "RZ" && m_virtual_axes == 1) + { + axis = "ROTATION"; + } + + unsigned int index = std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis) - m_virtual_axes_names.begin(); + + try + { + m_system_offsets.at(index) = (double)offset; + } + catch(std::out_of_range const& ex) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::setSystemOffset()").c_str()); + impl.addData("Reason", ("Unknown axis '" + axis + "'!").c_str()); + throw impl; + } + + // Update the offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::setSystemOffset()").c_str()); + impl.setReason("Received NAK in response to an OFFSET command!"); + throw impl; + } } -SRTMinorServoLookupTable SRTBaseMinorServoImpl::getLookupTable(std::string configuration_name) +void SRTBaseMinorServoImpl::clearSystemOffsets() { - AUTO_TRACE(m_servo_name + "::getLookupTable()"); + AUTO_TRACE(m_servo_name + "::clearSystemOffsets()"); + checkErrors(); + + m_system_offsets = std::vector<double>(m_virtual_axes, 0.0); + + // Update the offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); - IRA::CDBTable table(getContainerServices(), configuration_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::clearSystemOffset()").c_str()); + impl.setReason("Received NAK in response to an OFFSET command!"); + throw impl; + } +} + +void SRTBaseMinorServoImpl::setup(const char* configuration_name) +{ + AUTO_TRACE(m_servo_name + "::setup()"); + m_in_use = Management::MNG_FALSE; + m_current_lookup_table.clear(); + + m_current_setup = ""; + std::string setup_name(configuration_name); + std::transform(setup_name.begin(), setup_name.end(), setup_name.begin(), ::toupper); + + if(setup_name.empty()) + { + return; + } + + IRA::CDBTable table(getContainerServices(), setup_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); IRA::CError error; error.Reset(); @@ -264,19 +443,17 @@ SRTMinorServoLookupTable SRTBaseMinorServoImpl::getLookupTable(std::string confi } if(!error.isNoError()) { - _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, dummy, error); - dummy.setCode(error.getErrorCode()); - dummy.setDescription((const char *)error.getDescription()); - throw dummy; + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, impl, error); + impl.setCode(error.getErrorCode()); + impl.setDescription((const char *)error.getDescription()); + throw impl; } if(!table.openTable(error)) { - _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, dummy, error); - throw dummy; + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, impl, error); + throw impl; } - SRTMinorServoLookupTable lookup_table; - table.First(); for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) { @@ -292,27 +469,129 @@ SRTMinorServoLookupTable SRTBaseMinorServoImpl::getLookupTable(std::string confi coefficients.push_back(std::stod(std::regex_replace(coefficient_str, std::regex("\\s+"), ""))); } - lookup_table[axis] = coefficients; + m_current_lookup_table[axis] = coefficients; + } + table.closeTable(); + + if(m_current_lookup_table.size() > 0) + { + m_current_setup = setup_name; + clearUserOffsets(); + clearSystemOffsets(); + m_in_use = Management::MNG_TRUE; + } +} + +void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +{ + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesInfo()"); + + ACS::stringSeq_var axes_names_var = new ACS::stringSeq; + ACS::stringSeq_var axes_units_var = new ACS::stringSeq; + axes_names_var->length(m_virtual_axes); + axes_units_var->length(m_virtual_axes); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + axes_names_var[i] = m_virtual_axes_names[i].c_str(); + axes_units_var[i] = m_virtual_axes_units[i].c_str(); + } + + axes_names = axes_names_var._retn(); + axes_units = axes_units_var._retn(); +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) +{ + AUTO_TRACE(m_servo_name + "::calcCoordinates()"); + + if(m_in_use == Management::MNG_TRUE) + { + ACS::doubleSeq_var coordinates = new ACS::doubleSeq; + coordinates->length(m_virtual_axes); + + for(size_t axis = 0; axis < m_virtual_axes; axis++) + { + std::vector<double> coefficients = m_current_lookup_table.at(m_virtual_axes_names[axis]); + + double coordinate = 0; + + for(size_t index = 0; index < coefficients.size(); index++) + { + coordinate += coefficients[index] * pow(elevation, index); + } + + coordinates[axis] = coordinate; + } + + return coordinates._retn(); + } + else + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, (m_servo_name + "::calcCoordinates()").c_str()); + impl.setReason("Unable to calculate the coordinates since the servo system has not been configured yet!"); + throw impl; + } +} + +std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(const std::string& properties_name) +{ + AUTO_TRACE(m_servo_name + "::getPropertiesTable()"); + + std::vector<std::string> properties; + + IRA::CDBTable table(getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "property_name", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field property_name", 0); + } + if(!error.isNoError()) + { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, impl, error); + impl.setCode(error.getErrorCode()); + impl.setDescription((const char *)error.getDescription()); + throw impl; + } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, impl, error); + throw impl; + } + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + properties.push_back(std::string(table["property_name"]->asString())); } table.closeTable(); - return lookup_table; + return properties; } void SRTBaseMinorServoImpl::checkErrors() { ACSErr::Completion_var comp; - if(block()->get_sync(comp.out()) || drive_cabinet_status()->get_sync(comp.out()) == MinorServo::DRIVE_CABINET_ERROR) + if(block()->get_sync(comp.out()) == Management::MNG_TRUE || drive_cabinet_status()->get_sync(comp.out()) == MinorServo::DRIVE_CABINET_ERROR) { - _THROW_EXCPT(MinorServoErrors::StatusErrorExImpl, std::string(m_servo_name + "::checkErrors()").c_str()); + _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, (m_servo_name + "::checkErrors()").c_str()); + impl.setReason("Servo system blocked or drive cabinet error!"); + throw impl; } } -GET_PROPERTY_REFERENCE(ACS::ROboolean, m_enabled_ptr, enabled); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_enabled_ptr, enabled); GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoCabinetStatus, m_drive_cabinet_status_ptr, drive_cabinet_status); -GET_PROPERTY_REFERENCE(ACS::ROboolean, m_block_ptr, block); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_block_ptr, block); GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoOperativeMode, m_operative_mode_ptr, operative_mode); -GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, m_axes_enabled_ptr, axes_enabled); +GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, m_physical_axes_enabled_ptr, physical_axes_enabled); GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_physical_positions_ptr, physical_positions); +GET_PROPERTY_REFERENCE(ACS::ROlong, m_virtual_axes_ptr, virtual_axes); GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_positions_ptr, virtual_positions); GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_offsets_ptr, virtual_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_user_offsets_ptr, virtual_user_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_system_offsets_ptr, virtual_system_offsets); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_in_use_ptr, in_use); +GET_PROPERTY_REFERENCE(ACS::ROstring, m_current_setup_ptr, current_setup) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index d832853ce..a824d15c7 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -6,26 +6,23 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl* component) { AUTO_TRACE("SRTMinorServoBossCore::SRTMinorServoBossCore()"); - m_boss_status = MinorServo::BOSS_STATUS_UNCONFIGURED; - - m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - m_requested_configuration = MinorServo::CONFIGURATION_UNKNOWN; - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Primario", MinorServo::CONFIGURATION_PRIMARY)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano1", MinorServo::CONFIGURATION_GREGORIAN1)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano2", MinorServo::CONFIGURATION_GREGORIAN2)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano3", MinorServo::CONFIGURATION_GREGORIAN3)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano4", MinorServo::CONFIGURATION_GREGORIAN4)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano5", MinorServo::CONFIGURATION_GREGORIAN5)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano6", MinorServo::CONFIGURATION_GREGORIAN6)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano7", MinorServo::CONFIGURATION_GREGORIAN7)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("Gregoriano8", MinorServo::CONFIGURATION_GREGORIAN8)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG1", MinorServo::CONFIGURATION_BWG1)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG2", MinorServo::CONFIGURATION_BWG2)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG3", MinorServo::CONFIGURATION_BWG3)); - m_focal_configurations_table.insert(SRTMinorServoFocalConfigurationsTable::value_type("BWG4", MinorServo::CONFIGURATION_BWG4)); - m_component = component; + m_motion_status = MinorServo::MOTION_STATUS_UNCONFIGURED; + m_actual_setup = "Unknown"; + m_commanded_setup = "Unknown"; + m_commanded_configuration = MinorServo::CONFIGURATION_UNKNOWN; + + m_subsystem_status = Management::MNG_WARNING; + m_ready = Management::MNG_FALSE; + m_starting = Management::MNG_FALSE; + m_as_configuration = Management::MNG_FALSE; + m_elevation_tracking = Management::MNG_FALSE; + m_elevation_tracking_enabled = Management::MNG_FALSE; + m_scan_active = Management::MNG_FALSE; + m_scanning = Management::MNG_FALSE; + m_tracking = Management::MNG_FALSE; + m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(m_component->getContainerServices()); m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); @@ -33,16 +30,17 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl* component) m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); m_status_secure_area = new IRA::CSecureArea<SRTMinorServoAnswerMap>(&m_status); - m_GFR = m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); - m_SRP = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); - - m_servos.push_back((MinorServo::SRTBaseMinorServo_ptr)m_GFR); - m_servos.push_back((MinorServo::SRTBaseMinorServo_ptr)m_SRP); + // Retrieve the minor servos components + m_tracking_servos["PFP"] = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/PFP"); + m_tracking_servos["SRP"] = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); + m_servos["PFP"] = (MinorServo::SRTBaseMinorServo_ptr)m_tracking_servos["PFP"]; + m_servos["SRP"] = (MinorServo::SRTBaseMinorServo_ptr)m_tracking_servos["SRP"]; + m_servos["GFR"] = (MinorServo::SRTBaseMinorServo_ptr)m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); + m_servos["M3R"] = (MinorServo::SRTBaseMinorServo_ptr)m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/M3R"); m_setup_thread = NULL; m_park_thread = NULL; - - m_ready = false; + m_tracking_thread = NULL; } SRTMinorServoBossCore::~SRTMinorServoBossCore() @@ -61,57 +59,76 @@ SRTMinorServoBossCore::~SRTMinorServoBossCore() m_park_thread->terminate(); m_component->getContainerServices()->getThreadManager()->destroy(m_park_thread); } + if(m_tracking_thread != NULL) + { + m_tracking_thread->suspend(); + m_tracking_thread->terminate(); + m_component->getContainerServices()->getThreadManager()->destroy(m_tracking_thread); + } } -void SRTMinorServoBossCore::setup(std::string configuration) +void SRTMinorServoBossCore::setup(std::string commanded_setup) { AUTO_TRACE("SRTMinorServoBossCore::setup()"); - ACSErr::Completion_var comp; + checkControl(); + checkEmergency(); - if(!checkControl() || m_component->emergency()->get_sync(comp.out())) - { - // Minor servos are controlled by VBrain or there is an emergency button pressed somewhere - // I raise OperationNotPermitted since there is no other, more fitting error - _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, "SRTMinorServoBossCore::setup()"); - } + std::transform(commanded_setup.begin(), commanded_setup.end(), commanded_setup.begin(), ::toupper); - MinorServo::SRTMinorServoFocalConfiguration requested_configuration; + std::pair<MinorServo::SRTMinorServoFocalConfiguration, bool> cmd_configuration; + MinorServo::SRTMinorServoFocalConfiguration commanded_configuration; try { - requested_configuration = m_focal_configurations_table.left.at(configuration); + cmd_configuration = MinorServo::DiscosConfigurationNameTable.at(commanded_setup); + commanded_configuration = cmd_configuration.first; + if(m_as_configuration == Management::MNG_TRUE && cmd_configuration.second) + { + commanded_setup += "_ASACTIVE"; + } } catch(std::out_of_range& ex) // Unknown configuration { - _THROW_EXCPT(MinorServoErrors::ConfigurationErrorExImpl, "SRTMinorServoBossCore::setup()"); + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setup()"); + throw impl; } - // Exit if commanded configuration is already in place - if(requested_configuration == m_current_configuration && (m_boss_status == MinorServo::BOSS_STATUS_CONFIGURED || m_boss_status == MinorServo::BOSS_STATUS_SETUP_IN_PROGRESS)) + // Exit if commanded setup is already in place or is about to be + if(commanded_configuration == m_commanded_configuration && commanded_setup == m_commanded_setup) { - return; + if(m_motion_status == MinorServo::MOTION_STATUS_CONFIGURING || m_motion_status == MinorServo::MOTION_STATUS_CONFIGURED || m_motion_status == MinorServo::MOTION_STATUS_TRACKING) + { + return; + } } - m_requested_configuration = requested_configuration; + m_commanded_configuration = commanded_configuration; + m_commanded_setup = commanded_setup; // Stop the setup and park threads if running - if(m_setup_thread != NULL) + if(m_setup_thread != NULL && m_setup_thread->isAlive()) { - m_setup_thread->suspend(); - m_setup_thread->terminate(); + m_setup_thread->setStopped(); } - if(m_park_thread != NULL) + if(m_park_thread != NULL && m_park_thread->isAlive()) { - m_park_thread->suspend(); - m_park_thread->terminate(); + m_park_thread->setStopped(); + } + if(m_tracking_thread != NULL && m_tracking_thread->isAlive()) + { + m_tracking_thread->setStopped(); } - m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - m_boss_status = MinorServo::BOSS_STATUS_SETUP_IN_PROGRESS; + m_actual_setup = ""; + m_ready = Management::MNG_FALSE; + m_starting = Management::MNG_TRUE; + m_tracking = Management::MNG_FALSE; + m_motion_status = MinorServo::MOTION_STATUS_CONFIGURING; + m_subsystem_status = Management::MNG_WARNING; // Send the STOP command to each servo - for(auto& servo : m_servos) + for(const auto& [name, servo] : m_servos) { servo->stop(); } @@ -129,7 +146,12 @@ void SRTMinorServoBossCore::setup(std::string configuration) } catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) { - _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::setup()"); + m_starting = Management::MNG_FALSE; + m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_subsystem_status = Management::MNG_FAILURE; + _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::setup()"); + impl.setThreadName("SRTMinorServoSetupThread"); + throw impl; } m_setup_thread->resume(); @@ -140,40 +162,54 @@ void SRTMinorServoBossCore::park() { AUTO_TRACE("SRTMinorServoBossCore::park()"); - ACSErr::Completion_var comp; + checkControl(); + checkEmergency(); - if(!checkControl() || m_component->emergency()->get_sync(comp.out())) + // Exit if the system is already parked or is about to be + if(m_commanded_configuration == MinorServo::CONFIGURATION_PARK) { - // Minor servos are controlled by VBrain or there is an emergency button pressed somewhere - // I raise OperationNotPermitted since there is no other, more fitting error - _THROW_EXCPT(MinorServoErrors::OperationNotPermittedExImpl, "SRTMinorServoBossCore::setup()"); + if(m_motion_status == MinorServo::MOTION_STATUS_CONFIGURING || m_motion_status == MinorServo::MOTION_STATUS_PARK) + { + return; + } } - m_requested_configuration = MinorServos::CONFIGURATION_PARK; + m_commanded_configuration = MinorServo::CONFIGURATION_PARK; + m_commanded_setup = "Park"; // Stop the setup and park threads if running - if(m_setup_thread != NULL) + if(m_setup_thread != NULL && m_setup_thread->isAlive()) { - m_setup_thread->suspend(); - m_setup_thread->terminate(); + m_setup_thread->setStopped(); } - if(m_park_thread != NULL) + if(m_park_thread != NULL && m_park_thread->isAlive()) { - m_park_thread->suspend(); - m_park_thread->terminate(); + m_park_thread->setStopped(); + } + if(m_tracking_thread != NULL && m_tracking_thread->isAlive()) + { + m_tracking_thread->setStopped(); } - m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - m_boss_status = MinorServo::BOSS_STATUS_PARK_IN_PROGRESS; + m_actual_setup = ""; + m_ready = Management::MNG_FALSE; + m_starting = Management::MNG_TRUE; + m_tracking = Management::MNG_FALSE; + m_motion_status = MinorServo::MOTION_STATUS_CONFIGURING; + m_subsystem_status = Management::MNG_WARNING; // Send the STOW command to the gregorian cover if(std::get<std::string>(m_socket->sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2))["OUTPUT"]) != "GOOD") { - _THROW_EXCPT(MinorServoErrors::SetupErrorExImpl, "SRTMinorServoBossCore::park()"); + m_starting = Management::MNG_FALSE; + m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_subsystem_status = Management::MNG_FAILURE; + _EXCPT(MinorServoErrors::SetupErrorExImpl, impl, "SRTMinorServoBossCore::park()"); + throw impl; } // Send the STOP command to each servo - for(auto& servo : m_servos) + for(const auto& [name, servo] : m_servos) { servo->stop(); } @@ -191,13 +227,65 @@ void SRTMinorServoBossCore::park() } catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) { - _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::park()"); + m_starting = Management::MNG_FALSE; + m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_subsystem_status = Management::MNG_FAILURE; + _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::park()"); + impl.setThreadName("SRTMinorServoParkThread"); + throw impl; } m_park_thread->resume(); } } +void SRTMinorServoBossCore::setElevationTracking(std::string configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::setElevationTracking()"); + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration == "ON") + { + m_elevation_tracking_enabled = Management::MNG_TRUE; + } + else if(configuration == "OFF") + { + m_elevation_tracking_enabled = Management::MNG_FALSE; + } + else + { + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setElevationTracking()"); + throw impl; + } +} + +void SRTMinorServoBossCore::setASConfiguration(std::string configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::setASConfiguration()"); + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration == "ON") + { + m_as_configuration = Management::MNG_TRUE; + } + else if(configuration == "OFF") + { + m_as_configuration = Management::MNG_FALSE; + } + else + { + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setASConfiguration()"); + throw impl; + } + + // Should reload the correct setup if the system was already configured + if(!m_actual_setup.empty()) + { + configuration = m_actual_setup.substr(0, m_actual_setup.find("_")); + setup(configuration); + } +} + void SRTMinorServoBossCore::status() { AUTO_TRACE("SRTMinorServoBossCore::status()"); @@ -206,8 +294,308 @@ void SRTMinorServoBossCore::status() m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); } -bool SRTMinorServoBossCore::checkControl() +void SRTMinorServoBossCore::preset(double elevation) // Elevation is expressed in degrees { + AUTO_TRACE("SRTMinorServoBossCore::preset()"); + + checkControl(); + checkEmergency(); + + if(m_ready == Management::MNG_FALSE) + { + _EXCPT(MinorServoErrors::PositioningErrorExImpl, impl, "SRTMinorServoBossCore::preset()"); + throw impl; + } + ACSErr::Completion_var comp; - return m_component->control()->get_sync(comp.out()) == MinorServo::CONTROL_DISCOS ? true : false; + + for(const auto& [name, servo] : m_servos) + { + std::vector<double> coordinates; + + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->preset(*servo->calcCoordinates(elevation)); + } + } +} + +void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) +{ + AUTO_TRACE("SRTMinorServoBossCore::clearUserOffsets()"); + + checkControl(); + checkEmergency(); + + std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + + try + { + m_servos.at(servo_name)->clearUserOffsets(); + } + catch(std::out_of_range& ex) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::clearUserOffsets()"); + throw impl; + } +} + +void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double offset) +{ + AUTO_TRACE("SRTMinorServoBossCore::setUserOffset()"); + + checkControl(); + checkEmergency(); + + std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); + + std::stringstream ss(servo_axis_name); + std::string servo_name, axis_name; + std::getline(ss, servo_name, '_'); + ss >> axis_name; + + try + { + m_servos.at(servo_name)->setUserOffset(axis_name.c_str(), offset); + } + catch(std::out_of_range& ex) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::setUserOffsets()"); + throw impl; + } +} + +std::vector<double> SRTMinorServoBossCore::getUserOffsets() +{ + AUTO_TRACE("SRTMinorServoBossCore::getUserOffsets()"); + + std::vector<double> user_offsets; + + ACSErr::Completion_var comp; + for(const auto& servo_name : MinorServo::ServoOrder) + { + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + ACS::doubleSeq* servo_offsets = servo->getUserOffsets(); + std::vector<double> offsets(servo_offsets->get_buffer(), servo_offsets->get_buffer() + servo_offsets->length()); + user_offsets.insert(user_offsets.end(), offsets.begin(), offsets.end()); + } + } + + return user_offsets; +} + +void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) +{ + AUTO_TRACE("SRTMinorServoBossCore::clearSystemOffsets()"); + + checkControl(); + checkEmergency(); + + std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + + try + { + m_servos.at(servo_name)->clearSystemOffsets(); + } + catch(std::out_of_range& ex) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::clearSystemOffsets()"); + throw impl; + } +} + +void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double offset) +{ + AUTO_TRACE("SRTMinorServoBossCore::setSystemOffset()"); + + checkControl(); + checkEmergency(); + + std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); + + std::stringstream ss(servo_axis_name); + std::string servo_name, axis_name; + std::getline(ss, servo_name, '_'); + ss >> axis_name; + + try + { + m_servos.at(servo_name)->setSystemOffset(axis_name.c_str(), offset); + } + catch(std::out_of_range& ex) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::setSystemOffsets()"); + throw impl; + } +} + +std::vector<double> SRTMinorServoBossCore::getSystemOffsets() +{ + AUTO_TRACE("SRTMinorServoBossCore::getSystemOffsets()"); + + std::vector<double> system_offsets; + + ACSErr::Completion_var comp; + for(const auto& servo_name : MinorServo::ServoOrder) + { + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + ACS::doubleSeq* servo_offsets = servo->getSystemOffsets(); + std::vector<double> offsets(servo_offsets->get_buffer(), servo_offsets->get_buffer() + servo_offsets->length()); + system_offsets.insert(system_offsets.end(), offsets.begin(), offsets.end()); + } + } + + return system_offsets; +} + +void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +{ + AUTO_TRACE("SRTMinorServoBossCore::getAxesInfo()"); + + std::vector<std::string> axes_names_vector, axes_units_vector; + + unsigned int length = 0; + ACS::stringSeq_var axes_names_var = new ACS::stringSeq; + ACS::stringSeq_var axes_units_var = new ACS::stringSeq; + + ACSErr::Completion_var comp; + for(const auto& servo_name : MinorServo::ServoOrder) + { + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + ACS::stringSeq_var servo_axes_names; + ACS::stringSeq_var servo_axes_units; + servo->getAxesInfo(servo_axes_names, servo_axes_units); + + unsigned int index = length; + unsigned int servo_length = (unsigned int)servo->virtual_axes()->get_sync(comp.out()); + length += servo_length; + axes_names_var->length(length); + axes_units_var->length(length); + + for(size_t i = 0; i < servo_length; i++, index++) + { + axes_names_var[index] = std::string(servo_name + "_" + (const char*)servo_axes_names[i]).c_str(); + axes_units_var[index] = servo_axes_units[i]; + } + } + } + + axes_names = axes_names_var._retn(); + axes_units = axes_units_var._retn(); +} + +bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters) +{ + AUTO_TRACE("SRTMinorServoBossCore::checkScan()"); + + checkControl(); + checkEmergency(); + + std::cout << "checkScan" << std::endl << std::endl; + std::cout << "now: " << CIRATools::getUNIXEpoch() << std::endl; + + std::cout << "Scan info:" << std::endl; + std::cout << "start time: " << CIRATools::ACSTime2UNIXEpoch(start_time) << std::endl; + std::cout << "empty: " << std::boolalpha << scan_info.is_empty_scan << std::endl; + std::cout << "span: " << scan_info.range << std::endl; + std::cout << "total time: " << (int)scan_info.total_time << std::endl; + std::cout << "axis code: " << std::string(scan_info.axis_code) << std::endl << std::endl; + + std::cout << "Antenna info:" << std::endl; + std::cout << "target name: " << std::string(antenna_info.targetName) << std::endl; + std::cout << "azimuth: " << antenna_info.azimuth << std::endl; + std::cout << "elevation: " << antenna_info.elevation << std::endl; + std::cout << "right ascension: " << antenna_info.rightAscension << std::endl; + std::cout << "declination: " << antenna_info.declination << std::endl; + std::cout << "start time: " << CIRATools::ACSTime2UNIXEpoch(antenna_info.startEpoch) << std::endl; + std::cout << "on the fly: " << std::boolalpha << antenna_info.onTheFly << std::endl; + std::cout << "slewing time: " << antenna_info.slewingTime << std::endl; + std::cout << "azimuth section: " << antenna_info.section << std::endl; + std::cout << "scan axis: " << antenna_info.axis << std::endl; + std::cout << "stop time: " << CIRATools::ACSTime2UNIXEpoch(antenna_info.timeToStop) << std::endl; + + MinorServo::TRunTimeParameters_var ms_param_var = new MinorServo::TRunTimeParameters; + ms_param_var->onTheFly = false; + ms_param_var->startEpoch = 0; + ms_param_var->centerScan = 0; + ms_param_var->scanAxis = CORBA::string_dup(""); + ms_param_var->timeToStop = 0; + ms_parameters = ms_param_var._retn(); + + if(scan_info.is_empty_scan && m_ready == Management::MNG_FALSE) + { + return true; + } + + return true; +} + +void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +{ + AUTO_TRACE("SRTMinorServoBossCore::startScan()"); + + checkControl(); + checkEmergency(); + + std::cout << "startScan" << std::endl; + + // Start the tracking thread + if(m_tracking_thread != NULL) + { + m_tracking_thread->restart(); + } + else + { + try + { + m_tracking_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoTrackingThread, SRTMinorServoBossCore*>("SRTMinorServoTrackingThread", m_component->m_core); + } + catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) + { + m_subsystem_status = Management::MNG_FAILURE; + _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::startScan()"); + impl.setThreadName("SRTMinorServoTrackingThread"); + throw impl; + } + + m_tracking_thread->resume(); + } +} + +void SRTMinorServoBossCore::closeScan(ACS::Time& close_time) +{ + AUTO_TRACE("SRTMinorServoBossCore::closeScan()"); + + checkControl(); + checkEmergency(); + + std::cout << "closeScan" << std::endl; +} + +void SRTMinorServoBossCore::checkControl() +{ + ACSErr::Completion_var comp; + if(m_component->control()->get_sync(comp.out()) != MinorServo::CONTROL_DISCOS) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, "SRTMinorServoBossCore::checkControl()"); + impl.setReason("MinorServo system is not controlled by DISCOS!"); + throw impl; + } +} + +void SRTMinorServoBossCore::checkEmergency() +{ + ACSErr::Completion_var comp; + if(m_component->emergency()->get_sync(comp.out()) == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, "SRTMinorServoBossCore::checkEmergency()"); + impl.setReason("MinorServo system in emergency status!"); + throw impl; + } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 18aa0cf50..2725aec94 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -3,10 +3,22 @@ using namespace maci; using namespace SimpleParser; +_IRA_LOGFILTER_DECLARE; + SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : CharacteristicComponentImpl(componentName, containerServices), m_core(NULL), m_parser(NULL), + m_status_ptr(this), + m_ready_ptr(this), + m_actual_setup_ptr(this), + m_motion_info_ptr(this), + m_starting_ptr(this), + m_as_configuration_ptr(this), + m_elevation_tracking_ptr(this), + m_scan_active_ptr(this), + m_scanning_ptr(this), + m_tracking_ptr(this), m_current_configuration_ptr(this), m_simulation_enabled_ptr(this), m_plc_time_ptr(this), @@ -37,13 +49,80 @@ SRTMinorServoBossImpl::~SRTMinorServoBossImpl() void SRTMinorServoBossImpl::initialize() { AUTO_TRACE("SRTMinorServoBossImpl::initialize()"); + _IRA_LOGFILTER_ACTIVATE(200000000, 500000000); m_core = new SRTMinorServoBossCore(this); + IRA::CString string_buffer; + if(!IRA::CIRATools::getDBValue(getContainerServices(), "active_surface_configuration", string_buffer)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setFieldName("active_surface_configuration"); + throw impl; + } + else + { + std::string active_surface_configuration(string_buffer); + + if(active_surface_configuration == "ON") + { + m_core->m_as_configuration = Management::MNG_TRUE; + } + else if(active_surface_configuration == "OFF") + { + m_core->m_as_configuration = Management::MNG_FALSE; + } + else + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setFieldName("active_surface_configuration"); + impl.addData("Reason", "Value should be 'ON' or 'OFF'"); + throw impl; + } + } + + if(!IRA::CIRATools::getDBValue(getContainerServices(), "elevation_tracking_enabled", string_buffer)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setFieldName("elevation_tracking_enabled"); + throw impl; + } + else + { + std::string elevation_tracking_enabled(string_buffer); + + if(elevation_tracking_enabled == "ON") + { + m_core->m_elevation_tracking_enabled = Management::MNG_TRUE; + } + else if(elevation_tracking_enabled == "OFF") + { + m_core->m_elevation_tracking_enabled = Management::MNG_FALSE; + } + else + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setFieldName("elevation_tracking_enabled"); + impl.addData("Reason", "Value should be 'ON' or 'OFF'"); + throw impl; + } + } + try { std::string component_name = getContainerServices()->getName().c_str(); + m_status_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>((component_name + ":status").c_str(), getComponent(), new MSGenericDevIO<Management::TSystemStatus, std::atomic<Management::TSystemStatus> >(&m_core->m_subsystem_status), true); + m_ready_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":ready").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_ready), true); + m_actual_setup_ptr = new baci::ROstring((component_name + ":actualSetup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(&m_core->m_actual_setup), true); + m_motion_info_ptr = new baci::ROstring((component_name + ":motionInfo").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::atomic<MinorServo::SRTMinorServoMotionStatus> >(&m_core->m_motion_status), true); + m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":starting").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_starting), true); + m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":asConfiguration").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_as_configuration), true); + m_elevation_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":elevationTrack").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_elevation_tracking_enabled), true); + m_scan_active_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":scanActive").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_scan_active), true); + m_scanning_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":scanning").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_scanning), true); + m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":tracking").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_tracking), true); + SRTMinorServoDevIOInfo dev_io_info; dev_io_info.secure_area = m_core->m_status_secure_area; @@ -53,7 +132,7 @@ void SRTMinorServoBossImpl::initialize() dev_io_info.property_name = "simulation_enabled"; dev_io_info.property_fields = std::vector<std::string>{ "SIMULATION_ENABLED" }; - m_simulation_enabled_ptr = new baci::ROboolean((component_name + ":simulation_enabled").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":simulation_enabled").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); dev_io_info.property_name = "plc_time"; dev_io_info.property_fields = std::vector<std::string>{ "PLC_TIME" }; @@ -69,11 +148,11 @@ void SRTMinorServoBossImpl::initialize() dev_io_info.property_name = "power"; dev_io_info.property_fields = std::vector<std::string>{ "POWER" }; - m_power_ptr = new baci::ROboolean((component_name + ":power").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":power").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); dev_io_info.property_name = "emergency"; dev_io_info.property_fields = std::vector<std::string>{ "EMERGENCY" }; - m_emergency_ptr = new baci::ROboolean((component_name + ":emergency").c_str(), getComponent(), new MSDevIO<CORBA::Boolean>(dev_io_info), true); + m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":emergency").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); dev_io_info.property_name = "gregorian_cover"; dev_io_info.property_fields = std::vector<std::string>{ "GREGORIAN_CAP" }; @@ -97,29 +176,30 @@ void SRTMinorServoBossImpl::initialize() m_parser->add("setServoOffset", new function2<SRTMinorServoBossImpl, non_constant, void_type, I<string_type>, I<double_type> >(this, &SRTMinorServoBossImpl::setOffsets), 2); m_parser->add("clearServoOffsets", new function0<SRTMinorServoBossImpl, non_constant, void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); - //m_GFR = getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); - //m_SRP = getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); - try { double status_thread_period; if(!IRA::CIRATools::getDBValue(getContainerServices(), "status_thread_period", status_thread_period)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoBossImpl::initialize()"); - exImpl.setFieldName("status_thread_period"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setFieldName("status_thread_period"); + throw impl; } - m_status_thread = getContainerServices()->getThreadManager()->create<SRTMinorServoStatusThread, SRTMinorServoBossCore*>("SRTMinorServoBossImplStatusThread", m_core); + m_status_thread = getContainerServices()->getThreadManager()->create<SRTMinorServoStatusThread, SRTMinorServoBossCore*>("SRTMinorServoStatusThread", m_core); m_status_thread->setSleepTime(status_thread_period * 10000000); m_status_thread->resume(); } catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) { - _THROW_EXCPT(ComponentErrors::ThreadErrorExImpl, "SRTMinorServoBossImpl::initialize()"); + _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.setThreadName("SRTMinorServoStatusThread"); + throw impl; } catch(...) { - _THROW_EXCPT(ComponentErrors::UnexpectedExImpl, "SRTMinorServoBossImpl::initialize()"); + _EXCPT(ComponentErrors::UnexpectedExImpl, impl, "SRTMinorServoBossImpl::initialize()"); + impl.addData("Reason", "Encountered an unexpected error when starting the SRTMinorServoStatusThread!"); + throw impl; } } @@ -139,6 +219,8 @@ void SRTMinorServoBossImpl::cleanUp() m_status_thread->terminate(); } + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::cleanUp(); } @@ -153,6 +235,8 @@ void SRTMinorServoBossImpl::aboutToAbort() m_status_thread->terminate(); } + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::aboutToAbort(); } @@ -168,14 +252,173 @@ void SRTMinorServoBossImpl::park() m_core->park(); } -void SRTMinorServoBossImpl::setElevationTracking(const char* value) +CORBA::Boolean SRTMinorServoBossImpl::isElevationTrackingEn() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isElevationTrackingEn()"); + return m_core->m_elevation_tracking_enabled == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isElevationTracking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isElevationTracking()"); + return m_core->m_elevation_tracking == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isTracking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isTracking()"); + return m_core->m_tracking == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isStarting() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isStarting()"); + return m_core->m_starting == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isASConfiguration() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isASConfiguration()"); + return m_core->m_as_configuration == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isParking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isParking()"); + return (m_core->m_starting == Management::MNG_TRUE && m_core->m_commanded_configuration == MinorServo::CONFIGURATION_PARK); +} + +CORBA::Boolean SRTMinorServoBossImpl::isReady() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isReady()"); + return m_core->m_ready == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isScanning() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isScanning()"); + return m_core->m_scanning == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isScanActive() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isScanActive()"); + return m_core->m_scan_active == Management::MNG_TRUE ? true : false; +} + +char* SRTMinorServoBossImpl::getActualSetup() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getActualSetup()"); + return CORBA::string_dup(m_core->m_actual_setup.c_str()); +} + +char* SRTMinorServoBossImpl::getCommandedSetup() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getCommandedSetup()"); + return CORBA::string_dup(m_core->m_commanded_setup.c_str()); +} + +CORBA::Double SRTMinorServoBossImpl::getCentralScanPosition() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getCentralScanPosition()"); + return 0.0; +} + +void SRTMinorServoBossImpl::clearUserOffset(const char* servo_name) +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearUserOffset()"); + m_core->clearUserOffsets(std::string(servo_name)); +} + +void SRTMinorServoBossImpl::setUserOffset(const char* servo_axis_name, CORBA::Double offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setUserOffset()"); + m_core->setUserOffset(std::string(servo_axis_name), (double)offset); +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getUserOffset() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getUserOffset()"); + + std::vector<double> userOffsets = m_core->getUserOffsets(); + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(userOffsets.size()); + for(size_t i = 0; i < userOffsets.size(); i++) + { + offsets[i] = userOffsets[i]; + } + return offsets._retn(); +} + +void SRTMinorServoBossImpl::clearSystemOffset(const char* servo_name) +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearSystemOffset()"); + m_core->clearSystemOffsets(std::string(servo_name)); +} + +void SRTMinorServoBossImpl::setSystemOffset(const char* servo_axis_name, CORBA::Double offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setSystemOffset()"); + m_core->setSystemOffset(std::string(servo_axis_name), (double)offset); +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getSystemOffset() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getSystemOffset()"); + + std::vector<double> systemOffsets = m_core->getSystemOffsets(); + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(systemOffsets.size()); + for(size_t i = 0; i < systemOffsets.size(); i++) + { + offsets[i] = systemOffsets[i]; + } + return offsets._retn(); +} + +void SRTMinorServoBossImpl::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +{ + AUTO_TRACE("SRTMinorServoBossImpl::getAxesInfo()"); + m_core->getAxesInfo(axes_names, axes_units); +} + +char* SRTMinorServoBossImpl::getScanAxis() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getScanAxis()"); + + if(isScanActive()) + { + return CORBA::string_dup(""); + } + else + { + return CORBA::string_dup(""); + } +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getAxesPosition(ACS::Time) +{ + AUTO_TRACE("SRTMinorServoBossImpl::getAxesPosition()"); + + ACS::doubleSeq_var positions = new ACS::doubleSeq; + positions->length(3); + for(size_t i = 0; i < 3; i++) + { + positions[i] = 0; + } + return positions._retn(); +} + +void SRTMinorServoBossImpl::setElevationTracking(const char* configuration) { AUTO_TRACE("SRTMinorServoBossImpl::setElevationTracking()"); + m_core->setElevationTracking(std::string(configuration)); } -void SRTMinorServoBossImpl::setASConfiguration(const char* value) +void SRTMinorServoBossImpl::setASConfiguration(const char* configuration) { AUTO_TRACE("SRTMinorServoBossImpl::setASConfiguration()"); + m_core->setASConfiguration(std::string(configuration)); } void SRTMinorServoBossImpl::setOffsets(const char* axis_code, const double& offset) @@ -186,20 +429,37 @@ void SRTMinorServoBossImpl::setOffsets(const char* axis_code, const double& offs void SRTMinorServoBossImpl::clearOffsets() { AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); - // Loop through servos and clear their offsets + + for(const auto& [name, servo] : m_core->m_servos) + { + m_core->clearUserOffsets(name); + // Not sure about the following + //m_core->clearSystemOffsets(name); + } +} + +CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters) +{ + AUTO_TRACE("SRTMinorServoBossImpl::checkScan()"); + return m_core->checkScan(start_time, scan_info, antenna_info, ms_parameters); } -CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time startingTime, const MinorServo::MinorServoScan &scan, const Antenna::TRunTimeParameters &antennaInfo, MinorServo::TRunTimeParameters_out msParameters) +void SRTMinorServoBossImpl::startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) { - return true; + AUTO_TRACE("SRTMinorServoBossImpl::startScan()"); + m_core->startScan(start_time, scan_info, antenna_info); } -void SRTMinorServoBossImpl::startScan(ACS::Time &startingTime, const MinorServo::MinorServoScan &scan, const Antenna::TRunTimeParameters &antennaInfo) +void SRTMinorServoBossImpl::closeScan(ACS::Time& close_time) { + AUTO_TRACE("SRTMinorServoBossImpl::closeScan()"); + m_core->closeScan(close_time); } -void SRTMinorServoBossImpl::closeScan(ACS::Time &timeToStop) +void SRTMinorServoBossImpl::preset(double elevation) { + AUTO_TRACE("SRTMinorServoBossImpl::preset()"); + m_core->preset(elevation); } CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out answer) @@ -229,20 +489,31 @@ CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out } catch(...) { - ACS_SHORT_LOG((LM_WARNING, "SRTMinorServoBoss::command(): unknown exception.")); + ACS_SHORT_LOG((LM_WARNING, "SRTMinorServoBossImpl::command(): unknown exception.")); res = false; } answer = CORBA::string_dup((const char *)out); return res; } +GET_PROPERTY_REFERENCE(Management::ROTSystemStatus, m_status_ptr, status) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_ready_ptr, ready) +GET_PROPERTY_REFERENCE(ACS::ROstring, m_actual_setup_ptr, actualSetup) +GET_PROPERTY_REFERENCE(ACS::ROstring, m_motion_info_ptr, motionInfo) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_starting_ptr, starting) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_as_configuration_ptr, asConfiguration) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_elevation_tracking_ptr, elevationTrack) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_scan_active_ptr, scanActive) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_scanning_ptr, scanning) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_tracking_ptr, tracking) + GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoFocalConfiguration, m_current_configuration_ptr, current_configuration); -GET_PROPERTY_REFERENCE(ACS::ROboolean, m_simulation_enabled_ptr, simulation_enabled); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_simulation_enabled_ptr, simulation_enabled); GET_PROPERTY_REFERENCE(ACS::ROdouble, m_plc_time_ptr, plc_time); GET_PROPERTY_REFERENCE(ACS::ROstring, m_plc_version_ptr, plc_version); GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoControlStatus, m_control_ptr, control); -GET_PROPERTY_REFERENCE(ACS::ROboolean, m_power_ptr, power); -GET_PROPERTY_REFERENCE(ACS::ROboolean, m_emergency_ptr, emergency); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_power_ptr, power); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_emergency_ptr, emergency); GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoGregorianCoverStatus, m_gregorian_cover_ptr, gregorian_cover); GET_PROPERTY_REFERENCE(ACS::ROdouble, m_last_executed_command_ptr, last_executed_command); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index ab252745f..747c59c93 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -16,6 +16,10 @@ SRTMinorServoParkThread::~SRTMinorServoParkThread() void SRTMinorServoParkThread::onStart() { AUTO_TRACE(m_thread_name + "::onStart()"); + this->setSleepTime(500000); // 50 milliseconds + m_start_time = CIRATools::getUNIXEpoch(); + + m_status = 0; } void SRTMinorServoParkThread::onStop() @@ -23,37 +27,66 @@ void SRTMinorServoParkThread::onStop() AUTO_TRACE(m_thread_name + "::onStop()"); } -void SRTMinorServoParkThread::run() +void SRTMinorServoParkThread::runLoop() { - AUTO_TRACE(m_thread_name + "::run()"); - ACSErr::Completion_var comp; - double start_time = CIRATools::getUNIXEpoch(); + AUTO_TRACE(m_thread_name + "::runLoop()"); + + try + { + m_core->checkControl(); + m_core->checkEmergency(); + } + catch(MinorServoErrors::StatusErrorExImpl& ex) + { + ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + this->setStopped(); + return; + } - while(true) + if(CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) { - // First we check if the gregorian cover has closed - bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == MinorServo::COVER_STATUS_CLOSED ? true : false; + m_core->m_starting = Management::MNG_FALSE; + m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_core->m_subsystem_status = Management::MNG_FAILURE; + ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, "Timeout while performing a park operation.")); + this->setStopped(); + } - // 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 MinorServo::SRTBaseMinorServo_ptr& servo) -> bool - { - ACSErr::Completion_var comp; - return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; - })) + ACSErr::Completion_var comp; + + switch(m_status) + { + case 0: { + // First we check if the gregorian cover has closed + bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == MinorServo::COVER_STATUS_CLOSED ? true : false; + + // 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, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + })) + { + m_status = 1; + } + break; } - - if(CIRATools::getUNIXEpoch() - start_time >= PARK_TIMEOUT) + case 1: { - m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; - m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - return; - } + for(const auto& [name, servo] : m_core->m_servos) + { + servo->setup(""); + } - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - } + m_core->m_actual_setup = m_core->m_commanded_setup; + m_core->m_starting = Management::MNG_FALSE; - m_core->m_current_configuration = MinorServo::CONFIGURATION_PARK; - m_core->m_boss_status = MinorServo::BOSS_STATUS_CONFIGURED; + m_core->m_subsystem_status = Management::MNG_OK; + m_core->m_motion_status = MinorServo::MOTION_STATUS_PARK; + this->setStopped(); + break; + } + } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 23a912897..21fc71927 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -16,6 +16,13 @@ SRTMinorServoSetupThread::~SRTMinorServoSetupThread() void SRTMinorServoSetupThread::onStart() { AUTO_TRACE(m_thread_name + "::onStart()"); + this->setSleepTime(500000); // 50 milliseconds + m_start_time = CIRATools::getUNIXEpoch(); + + MinorServo::SRTMinorServoFocalConfiguration commanded_configuration = m_core->m_commanded_configuration; + m_LDO_configuration = MinorServo::LDOConfigurationNameTable.left.at(commanded_configuration); + m_gregorian_cover_position = commanded_configuration == MinorServo::CONFIGURATION_PRIMARY ? MinorServo::COVER_STATUS_CLOSED : MinorServo::COVER_STATUS_OPEN; + m_status = 0; } void SRTMinorServoSetupThread::onStop() @@ -23,89 +30,106 @@ void SRTMinorServoSetupThread::onStop() AUTO_TRACE(m_thread_name + "::onStop()"); } -void SRTMinorServoSetupThread::run() +void SRTMinorServoSetupThread::runLoop() { - AUTO_TRACE(m_thread_name + "::run()"); - double start_time = CIRATools::getUNIXEpoch(); - std::string configuration_name = m_core->m_focal_configurations_table.right.at(m_core->m_requested_configuration); - MinorServo::SRTMinorServoGregorianCoverStatus gregorian_cover_position = m_core->m_requested_configuration == MinorServo::CONFIGURATION_PRIMARY ? MinorServo::COVER_STATUS_CLOSED : MinorServo::COVER_STATUS_OPEN; - ACSErr::Completion_var comp; + AUTO_TRACE(m_thread_name + "::runLoop()"); - // Check if all the servos stopped - while(!std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const MinorServo::SRTBaseMinorServo_ptr& servo) -> bool - { - ACSErr::Completion_var comp; - return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; - })) + try { - if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) - { - m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; - m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - return; - } - - std::this_thread::sleep_for(std::chrono::milliseconds(50)); + m_core->checkControl(); + m_core->checkEmergency(); } - - // Send the SETUP command - if(std::get<std::string>(m_core->m_socket->sendCommand(SRTMinorServoCommandLibrary::setup(configuration_name))["OUTPUT"]) != "GOOD") + catch(MinorServoErrors::StatusErrorExImpl& ex) { - _THROW_EXCPT(MinorServoErrors::SetupErrorExImpl, "SRTMinorServoBossCore::setup()"); + ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + this->setStopped(); + return; } - // Wait for the system to show the commanded configuration - while(m_core->m_component->current_configuration()->get_sync(comp.out()) != m_core->m_current_configuration) + if(CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) { - if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) - { - m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; - m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - return; - } - - std::this_thread::sleep_for(std::chrono::milliseconds(50)); + m_core->m_starting = Management::MNG_FALSE; + m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_core->m_subsystem_status = Management::MNG_FAILURE; + ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, "Timeout while performing a setup operation.")); + this->setStopped(); } - // Wait for the whole system to reach the desired configuration - while(true) + ACSErr::Completion_var comp; + + switch(m_status) { - // First we check the status of the gregorian cover - bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == gregorian_cover_position ? true : false; + case 0: // Check if all the servos stopped + { + if(std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + })) + { + // Move to phase 1 + m_status = 1; + } - // Then we cycle through all the servos and make sure their operative mode is SETUP - if(completed && std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const MinorServo::SRTBaseMinorServo_ptr& servo) -> bool + break; + } + case 1: // Send the SETUP command { - ACSErr::Completion_var comp; - return servo->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_SETUP ? true : false; - })) + if(std::get<std::string>(m_core->m_socket->sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration))["OUTPUT"]) != "GOOD") + { + m_core->m_starting = Management::MNG_FALSE; + m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; + m_core->m_subsystem_status = Management::MNG_FAILURE; + this->setStopped(); + } + else + { + m_status = 2; + } + + break; + } + case 2: // Wait for the system to show the commanded configuration { + if(m_core->m_component->current_configuration()->get_sync(comp.out()) == m_core->m_commanded_configuration) + { + m_status = 3; + } + break; } + case 3: // Wait for the whole system to reach the desired configuration + { + // First we check the status of the gregorian cover + bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + + // Then we cycle through all the servos and make sure their operative mode is SETUP + if(completed && std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_SETUP ? true : false; + })) + { + m_status = 4; + } - if(CIRATools::getUNIXEpoch() - start_time >= SETUP_TIMEOUT) + break; + } + case 4: // Finally load the servos coefficients { - m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; - m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - return; + m_core->m_actual_setup = m_core->m_commanded_setup; + + for(const auto& [name, servo] : m_core->m_servos) + { + servo->setup(m_core->m_actual_setup.c_str()); + } + + m_core->m_starting = Management::MNG_FALSE; + m_core->m_ready = Management::MNG_TRUE; + m_core->m_subsystem_status = Management::MNG_OK; + m_core->m_motion_status = m_core->m_elevation_tracking_enabled == Management::MNG_TRUE ? MinorServo::MOTION_STATUS_TRACKING : MinorServo::MOTION_STATUS_CONFIGURED; + this->setStopped(); + break; } - - std::this_thread::sleep_for(std::chrono::milliseconds(50)); } - - if(m_core->m_component->current_configuration()->get_sync(comp.out()) != m_core->m_requested_configuration) - { - m_core->m_boss_status = MinorServo::BOSS_STATUS_ERROR; - m_core->m_current_configuration = MinorServo::CONFIGURATION_UNKNOWN; - return; - } - - // Finally load the servos coefficients - for(auto& servo : m_core->m_servos) - { - servo->setup(configuration_name.c_str()); - } - - m_core->m_current_configuration = m_requested_configuration; - m_core->m_boss_status = MinorServo::BOSS_STATUS_CONFIGURED; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp index 2bb4529fb..d68f74ed6 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp @@ -10,9 +10,9 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, in { if(m_instance->m_address != ip_address && m_instance->m_port != port) { - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::getInstance(std::string, int)"); - exImpl.addData("Reason", "Socket already open on '" + m_instance->m_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); + impl.addData("Reason", "Socket already open on '" + m_instance->m_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object."); + throw impl; } } else @@ -28,9 +28,9 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance() if(m_instance == nullptr) { - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::getInstance()"); - exImpl.addData("Reason", "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); + impl.addData("Reason", "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + throw impl; } return *m_instance; } @@ -49,27 +49,27 @@ SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, doubl if(Create(m_error, STREAM) == FAIL) { Close(m_error); - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); - exImpl.addData("Reason", "Cannot create the socket."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.addData("Reason", "Cannot create the socket."); + throw impl; } if(Connect(m_error, ip_address.c_str(), port) == FAIL) { m_socket_status = TOUT; Close(m_error); - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); - exImpl.addData("Reason", "Cannot connect the socket."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.addData("Reason", "Cannot connect the socket."); + throw impl; } if(setSockMode(m_error, NONBLOCKING) != SUCCESS) { m_socket_status = NOTRDY; Close(m_error); - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::SRTMinorServoSocket()"); - exImpl.addData("Reason", "Cannot set the socket to non-blocking."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.addData("Reason", "Cannot set the socket to non-blocking."); + throw impl; } m_address = ip_address; @@ -104,9 +104,9 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std { m_socket_status = TOUT; Close(m_error); - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); - exImpl.addData("Reason", "Timeout when sending command."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.addData("Reason", "Timeout when sending command."); + throw impl; } } @@ -127,9 +127,9 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std { m_socket_status = TOUT; Close(m_error); - ComponentErrors::SocketErrorExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocket::sendCommand()"); - exImpl.addData("Reason", "Timeout when receiving answer."); - throw exImpl; + _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.addData("Reason", "Timeout when receiving answer."); + throw impl; } } SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); @@ -158,18 +158,18 @@ SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::Contain IRA::CString _ip_address; if(!IRA::CIRATools::getDBValue(containerServices, "IPAddress", _ip_address, CONFIG_DOMAIN, CONFIG_DIRNAME)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); - exImpl.setFieldName("IPAddress"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("IPAddress"); + throw impl; } m_ip_address = (std::string)_ip_address; DWORD port; if(!IRA::CIRATools::getDBValue(containerServices, "Port", port, CONFIG_DOMAIN, CONFIG_DIRNAME)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); - exImpl.setFieldName("Port"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("Port"); + throw impl; } else { @@ -178,9 +178,9 @@ SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::Contain if(!IRA::CIRATools::getDBValue(containerServices, "SocketTimeout", m_timeout, CONFIG_DOMAIN, CONFIG_DIRNAME)) { - ComponentErrors::CDBAccessExImpl exImpl(__FILE__, __LINE__, "SRTMinorServoSocketConfiguration()"); - exImpl.setFieldName("SocketTimeout"); - throw exImpl; + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("SocketTimeout"); + throw impl; } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp index 34931063c..6c734306d 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -35,7 +35,7 @@ void SRTMinorServoStatusThread::runLoop() m_core->status(); - for(auto& servo : m_core->m_servos) + for(const auto& [name, servo] : m_core->m_servos) { servo->status(); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp new file mode 100644 index 000000000..179800db3 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -0,0 +1,159 @@ +#include "SRTMinorServoTrackingThread.h" + +SRTMinorServoTrackingThread::SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): + ACS::Thread(name, responseTime, sleepTime), + m_core(core) +{ + m_thread_name = std::string(name.c_str()); + AUTO_TRACE(m_thread_name + "::SRTMinorServoTrackingThread()"); +} + +SRTMinorServoTrackingThread::~SRTMinorServoTrackingThread() +{ + AUTO_TRACE(m_thread_name + "::~SRTMinorServoTrackingThread()"); +} + +void SRTMinorServoTrackingThread::onStart() +{ + AUTO_TRACE(m_thread_name + "::onStart()"); + resetTracking(); + m_antennaBoss = Antenna::AntennaBoss::_nil(); +} + +void SRTMinorServoTrackingThread::onStop() +{ + AUTO_TRACE(m_thread_name + "::onStop()"); +} + +void SRTMinorServoTrackingThread::runLoop() +{ + AUTO_TRACE(m_thread_name + "::runLoop()"); + + try + { + m_core->checkControl(); + m_core->checkEmergency(); + } + catch(MinorServoErrors::StatusErrorExImpl& ex) + { + ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + this->setStopped(); + return; + } + + if(m_core->m_elevation_tracking_enabled == Management::MNG_FALSE) + { + // We get here if the tracking was disabled while already tracking, we stop + this->setStopped(); + return; + } + + if(m_core->m_motion_status != MinorServo::MOTION_STATUS_TRACKING || m_core->m_subsystem_status != Management::MNG_OK) + { + // System is not ready or configured for tracking, reset the tracking + resetTracking(); + return; + } + + if(CORBA::is_nil(m_antennaBoss)) + { + try + { + m_antennaBoss = m_core->m_component->getContainerServices()->getComponent<Antenna::AntennaBoss>("ANTENNA/Boss"); + } + catch(maciErrType::CannotGetComponentExImpl& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoTrackingThread::runLoop()", "cannot get the AntennaBoss component!"); + resetTracking(); + return; + } + } + + if(m_point_id == 0) + { + m_point_time = CIRATools::getUNIXEpoch() + TRACKING_FUTURE_TIME; + m_trajectory_id = int(m_point_time); + } + else + { + if(std::all_of(m_core->m_tracking_servos.begin(), m_core->m_tracking_servos.end(), [this](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_PROGRAMTRACK ? true : false; + if(!return_value) + { + _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str()); + } + return return_value; + } + else + { + return true; + } + })) + { + m_core->m_tracking = Management::MNG_TRUE; + } + else + { + resetTracking(); + return; + } + } + + ACSErr::Completion_var comp; + + bool tracking_error = false; + + for(const auto& [servo_name, servo] : m_core->m_tracking_servos) + { + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_id == 0 ? m_point_time : 0, *servo->calcCoordinates(getElevation(m_point_time))); + } + catch(MinorServoErrors::CommunicationErrorExImpl& ex) + { + _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo_name + ": received NAK while sending the tracking point!").c_str()); + tracking_error = true; + } + catch(ComponentErrors::SocketErrorEx& ex) + { + _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo_name + ": error encountered while sending the tracking point!").c_str()); + tracking_error = true; + } + } + } + + if(tracking_error) + { + resetTracking(); + return; + } + + m_point_id++; + m_point_time += TRACKING_TIMEGAP; + + unsigned long time_to_sleep = ((m_point_time - TRACKING_FUTURE_TIME) - CIRATools::getUNIXEpoch()) * 10000000; + this->setSleepTime(time_to_sleep); +} + +void SRTMinorServoTrackingThread::resetTracking() +{ + this->setSleepTime(500000); // 50 milliseconds + m_point_id = 0; + m_point_time = 0; + m_core->m_tracking = Management::MNG_FALSE; +} + +double SRTMinorServoTrackingThread::getElevation(double time) +{ + AUTO_TRACE(m_thread_name + "::getElevation()"); + + double azimuth, elevation; + m_antennaBoss->getRawCoordinates(CIRATools::UNIXEpoch2ACSTime(time), azimuth, elevation); + return elevation * DR2D; +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index 4a24df7cd..4f07f339d 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -18,16 +18,20 @@ void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORB if(virtual_coordinates.length() != m_virtual_axes) { - //Wrong number of virtual_coordinates + _EXCPT(MinorServoErrors::TrackingErrorExImpl, impl, (m_servo_name + "::programTrack()").c_str()); + impl.addData("Reason", "Wrong number of values for this servo system!"); + throw impl; } - std::vector<double> coords(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coords, start_time)); + SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coordinates, start_time)); if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") { - std::cout << "Cannot execute programTrack" << std::endl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::programTrack()").c_str()); + impl.setReason("Received NAK in response to a PRESET command!"); + throw impl; } } -- GitLab From eec1ab5f4d420a8027091b336d790b24109ca832 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 3 Jan 2024 14:03:09 +0000 Subject: [PATCH 048/150] Added setTsysRange to Skarab The setTsysRange method is only present in the centos_7_compatibility branch for the moment, so the Skarab component was missing the method since it was ported from the master branch only lately --- Common/Servers/Skarab/include/SkarabImpl.h | 10 ++++++++++ Common/Servers/Skarab/src/SkarabImpl.cpp | 23 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/Common/Servers/Skarab/include/SkarabImpl.h b/Common/Servers/Skarab/include/SkarabImpl.h index afba54519..6a0ddb6f5 100644 --- a/Common/Servers/Skarab/include/SkarabImpl.h +++ b/Common/Servers/Skarab/include/SkarabImpl.h @@ -352,6 +352,16 @@ public: * @param att new attenuation level, It could be in the range 0-15. A negative will keep the previous value. */ virtual void setAttenuation(CORBA::Long input,CORBA::Double att) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); + + /** + * This method is used to set a range in the bandwith of the backend where calculate the Tsys. + * @throw CORBA::SystemException + * @throw ComponentErrors::ComponentErrorsEx + * @throw BackendsErrors::BackendsErrorsEx + * @param freq starting frequency. + * @param bw bandwidth interval. + */ + virtual void setTsysRange(CORBA::Double freq,CORBA::Double bw) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx); /** * In order to get the inputs definition in just one call. The returned argument contains the configuration sequentially, the first element corresponds to the first input and so on. diff --git a/Common/Servers/Skarab/src/SkarabImpl.cpp b/Common/Servers/Skarab/src/SkarabImpl.cpp index 95ca7ec9c..d015b2b03 100644 --- a/Common/Servers/Skarab/src/SkarabImpl.cpp +++ b/Common/Servers/Skarab/src/SkarabImpl.cpp @@ -138,6 +138,7 @@ void SkarabImpl::initialize() throw (ACSErr::ACSbaseExImpl) m_parser->add("getTime",new function1<CCommandLine,non_constant,void_type,O<time_type> >(line,&CCommandLine::getTime),0 ); m_parser->add("initialize",new function1<CCommandLine,non_constant,void_type,I<string_type> >(line,&CCommandLine::setup),1 ); m_parser->add("getRms",new function1<CCommandLine,non_constant,void_type,O<doubleSeq_type> >(line,&CCommandLine::getRms),0 ); + m_parser->add("setTsysRange", new function2<CCommandLine,non_constant,void_type,I<double_type>,I<double_type> >(line,&CCommandLine::setTsysRange),2 ); threadPar.sender=this; threadPar.command=m_commandLine; @@ -668,6 +669,28 @@ void SkarabImpl::setAttenuation(CORBA::Long input,CORBA::Double att) throw (CORB } } +void SkarabImpl::setTsysRange(CORBA::Double freq,CORBA::Double bw) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) +{ + AUTO_TRACE("SkarabImpl::setTsysRange()"); + CSecAreaResourceWrapper<CCommandLine> line=m_commandLine->Get(); + try { + line->setTsysRange(freq,bw); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + catch (BackendsErrors::BackendsErrorsExImpl& ex) { + ex.log(LM_DEBUG); + throw ex.getBackendsErrorsEx(); + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SkarabImpl::setTsysRange()"); + dummy.log(LM_DEBUG); + throw dummy.getComponentErrorsEx(); + } +} + CORBA::Long SkarabImpl::getInputs(ACS::doubleSeq_out freq,ACS::doubleSeq_out bandWidth,ACS::longSeq_out feed,ACS::longSeq_out ifNumber) throw (CORBA::SystemException, ComponentErrors::ComponentErrorsEx,BackendsErrors::BackendsErrorsEx) { -- GitLab From 2b9fbb6257362815539f7c5a91be7d57437ce02a Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 15 Jan 2024 12:31:29 +0100 Subject: [PATCH 049/150] Fix #827, SRT CDB now points to "extraData" (#828) It does not point to "auxiliary" anymore --- SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 32d8ca7d9..2fde0991d 100644 --- a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SchedDir="/discos-archive/schedules/" DataDir="/discos-archive/data/" - SystemDataDir="/discos-archive/auxiliary/" + SystemDataDir="/discos-archive/extraData/" LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index b41203b74..3b8c89f50 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SchedDir="/discos-archive/schedules/" DataDir="/discos-archive/data/" - SystemDataDir="/discos-archive/auxiliary/" + SystemDataDir="/discos-archive/extraData/" LogDir="/discos-archive/logs/" ScheduleReportPath="" ScheduleBackuptPath="" -- GitLab From d1263fceb2da4cf077601d1566326c8079ce177a Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 24 Jan 2024 13:31:35 +0000 Subject: [PATCH 050/150] Updated CDB and schemas --- .../GFR/LookupTables/LookupTables.xml | 16 ++++++------ SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 14 ++++++++--- SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 14 ++++++++--- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 19 +++++++++++--- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 18 ++++++++++--- SRT/CDB/alma/MINORSERVO/Socket/Socket.xml | 4 +-- .../config/CDB/schemas/SRTMinorServo.xsd | 25 +++++++++++++++++-- ...d => SRTMinorServoSocketConfiguration.xsd} | 8 +++--- 8 files changed, 86 insertions(+), 32 deletions(-) rename SRT/Servers/SRTMinorServo/config/CDB/schemas/{SRTMinorServoSocket.xsd => SRTMinorServoSocketConfiguration.xsd} (81%) diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml index d0275a194..00e681dfa 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -12,14 +12,14 @@ <CCG> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG> <CCG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG_ASACTIVE> - <KKG> <axis>ROTATION</axis> <coefficients>0 </coefficients></KKG> - <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></KKG_ASACTIVE> - <WWG> <axis>ROTATION</axis> <coefficients>0 </coefficients></WWG> - <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></WWG_ASACTIVE> - <QQG> <axis>ROTATION</axis> <coefficients>0 </coefficients></QQG> - <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></QQG_ASACTIVE> - <TRI> <axis>ROTATION</axis> <coefficients>0 </coefficients></TRI> - <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></TRI_ASACTIVE> + <KKG> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG> + <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG_ASACTIVE> + <WWG> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG> + <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG_ASACTIVE> + <QQG> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG> + <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG_ASACTIVE> + <TRI> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI> + <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI_ASACTIVE> <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index e542e0eb7..75f01dc18 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -2,26 +2,32 @@ <!-- Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> -<SRTMinorServo +<SRTGenericMinorServo xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" physical_axes="2" - virtual_axes="1"> + virtual_axes="1" + max_speed="3.5" + acceleration="2" + min_range="-166" + max_range="168.5"> <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> <virtual_axes description="Number of virtual axes" /> - <virtual_positions description="Sequence, virtual axes positions" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> -</SRTMinorServo> +</SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index e542e0eb7..83ebde14b 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -2,26 +2,32 @@ <!-- Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> -<SRTMinorServo +<SRTGenericMinorServo xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" physical_axes="2" - virtual_axes="1"> + virtual_axes="1" + max_speed="3.14" + acceleration="1.57" + min_range="-165" + max_range="165"> <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> <virtual_axes description="Number of virtual axes" /> - <virtual_positions description="Sequence, virtual axes positions" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> -</SRTMinorServo> +</SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 72c2ede30..cb8ba9221 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -2,26 +2,37 @@ <!-- Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> -<SRTMinorServo +<SRTProgramTrackMinorServo xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" physical_axes="5" - virtual_axes="3"> + virtual_axes="3" + max_speed="1, 1, 1" + acceleration="1, 1, 1" + min_range="0, 0, 0" + max_range="0, 0, 0"> + <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> <virtual_axes description="Number of virtual axes" /> - <virtual_positions description="Sequence, virtual axes positions" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> -</SRTMinorServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index a70473464..f625964b3 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -2,26 +2,36 @@ <!-- Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> -<SRTMinorServo +<SRTProgramTrackMinorServo xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" physical_axes="6" - virtual_axes="6"> + virtual_axes="6" + max_speed="4, 4, 4, 0.38, 0.38, 0.38" + acceleration="8, 8, 8, 0.76, 0.76, 0.76" + min_range="-50, -110, -50, -0.25, -0.25, -0.25" + max_range="50, 110, 50, 0.25, 0.25, 0.25"> <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> <block description="Minor servo in block status" /> <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> <physical_axes_enabled description="Sequence, physical axes enabled" /> <physical_positions description="Sequence, physical axes positions" /> <virtual_axes description="Number of virtual axes" /> - <virtual_positions description="Sequence, virtual axes positions" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> -</SRTMinorServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml index 69aceac45..b1de61c19 100644 --- a/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml +++ b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -3,8 +3,8 @@ Giuseppe Carboni, giuseppe.carboni@inaf.it --> -<SRTMinorServoSocket - xmlns="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" +<SRTMinorServoSocketConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index 47490c9cb..198b9eeb2 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -37,7 +37,7 @@ </xs:complexContent> </xs:complexType> - <xs:complexType name="SRTMinorServoType"> + <xs:complexType name="SRTBaseMinorServoType"> <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:sequence> @@ -45,9 +45,11 @@ <xs:element name="drive_cabinet_status" type="SRTMinorServoCabinetStatusType" /> <xs:element name="block" type="mng:BooleanType" /> <xs:element name="operative_mode" type="SRTMinorServoOperativeModeType" /> + <xs:element name="physical_axes" type="baci:ROlong" /> <xs:element name="physical_axes_enabled" type="baci:RObooleanSeq" /> <xs:element name="physical_positions" type="baci:ROdoubleSeq" /> <xs:element name="virtual_axes" type="baci:ROlong" /> + <xs:element name="plain_virtual_positions" type="baci:ROdoubleSeq" /> <xs:element name="virtual_positions" type="baci:ROdoubleSeq" /> <xs:element name="virtual_offsets" type="baci:ROdoubleSeq" /> <xs:element name="virtual_user_offsets" type="baci:ROdoubleSeq" /> @@ -57,10 +59,29 @@ </xs:sequence> <xs:attribute name="physical_axes" type="xs:unsignedShort" use="required" /> <xs:attribute name="virtual_axes" type="xs:unsignedShort" use="required" /> + <xs:attribute name="max_speed" type="xs:string" use="required" /> + <xs:attribute name="acceleration" type="xs:string" use="required" /> + <xs:attribute name="min_range" type="xs:string" use="required" /> + <xs:attribute name="max_range" type="xs:string" use="required" /> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:element name="SRTMinorServo" type="SRTMinorServoType"/> + <xs:complexType name="SRTProgramTrackMinorServoType"> + <xs:complexContent> + <xs:extension base="SRTBaseMinorServoType"> + <xs:sequence> + <xs:element name="tracking" type="mng:BooleanType" /> + <xs:element name="trajectory_id" type="baci:ROlong" /> + <xs:element name="total_trajectory_points" type="baci:ROlong" /> + <xs:element name="remaining_trajectory_points" type="baci:ROlong" /> + </xs:sequence> + <xs:attribute name="tracking_delta" type="xs:double" use="optional" default="1.0" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTGenericMinorServo" type="SRTBaseMinorServoType" /> + <xs:element name="SRTProgramTrackMinorServo" type="SRTProgramTrackMinorServoType" /> </xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd similarity index 81% rename from SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd rename to SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd index 3b88dbbba..b37cfaedd 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocket.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd @@ -3,9 +3,9 @@ Giuseppe Carboni, giuseppe.carboni@inaf.it --> <xs:schema - targetNamespace="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns="urn:schemas-cosylab-com:SRTMinorServoSocket:1.0" + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xi="http://www.w3.org/2001/XInclude" @@ -17,7 +17,7 @@ <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> - <xs:complexType name="SRTMinorServoSocketType"> + <xs:complexType name="SRTMinorServoSocketConfigurationType"> <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:attribute name="IPAddress" type="xs:string" use="required" /> @@ -27,6 +27,6 @@ </xs:complexContent> </xs:complexType> - <xs:element name="SRTMinorServoSocket" type="SRTMinorServoSocketType"/> + <xs:element name="SRTMinorServoSocketConfiguration" type="SRTMinorServoSocketConfigurationType"/> </xs:schema> -- GitLab From ad1396357e62673cc5dc229c53deab969fb23eb5 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 25 Jan 2024 14:48:48 +0000 Subject: [PATCH 051/150] Updated SRTMinorServoLibraries --- .../include/PySRTMinorServoCommandLibrary.h | 129 ++++----- .../include/SRTMinorServoAnswerMap.h | 232 +++++++++++++++++ .../include/SRTMinorServoCommandLibrary.h | 128 ++++----- .../include/SRTMinorServoSocket.h | 215 +++++++++++++++ .../SRTMinorServoLibrary/src/Makefile | 11 +- .../src/PySRTMinorServoCommandLibrary.cpp | 4 +- .../src/SRTMinorServoCommandLibrary.cpp | 32 ++- .../src/SRTMinorServoSocket.cpp | 245 ++++++++++++++++++ .../SRTMinorServoLibrary/tests/Makefile | 22 +- ...pp => SRTMinorServoCommandLibraryTest.cpp} | 32 +-- .../tests/SRTMinorServoSocketTest.cpp | 179 +++++++++++++ .../tests/pyunit/__init__.py | 9 +- 12 files changed, 1071 insertions(+), 167 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp rename SRT/Libraries/SRTMinorServoLibrary/tests/{unittest.cpp => SRTMinorServoCommandLibraryTest.cpp} (85%) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h index ee32b5877..dc719e6b6 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h @@ -11,71 +11,74 @@ #include "SRTMinorServoCommandLibrary.h" -/** - * SRT Minor Servo Command Library Python Wrapper - * - * This class wraps the SRTMinorServoCommandLibrary with boost_python in order to grant access to its static functions via Python - */ -class PySRTMinorServoCommandLibrary : public SRTMinorServoCommandLibrary +namespace MinorServo { -public: - /* - * Builds the command used to move a single servo to a given set of coordinates - * This is an overload of the original SRTMinorServoCommandLibrary::preset function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector - * @param servo_id the ID of the single servo to be moved - * @param coordinates a Python list containing the N coordinates to be sent to the servo - * @return the composed message + /** + * SRT Minor Servo Command Library Python Wrapper + * + * This class wraps the SRTMinorServoCommandLibrary with boost_python in order to grant access to its static functions via Python */ - static std::string preset(std::string servo_id, boost::python::list& coordinates); + class PySRTMinorServoCommandLibrary : public SRTMinorServoCommandLibrary + { + public: + /* + * Builds the command used to move a single servo to a given set of coordinates + * This is an overload of the original SRTMinorServoCommandLibrary::preset function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string preset(std::string servo_id, boost::python::list& coordinates); - /* - * Builds the command used to provide a single tracking set of coordinates to a single servo - * This is an overload of the original SRTMinorServoCommandLibrary::programTrack function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector - * @param servo_id the ID of the single servo to send the command to - * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to - * @param point_id the ID number of the given set of coordinates inside the trajectory - * @param coordinates a Python list containing the N coordinates the servo have to move to at the given time - * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory - * @return the composed message - */ - static std::string programTrack(std::string servo_id, unsigned int trajectory_id, unsigned int point_id, boost::python::list& coordinates, double start_time=-1); + /* + * Builds the command used to provide a single tracking set of coordinates to a single servo + * This is an overload of the original SRTMinorServoCommandLibrary::programTrack function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a Python list containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory + * @return the composed message + */ + static std::string programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, boost::python::list& coordinates, double start_time=-1); - /* - * Builds the command used to provide a set of offsets to a given servo - * This is an overload of the original SRTMinorServoCommandLibrary::offset function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector - * @param servo_id the ID of the single servo to be moved - * @param coordinates a Python list containing the N coordinates to be sent to the servo - * @return the composed message - */ - static std::string offset(std::string servo_id, boost::python::list& coordinates); + /* + * Builds the command used to provide a set of offsets to a given servo + * This is an overload of the original SRTMinorServoCommandLibrary::offset function + * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string offset(std::string servo_id, boost::python::list& coordinates); - /* - * Parses the received answer by splitting it and synamically populating a std::map - * This is an overload of the original SRTMinorServoCommandLibrary::parseAnswer function - * An overload was needed in order to replace the original std::map object with a boost::python::dict - * @param answer the string containing the answer received from the VBrain proxy - * @return a Python dictionary containing the answer splitted into keys and values. The keys are always strings, the values can either be int, double or strings. - */ - static boost::python::dict parseAnswer(std::string answer); + /* + * Parses the received answer by splitting it and synamically populating a std::map + * This is an overload of the original SRTMinorServoCommandLibrary::parseAnswer function + * An overload was needed in order to replace the original std::map object with a boost::python::dict + * @param answer the string containing the answer received from the VBrain proxy + * @return a Python dictionary containing the answer splitted into keys and values. The keys are always strings, the values can either be int, double or strings. + */ + static boost::python::dict parseAnswer(std::string answer); -private: - /* - * Converts the given Python list into a C++ std::vector object - * @param py_list the given Python list to be converted - * @return the composed C++ std::vector containing doubles - */ - static std::vector<double> pylist2cppvector(boost::python::list& py_list); -}; + private: + /* + * Converts the given Python list into a C++ std::vector object + * @param py_list the given Python list to be converted + * @return the composed C++ std::vector containing doubles + */ + static std::vector<double> pylist2cppvector(boost::python::list& py_list); + }; +} /* * The following 3 lines of code allow the overloaded functions to ignore the optional parameter and use the default one defined in the original SRTMinorServoCommandLibrary header file */ -BOOST_PYTHON_FUNCTION_OVERLOADS(status, PySRTMinorServoCommandLibrary::status, 0, 1) -BOOST_PYTHON_FUNCTION_OVERLOADS(stow, PySRTMinorServoCommandLibrary::stow, 1, 2) -BOOST_PYTHON_FUNCTION_OVERLOADS(programTrack, PySRTMinorServoCommandLibrary::programTrack, 4, 5) +BOOST_PYTHON_FUNCTION_OVERLOADS(status, MinorServo::PySRTMinorServoCommandLibrary::status, 0, 1) +BOOST_PYTHON_FUNCTION_OVERLOADS(stow, MinorServo::PySRTMinorServoCommandLibrary::stow, 1, 2) +BOOST_PYTHON_FUNCTION_OVERLOADS(programTrack, MinorServo::PySRTMinorServoCommandLibrary::programTrack, 4, 5) /* * Python module definition. Since the original SRTMinorServoCommandLibrary only contains static functions, we write the Python module with static functions only, omitting the class @@ -83,13 +86,13 @@ BOOST_PYTHON_FUNCTION_OVERLOADS(programTrack, PySRTMinorServoCommandLibrary::pro BOOST_PYTHON_MODULE(libPySRTMinorServoCommandLibrary) { using namespace boost::python; - def("status", &PySRTMinorServoCommandLibrary::status, status(arg("servo_id") = "")); - def("setup", &PySRTMinorServoCommandLibrary::setup); - def("stow", &PySRTMinorServoCommandLibrary::stow, stow(arg("stow_position") = 1)); - def("stop", &PySRTMinorServoCommandLibrary::stop); - def("preset", &PySRTMinorServoCommandLibrary::preset); - def("programTrack", &PySRTMinorServoCommandLibrary::programTrack, programTrack(arg("start_time") = -1)); - def("offset", &PySRTMinorServoCommandLibrary::offset); - def("parseAnswer", &PySRTMinorServoCommandLibrary::parseAnswer); + def("status", &MinorServo::PySRTMinorServoCommandLibrary::status, status(arg("servo_id") = "")); + def("setup", &MinorServo::PySRTMinorServoCommandLibrary::setup); + def("stow", &MinorServo::PySRTMinorServoCommandLibrary::stow, stow(arg("stow_position") = 1)); + def("stop", &MinorServo::PySRTMinorServoCommandLibrary::stop); + def("preset", &MinorServo::PySRTMinorServoCommandLibrary::preset); + def("programTrack", &MinorServo::PySRTMinorServoCommandLibrary::programTrack, programTrack(arg("start_time") = -1)); + def("offset", &MinorServo::PySRTMinorServoCommandLibrary::offset); + def("parseAnswer", &MinorServo::PySRTMinorServoCommandLibrary::parseAnswer); } #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h new file mode 100644 index 000000000..83bef228d --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h @@ -0,0 +1,232 @@ +#ifndef _SRTMINORSERVOANSWERMAP_H +#define _SRTMINORSERVOANSWERMAP_H + +#include <sstream> +#include <map> +#include <variant> +#include <type_traits> +#include <mutex> +#include <shared_mutex> +#include <IRA> + +#include <Cplusplus11Helper.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wunused-function") + +static std::ostream& operator<<(std::ostream& out, const std::variant<long, double, std::string>& value) +{ + std::visit([&out](const auto& val) { out << val; }, value); + return out; +} + +C11_IGNORE_WARNING_POP + + +namespace MinorServo +{ + /** + * The following templates are useful if you want to check if a given type for the SRTMinorServoAnswerMap is accepted + */ + template <typename T> + struct is_string : public std::disjunction<std::is_same<char*, std::decay_t<T>>, std::is_same<const char*, std::decay_t<T>>, std::is_same<std::string, std::decay_t<T>>> {}; + + template <typename T> + inline constexpr bool is_string_v = is_string<T>::value; + + template <typename T> + struct is_known : public std::disjunction<std::is_arithmetic<std::decay_t<T>>, is_string<std::decay_t<T>>> {}; + + template <typename T> + inline constexpr bool is_known_v = is_known<T>::value; + + class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> + { + /** + * This class privately extends the type std::map<std::string, std::variant<long, double, std::string>>. + * It is therefore an std::map which can hold different types of values, such as long, double and str::string, in the same container. + * It is used to store the answers received from the SRTMinorServo Leonardo system. + * This design was critical since all the received values have heterogeneous keys and values. + * With this object, the SRTMinorServoSocket can correctly retrieve and store all the received values without having to know the keys or types a priori. + */ + + /* + * Declare this class as friend since it will have to iterate through the inner map + */ + friend class PySRTMinorServoCommandLibrary; + public: + /** + * Use the same clear method of the parent class + */ + using std::map<std::string, std::variant<long, double, std::string>>::clear; + + /** + * Default constructor, initialize the std::map object and the synchronization mutex + */ + SRTMinorServoAnswerMap() : std::map<std::string, std::variant<long, double, std::string>>(), m_mutex() {} + + /** + * Initialize the std::map with the content of another SRTMinorServoAnswerMap, initialize the mutex, lock both objects + * @param other the SRTMinorServoAnswerMap with which the content of the current object will be initialized + */ + SRTMinorServoAnswerMap(const SRTMinorServoAnswerMap& other) : m_mutex() + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * Assignment operator. It lock both the current object and the assigned one's mutexes + * @param other the SRTMinorServoAnswerMap which values have to be stored in the current object + */ + SRTMinorServoAnswerMap& operator=(const SRTMinorServoAnswerMap& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + return *this; + } + + /** + * Equality operator, only check the std::map and avoid comparing the mutexes, which will obviously be different + * @param other the SRTMinorServoAnswerMap object to compare the current object with + */ + bool operator==(const SRTMinorServoAnswerMap& other) const + { + return static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(*this) == static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * get method. It must be used with a template parameter, in order for the SRTMinorServoAnswerMap to be able to retrieve the correct type of object for the given key. + * The method will automatically convert the retrieved long, double or std::string to the given template type. + * @param T the type (i.e.: int, long, double, char*) of the object to be retrieved. It can be anything derived from integral, floating point or string values. + * @param key the key assigned to the value you want to retrieve + * @return the value associated to given key 'key', returned as template type 'T', if possible. Be aware that some casts (i.e.: long to int, double to float) will lose precision and/or overflow + * @throw std::bad_variant_access when retrieving the stored value by asking the wrong type (i.e.: stored type is a double but T is char*) + * @throw std::runtime_error when attempting to retrieve a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + T get(const std::string& key) const + { + if constexpr(std::negation_v<MinorServo::is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::shared_lock<std::shared_mutex> lock(m_mutex); + + if constexpr(std::is_integral_v<T>) + { + return (T)std::get<long>(this->at(key)); + } + else if constexpr(std::is_floating_point_v<T>) + { + return (T)std::get<double>(this->at(key)); + } + else if constexpr(is_string_v<T>) + { + return (T)std::get<std::string>(this->at(key)).c_str(); + } + } + + /** + * put method. The template parameter is automatically deducted from the 'value' argument. Stores the given 'value' associated with key 'key' + * @param key the key associated to the stored value 'value' + * @param value the value we are storing with the given key 'key' + * @throw std::runtime_error when attempting to store a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + void put(const std::string& key, const T& value) + { + if constexpr(std::negation_v<MinorServo::is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::unique_lock<std::shared_mutex> lock(m_mutex); + + if constexpr(std::is_integral_v<T>) + { + this->operator[](key) = long(value); + } + else if constexpr(std::is_floating_point_v<T>) + { + this->operator[](key) = double(value); + } + else if constexpr(is_string_v<T>) + { + this->operator[](key) = std::string(value); + } + } + + /** + * This method checks whether the container holds a value for the given key 'key' + * @param key the key for the value we want to check if it's present in the container + * @return true if the value is present in the container, false otherwise + */ + bool contains(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->find(key) != this->end(); + } + + /** + * This methods returns the std::variant type index for the value associated to the given key 'key' + * @param key the key for the value we want to retrieve the type index + * @throw std::out_of_range if the key is not found in the object + * @return 0 for long, 1 for double, 2 for std::string + */ + unsigned int index(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->at(key).index(); + } + + /** + * This method checks whether the contained answer to a command sent to the SRTMinorServo system was positive or not + * @return true if the command was correctly accepted, false if the command was not accepted or the 'OUTPUT' key was not found (unlikely scenario) + */ + const bool checkOutput() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + try + { + if(this->get<std::string>("OUTPUT") == "GOOD") + { + return true; + } + } + catch(std::out_of_range& ex) + { + // Key not found + } + + return false; + } + + /** + * This method retrieves the ACS::Time associated with the received answer map. It converts the value from UNIX Epoch (double) to ACS::Time + * @return the ACS::Time associated with the answer map + */ + const ACS::Time getTimestamp() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); + } + + private: + /** + * Shared mutex to control read and write accesses. Multiple reading access are permitted and will only block writing access. Writing access will block all accesses + */ + mutable std::shared_mutex m_mutex; + }; +} + + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 8649d5c0c..d6d21dd70 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -7,85 +7,89 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ +#include "SRTMinorServoAnswerMap.h" #include <sstream> #include <vector> #include <map> #include <variant> + #define CLOSER std::string("\r\n") -using SRTMinorServoAnswerMap = std::map<std::string, std::variant<long, double, std::string> >; -/** - * SRT Minor Servo Command Library - * - * This class features static functions used to build commands to be sent to the PON minor servo control unit of the Sardinia Radio Telescope - */ -class SRTMinorServoCommandLibrary +namespace MinorServo { -public: /** - * Builds the command used to ask the status of the MSCU or, eventually, a single servo - * @param servo_id the ID string of the eventual single servo to retrieve the status - * @return the composed message + * SRT Minor Servo Command Library + * + * This class features static functions used to build commands to be sent to the PON minor servo control unit of the Sardinia Radio Telescope */ - static std::string status(std::string servo_id = ""); + class SRTMinorServoCommandLibrary + { + public: + /** + * Builds the command used to ask the status of the MSCU or, eventually, a single servo + * @param servo_id the ID string of the eventual single servo to retrieve the status. Send no servo_id argument to retrieve the general status of the system + * @return the composed message + */ + static std::string status(std::string servo_id = ""); - /** - * Builds the command used to configure the telescope for an observation - * @param configuration the desired observing configuration - * @return the composed message - */ - static std::string setup(std::string configuration); + /** + * Builds the command used to configure the telescope for a specific focal path + * @param configuration the desired focal path to command to the minor servo systems + * @return the composed message + */ + static std::string setup(std::string configuration); - /* - * Builds the command used to stow a single servo system to a given stow position - * @param servo_id the ID string of the single servo to be stowed - * @param stow_position the position to which the servo have to stow to - * @return the composed message - */ - static std::string stow(std::string servo_id, unsigned int stow_position = 1); + /* + * Builds the command used to stow a single servo system to a given stow position + * @param servo_id the ID string of the single servo to be stowed + * @param stow_position the position to which the servo have to stow to + * @return the composed message + */ + static std::string stow(std::string servo_id, unsigned int stow_position = 1); - /* - * Builds the command used to stop a single servo system - * @param servo_id the ID string of the single servo to be stopped - * @return the composed message - */ - static std::string stop(std::string servo_id); + /* + * Builds the command used to stop a single servo system + * @param servo_id the ID string of the single servo to be stopped + * @return the composed message + */ + static std::string stop(std::string servo_id); - /* - * Builds the command used to move a single servo to a given set of coordinates - * @param servo_id the ID string of the single servo to be moved - * @param coordinates a vector containing the N coordinates to be sent to the servo - * @return the composed message - */ - static std::string preset(std::string servo_id, std::vector<double> coordinates); + /* + * Builds the command used to move a single servo to a given set of virtual coordinates + * @param servo_id the ID string of the single servo to be moved + * @param coordinates a vector containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string preset(std::string servo_id, std::vector<double> coordinates); - /* - * Builds the command used to provide a single tracking set of coordinates to a single servo - * @param servo_id the ID string of the single servo to send the command to - * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to - * @param point_id the ID number of the given set of coordinates inside the trajectory - * @param coordinates a vector containing the N coordinates the servo have to move to at the given time - * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory - * @return the composed message - */ - static std::string programTrack(std::string servo_id, long unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time = 0); + /* + * Builds the command used to provide a single tracking point of virtual coordinates to a single servo + * @param servo_id the ID string of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a vector containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX Epoch of the starting instant of the trajectory + * @return the composed message + */ + static std::string programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, std::vector<double> coordinates, double start_time = 0); - /* - * Builds the command used to send a set of offset coordinates - * @param servo_id the ID string of the single servo to send the offsets to - * @param coordinates a vector containing the N offsets to be added the servo coordinates - * @return the composed message - */ - static std::string offset(std::string servo_id, std::vector<double> coordinates); + /* + * Builds the command used to send a set of virtual offsets to a single servo + * @param servo_id the ID string of the single servo to send the offsets to + * @param coordinates a vector containing the N offsets to be added the servo coordinates + * @return the composed message + */ + static std::string offset(std::string servo_id, std::vector<double> coordinates); - /* - * Parses the received answer by splitting it and synamically populating a std::map - * @param answer the string containing the answer received from the VBrain proxy - * @return a std::map (dictionary) containing the answer splitted into keys and values. The keys are always std::string, the values can either be int, double or std::string. - */ - static SRTMinorServoAnswerMap parseAnswer(std::string answer); -}; + /* + * Parses the received answer by splitting it and dynamically populating a SRTMinorServoAnswerMap object + * @param answer the string containing the answer received from the VBrain proxy + * @return a SRTMinorServoAnswerMap dictionary containing the answer splitted into keys and values. The keys are always std::string, the values can either be long, double or std::string. + */ + static SRTMinorServoAnswerMap parseAnswer(std::string answer); + }; +} #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h new file mode 100644 index 000000000..48056718f --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h @@ -0,0 +1,215 @@ +#ifndef __SRTMINORSERVOSOCKET_H__ +#define __SRTMINORSERVOSOCKET_H__ + +/** + * SRTMinorServoSocket.h + * 2023/02/23 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <IRA> +#include <mutex> +#include <ComponentErrors.h> +#include <MinorServoErrors.h> +#include <optional> +#include "SRTMinorServoCommandLibrary.h" + + +#define SOCKET_TIMEOUT 0.1 +#define CONFIG_DOMAIN "alma/" +#define CONFIG_DIRNAME "/MINORSERVO/Socket" + + +class SRTMinorServoSocketTest; +class SRPProgramTrackTest; +class DerotatorProgramTrackTest; +class CombinedProgramTrackTest; +class ReadStatusOnlyTest; + + +namespace MinorServo +{ + class SRTMinorServoSocket: public IRA::CSocket + { + /** + * This class implements a singleton socket. The singleton pattern was necessary to provide each servo system component communication capabilities with the Leonardo system. + * As long as all the said components run on the same container this will only be instanced once. + */ + + /** + * Declare the testing classes as friend classes in order for them to have access to destroyInstance for testing purposes + */ + friend class ::SRTMinorServoSocketTest; + friend class ::SRPProgramTrackTest; + friend class ::DerotatorProgramTrackTest; + friend class ::CombinedProgramTrackTest; + friend class ::ReadStatusOnlyTest; + + public: + /** + * Calls the constructor and returns the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed + * @throw MinorServoErrors::CommunicationErrorExImpl when the user calls this method a second time with different IP address and port arguments + * @return the singleton socket instance, eventually connected to the given IP address and port, by reference + */ + static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT); + + /** + * Returns the previously generated singleton socket instance + * @throw MinorServoErrors::CommunicationErrorExImpl when the user calls this method when the instance has not been generated yet + * @return the singleton socket instance, by reference + */ + static SRTMinorServoSocket& getInstance(); + + /** + * Sends a command on the socket and returns the received answer, if any + * @param command the command to be sent over the socket + * @param map, optional SRTMinorServoAnswerMap object. If provided, the 'map' argument content gets updated with the newly received answer + * @throw MinorServoErrors::CommunicationErrorExImpl when the operation of sending or receiving fails unexpectedly + * @return the received answer to the given command + */ + SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); + + /** + * Copy constructor operator disabled by default + */ + SRTMinorServoSocket(SRTMinorServoSocket const&) = delete; + + /** + * Copy assignment operator disabled by default + */ + void operator=(SRTMinorServoSocket const&) = delete; + + /** + * Method to check if socket is connected + * @return true if the socket is connected, false otherwise + */ + const bool isConnected() const; + + private: + /** + * Constructor method. Generates the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed + */ + SRTMinorServoSocket(std::string ip_address, int port, double timeout); + + /** + * Destructor method. Closes the socket upon destruction + */ + ~SRTMinorServoSocket(); + + /** + * Force the destruction of the singleton socket object. Only used in tests + */ + static void destroyInstance(); + + /** + * Connection function. It gets called every time the socket gets disconnected + * throw MinorServoErrors::CommunicationErrorExImpl when the connection attempt fails + */ + void connect(); + + /** + * Instance of the socket. By default it gets initialized to a null pointer + */ + inline static SRTMinorServoSocket* m_instance = nullptr; + + /** + * IP address and port of the socket. Being object members their values only exist when a singleton socket object is created correctly + */ + std::string m_ip_address; + int m_port; + + /** + * Timeout for communication operations + */ + double m_timeout; + + /** + * Mutex object used to syncronize communications and prevent collisions between multiple threads + */ + std::mutex m_mutex; + + /** + * Library mutex, used only to synchronize the getInstance methods + */ + static std::mutex c_mutex; + + /** + * Socket status enumerator + */ + enum socket_status + { + NOTREADY, + TIMEOUT, + READY + } m_socket_status; + + /** + * Socket error variable. This stores an error condition in case it arises + */ + IRA::CError m_error; + }; + + + class SRTMinorServoSocketConfiguration + { + /** + * This class implements a singleton socket configuration object. The singleton pattern was necessary to provide each servo system component access to the singleton socket parameters. + * As long as all the said components run on the same container this will only be instanced once. + * The first component to instantiate the singleton configuration will also instantiate the socket, opening communications. + */ + public: + /** + * Calls the constructor and returns the singleton socket configuration instance + * @param containerServices, the container services necessary to read the configuration from the CDB + * @return the singleton socket configuration instance + */ + static SRTMinorServoSocketConfiguration& getInstance(maci::ContainerServices* containerServices); + + /** + * Copy constructor operator disabled by default + */ + SRTMinorServoSocketConfiguration(SRTMinorServoSocketConfiguration const&) = delete; + + /** + * Copy assignment operator disabled by default + */ + void operator=(SRTMinorServoSocketConfiguration const&) = delete; + + /** + * IP address and port of the socket configuration + */ + std::string m_ip_address; + int m_port; + + /** + * Timeout for communication operations + */ + double m_timeout; + + private: + /** + * Constructor method + * @param containerServices, the container services necessary to read the configuration from the CDB + * @return the socket configuration object + */ + SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices); + + /** + * Destructor method + */ + ~SRTMinorServoSocketConfiguration(); + + /** + * Instance of the socket configuration object. By default it gets initialized to a null pointer + */ + inline static SRTMinorServoSocketConfiguration* m_instance = nullptr; + }; +} + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 2a1367b96..f9034eb01 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -54,21 +54,24 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h +INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary PySRTMinorServoCommandLibrary +LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary PySRTMinorServoCommandLibrary LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -SRTMinorServoCommandLibrary_LIBS = +SRTMinorServoCommandLibrary_LIBS = pthread IRALibrary PySRTMinorServoCommandLibrary_OBJECTS = PySRTMinorServoCommandLibrary PySRTMinorServoCommandLibrary_CFLAGS = -std=c++17 PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python3 +SRTMinorServoSocketLibrary_OBJECTS = SRTMinorServoSocket +SRTMinorServoSocketLibrary_LIBS = IRALibrary ComponentErrors MinorServoErrors SRTMinorServoCommandLibrary +SRTMinorServoSocket_CFLAGS = -std=c++17 # # <brief description of lllll library> @@ -95,7 +98,7 @@ PY_SCRIPTS_L = PY_MODULES = PY_MODULES_L = -PY_PACKAGES = SRTMinorServoCommandLibrary +PY_PACKAGES = #SRTMinorServoCommandLibrary PY_PACKAGES_L = pppppp_MODULES = diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp index ed66a79ba..ac0a61534 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -1,11 +1,13 @@ #include "PySRTMinorServoCommandLibrary.h" +using namespace MinorServo; + std::string PySRTMinorServoCommandLibrary::preset(std::string servo_id, boost::python::list& coordinates) { return SRTMinorServoCommandLibrary::preset(servo_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates)); } -std::string PySRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned int trajectory_id, unsigned int point_id, boost::python::list& coordinates, double start_time) +std::string PySRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, boost::python::list& coordinates, double start_time) { return SRTMinorServoCommandLibrary::programTrack(servo_id, trajectory_id, point_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates), start_time); } diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index 1c5ee5be8..36c784843 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -9,6 +9,8 @@ #include <algorithm> #include "SRTMinorServoCommandLibrary.h" +using namespace MinorServo; + std::string SRTMinorServoCommandLibrary::status(std::string servo_id) { std::stringstream command; @@ -54,7 +56,7 @@ std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vecto return command.str(); } -std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, long unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time) +std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, std::vector<double> coordinates, double start_time) { std::stringstream command; command << "PROGRAMTRACK=" << servo_id << "," << trajectory_id << "," << point_id << ","; @@ -114,8 +116,10 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ // No value, could be the timestamp if(value.empty()) { - if(args.find("TIMESTAMP") != args.end()) // Timestamp already found, some other value is missing + if(args.contains("TIMESTAMP")) // Timestamp already found, some other value is missing + { throw std::invalid_argument(std::string("Missing key for value " + value)); + } value = key; key = "TIMESTAMP"; @@ -124,32 +128,42 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ if(key == "OUTPUT") { if(value != "GOOD" && value != "BAD") + { throw std::invalid_argument(std::string("Unrecognized OUTPUT value: " + value)); + } - args[key] = value; + args.put(key, value); } else if(key == "TIMESTAMP") { size_t last_char; - args[key] = std::stod(value, &last_char); + args.put(key, std::stod(value, &last_char)); if(last_char != value.size()) + { throw std::invalid_argument(std::string("Wrong TIMESTAMP value: " + value)); + } } else { size_t last_char; - args[key] = std::stol(value, &last_char); + args.put(key, std::stol(value, &last_char)); if(last_char != value.size()) - args[key] = std::stod(value); + { + args.put(key, std::stod(value)); + } } } - if(args.find("OUTPUT") == args.end()) + if(!args.contains("OUTPUT")) + { throw std::invalid_argument(std::string("Missing OUTPUT value!")); - else if(std::get<std::string>(args["OUTPUT"]) == "GOOD" && args.find("TIMESTAMP") == args.end()) + } + else if(args.checkOutput() && !args.contains("TIMESTAMP")) + { throw std::invalid_argument(std::string("Missing TIMESTAMP value!")); + } } - catch(const std::invalid_argument& e) + catch(const std::invalid_argument& ex) { // If we are not able to convert any of the values to the correct type, // or if OUTPUT and/or TIMESTAMP is missing, we send back an empty dictionary. diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp new file mode 100644 index 000000000..c5cc76fbf --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -0,0 +1,245 @@ +#include "SRTMinorServoSocket.h" + +using namespace MinorServo; + +std::mutex SRTMinorServoSocket::c_mutex; + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port, double timeout) +{ + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + + if(m_instance != nullptr) + { + if(m_instance->m_ip_address != ip_address || m_instance->m_port != port) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); + impl.setReason(("Socket already open on '" + m_instance->m_ip_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + throw impl; + } + } + else + { + m_instance = new SRTMinorServoSocket(ip_address, port, timeout); + } + return *m_instance; +} + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance() +{ + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + + if(m_instance == nullptr) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); + impl.setReason("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + throw impl; + } + return *m_instance; +} + +void SRTMinorServoSocket::destroyInstance() +{ + if(m_instance != nullptr) + { + delete m_instance; + m_instance = nullptr; + } +} + +SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, double timeout) : m_ip_address(ip_address), m_port(port), m_timeout(timeout), m_socket_status(NOTREADY) +{ + try + { + connect(); + } + catch(...) + { + // Not yet connected, we catch the exception in order to go on + } +} + +SRTMinorServoSocket::~SRTMinorServoSocket() +{ + std::lock_guard<std::mutex> guard(m_mutex); + Close(m_error); +} + +void SRTMinorServoSocket::connect() +{ + if(isConnected()) + { + return; + } + + std::lock_guard<std::mutex> guard(m_mutex); + + Close(m_error); + m_error.Reset(); + if(Create(m_error, STREAM) == FAIL) + { + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot create the socket."); + throw impl; + } + + if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot connect the socket."); + throw impl; + } + + if(setSockMode(m_error, NONBLOCKING) != SUCCESS) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot set the socket to non-blocking."); + throw impl; + } + + m_socket_status = READY; +} + +const bool SRTMinorServoSocket::isConnected() const +{ + return m_socket_status == READY ? true : false; +} + +SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) +{ + connect(); + + std::lock_guard<std::mutex> guard(m_mutex); + + double start_time = IRA::CIRATools::getUNIXEpoch(); + size_t sent_bytes = 0; + + while(sent_bytes < command.size()) + { + size_t sent_now; + + try + { + sent_now = Send(m_error, command.substr(sent_bytes, command.size() - sent_bytes).c_str(), command.size() - sent_bytes); + sent_bytes += sent_now; + } + catch(...) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); + impl.setReason("Something went wrong while sending some bytes."); + throw impl; + } + + if(sent_now > 0) + { + // Reset the timer + start_time = IRA::CIRATools::getUNIXEpoch(); + } + else if(IRA::CIRATools::getUNIXEpoch() - start_time >= m_timeout) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.setReason("Timeout when sending command."); + throw impl; + } + } + + start_time = IRA::CIRATools::getUNIXEpoch(); + std::string answer; + + while(answer.size() < 2 || !(answer.rfind(CLOSER) == answer.size() - CLOSER.size())) + { + char buf; + try + { + if(Receive(m_error, &buf, 1) == 1) + { + answer += buf; + + // Reset the timer + start_time = IRA::CIRATools::getUNIXEpoch(); + } + else if(IRA::CIRATools::getUNIXEpoch() - start_time >= m_timeout) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.setReason("Timeout when receiving answer."); + throw impl; + } + } + catch(...) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); + impl.setReason("Something went wrong while receiving some bytes."); + throw impl; + } + } + + SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); + if(map) + { + map->get() = map_answer; + } + + return map_answer; +} + +SRTMinorServoSocketConfiguration& SRTMinorServoSocketConfiguration::getInstance(maci::ContainerServices* containerServices) +{ + if(m_instance == nullptr) + { + m_instance = new SRTMinorServoSocketConfiguration(containerServices); + } + + return *m_instance; +} + +SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices) +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + + IRA::CString _ip_address; + if(!IRA::CIRATools::getDBValue(containerServices, "IPAddress", _ip_address, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("IPAddress"); + throw impl.getComponentErrorsEx(); + } + m_ip_address = (std::string)_ip_address; + + DWORD port; + if(!IRA::CIRATools::getDBValue(containerServices, "Port", port, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("Port"); + throw impl.getComponentErrorsEx(); + } + else + { + m_port = port; + } + + if(!IRA::CIRATools::getDBValue(containerServices, "SocketTimeout", m_timeout, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("SocketTimeout"); + throw impl.getComponentErrorsEx(); + } +} + +SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration() +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration()"); + + delete m_instance; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile index 1af134e84..1e8380bf7 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile @@ -11,14 +11,20 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: # # EXECTUABLES_L = unittest -# unittest_OBJECTS = unittest -# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> - -EXECUTABLES_L = unittest -unittest_OBJECTS = unittest -unittest_CFLAGS = -std=c++17 -unittest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary -unittest_LDFLAGS = -lstdc++ -lpthread +# SRTMinorServoCommandLibraryTest_OBJECTS = unittest +# SRTMinorServoCommandLibraryTest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +EXECUTABLES_L = SRTMinorServoCommandLibraryTest SRTMinorServoSocketTest + +SRTMinorServoCommandLibraryTest_OBJECTS = SRTMinorServoCommandLibraryTest +SRTMinorServoCommandLibraryTest_CFLAGS = -std=c++17 +SRTMinorServoCommandLibraryTest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary +SRTMinorServoCommandLibraryTest_LDFLAGS = -lstdc++ -lpthread + +SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest +SRTMinorServoSocketTest_CFLAGS = -std=c++17 +SRTMinorServoSocketTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary +SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread # END OF CUSTOMIZATION # do not edit below this line diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp similarity index 85% rename from SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp rename to SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp index 4b54b64bc..1447613f7 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/unittest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp @@ -2,7 +2,7 @@ #include <IRA> #include "SRTMinorServoCommandLibrary.h" -using namespace IRA; +using namespace MinorServo; TEST(SRTMinorServoCommandLibraryTest, status) { @@ -33,7 +33,7 @@ TEST(SRTMinorServoCommandLibraryTest, preset) TEST(SRTMinorServoCommandLibraryTest, programTrack) { - double start_time = CIRATools::getUNIXEpoch() + 3; + double start_time = IRA::CIRATools::getUNIXEpoch() + 3; unsigned long int trajectory_id = (unsigned long int)start_time; std::stringstream expected_answer; expected_answer << std::fixed << std::setprecision(6); @@ -58,24 +58,26 @@ TEST(SRTMinorServoCommandLibraryTest, parseAnswer) // Minimal correct answer std::string answer = "OUTPUT:GOOD,1665743366.654321\r\n"; SRTMinorServoAnswerMap args; - args["OUTPUT"] = "GOOD"; - args["TIMESTAMP"] = 1665743366.654321; + args.put("OUTPUT", "GOOD"); + args.put("TIMESTAMP", 1665743366.654321); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + EXPECT_EQ(args.getTimestamp(), 138850361666543210); + // Complete correct answer answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; args.clear(); - args["OUTPUT"] = "GOOD"; - args["TIMESTAMP"] = 1665743366.123456; - args["CURRENT_CONFIG"] = (long)21; - args["SIMULATION_ENABLED"] = (long)34; - args["PLC_TIME"] = (long)78; - args["PLC_VERSION"] = (long)69; - args["CONTROL"] = (long)14; - args["POWER"] = (long)38; - args["EMERGENCY"] = (long)69; - args["ENABLED"] = (long)51; - args["OPERATIVE_MODE"] = (long)94; + args.put("OUTPUT", "GOOD"); + args.put("TIMESTAMP", 1665743366.123456); + args.put("CURRENT_CONFIG", 21); + args.put("SIMULATION_ENABLED", 34); + args.put("PLC_TIME", 78); + args.put("PLC_VERSION", 69); + args.put("CONTROL", 14); + args.put("POWER", 38); + args.put("EMERGENCY", 69); + args.put("ENABLED", 51); + args.put("OPERATIVE_MODE", 94); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); // Missing timestamp diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp new file mode 100644 index 000000000..742459c1e --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp @@ -0,0 +1,179 @@ +/* These tests require a running simulator and were designed * + * to test the thread-safeness and singleton design pattern of the * + * SRTMinorServoSocket class. */ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 + + +using namespace MinorServo; + + +class SRTMinorServoSocketTest : public ::testing::Test +{ +protected: + std::vector<std::string> commands; + std::vector<std::thread> threads; + + void SetUp() override + { + // The following commands yield an articulated answer in return + commands.push_back(SRTMinorServoCommandLibrary::status()); + commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); + commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + } +}; + +// This test passes the already created instance to some threads +TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + if(!socket.isConnected()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + } + + for(auto command : this->commands) + { + this->threads.push_back(std::thread([command, &socket]() + { + auto args = socket.sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_TRUE(args.checkOutput()); + })); + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); +} + +// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it +TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) +{ + std::string error = ""; + + for(auto command : this->commands) + { + std::mutex mutex; + + this->threads.push_back(std::thread([command, &error, &mutex]() + { + try + { + auto args = SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_TRUE(args.checkOutput()); + } + catch(MinorServoErrors::CommunicationErrorExImpl& ex) + { + std::lock_guard<std::mutex> guard(mutex); + + if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + { + error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; + } + else + { + error = "Unexpected failure."; + } + } + })); + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); + + if(error != "") + { + FAIL() << error << std::endl; + } +} + +// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails +TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) +{ + try + { + // First let's open the socket with the chosen ADDRESS and PORT + SRTMinorServoSocket::getInstance(ADDRESS, PORT); + + // Let's try to instance another socket on a different port + SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); + } + catch(MinorServoErrors::CommunicationErrorExImpl& ex) + { + if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(ex.getReason(), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + } + } +} + +// This test tries to retrieve an instance which has not been generated yet, failing +TEST_F(SRTMinorServoSocketTest, try_open_without_args) +{ + try + { + SRTMinorServoSocket::getInstance(); + } + catch(MinorServoErrors::CommunicationErrorExImpl& ex) + { + if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(ex.getReason(), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); + } + } +} + +// This test tries to generate an instance using a pair of address and port on which the socket fails to open +TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) +{ + try + { + // The exception is raised only if the given port is wrong + SRTMinorServoSocket::getInstance(ADDRESS, 0); + } + catch(MinorServoErrors::CommunicationErrorExImpl& ex) + { + // Check if we got the correct exception + EXPECT_EQ(ex.getReason(), std::string("Cannot connect the socket.").c_str()); + } +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py index 03d61b9a7..4993c068e 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py @@ -37,23 +37,22 @@ class TestPySRTMinorServoCommandLibrary(unittest.TestCase): def test_preset(self): command = SRTMinorServoCommandLibrary.preset('PFP', [0.1, 1.1, 2.1]) - expected_command = 'PRESET=PFP,0.1,1.1,2.1\r\n' + expected_command = 'PRESET=PFP,0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) def test_programTrack(self): now = time.time() command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0.1, 1.1, 2.1], now) - now = int(now * 1000) - expected_command = 'PROGRAMTRACK=PFP,0,0,%d,0.1,1.1,2.1\r\n' % now + expected_command = f'PROGRAMTRACK=PFP,0,0,{now},0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) for i in range(1, 10): command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, i, [0.1, 1.1, 2.1]) - expected_command = 'PROGRAMTRACK=PFP,0,%d,*,0.1,1.1,2.1\r\n' % i + expected_command = f'PROGRAMTRACK=PFP,0,{i},*,0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) def test_offset(self): command = SRTMinorServoCommandLibrary.offset('PFP', [0.1, 1.1, 2.1]) - expected_command = 'OFFSET=PFP,0.1,1.1,2.1\r\n' + expected_command = 'OFFSET=PFP,0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) def test_parseAnswer(self): -- GitLab From efbfaa7e8872c1924b0217a2da7aed433840c1ad Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 26 Jan 2024 13:38:37 +0000 Subject: [PATCH 052/150] Updated SRTMinorServoSocket and tests --- .../idl/SRTMinorServoCommon.midl | 33 +++++++--- .../include/SRTMinorServoSocket.h | 52 +++++++-------- .../include/SRTMinorServoTestingSocket.h | 65 +++++++++++++++++++ .../SRTMinorServoLibrary/src/Makefile | 2 +- .../src/SRTMinorServoSocket.cpp | 37 ++++++----- .../tests/SRTMinorServoSocketTest.cpp | 19 +++--- 6 files changed, 142 insertions(+), 66 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl index 342b25b8b..841b46537 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -15,6 +15,9 @@ module MinorServo { + /** + * Enumerator which indicates a Leonardo minor servo configuration + */ enum SRTMinorServoFocalConfiguration { CONFIGURATION_UNKNOWN, @@ -33,35 +36,43 @@ module MinorServo CONFIGURATION_BWG3, CONFIGURATION_BWG4 }; - ACS_ENUM(SRTMinorServoFocalConfiguration); + /** + * Enumerator which indicates the status of the control for the Leonardo minor servo system + */ enum SRTMinorServoControlStatus { CONTROL_DISCOS, CONTROL_VBRAIN }; - ACS_ENUM(SRTMinorServoControlStatus); + /** + * Enumerator which indicates the position of the gregorian cover + */ enum SRTMinorServoGregorianCoverStatus { COVER_STATUS_UNKNOWN, COVER_STATUS_OPEN, COVER_STATUS_CLOSED }; - ACS_ENUM(SRTMinorServoGregorianCoverStatus); + /** + * Enumerator which indicates the status of a servo drive cabinet + */ enum SRTMinorServoCabinetStatus { DRIVE_CABINET_OK, DRIVE_CABINET_WARNING, DRIVE_CABINET_ERROR }; - ACS_ENUM(SRTMinorServoCabinetStatus); + /** + * Enumerator which indicates the operating mode of a single servo + */ enum SRTMinorServoOperativeMode { OPERATIVE_MODE_UNKNOWN, @@ -71,19 +82,21 @@ module MinorServo OPERATIVE_MODE_PRESET, OPERATIVE_MODE_PROGRAMTRACK }; - ACS_ENUM(SRTMinorServoOperativeMode); + /** + * Enumerator which indicates the type of movement made by the whole system (i.e.: performing setup, parking, tracking...) + */ enum SRTMinorServoMotionStatus { MOTION_STATUS_UNCONFIGURED, - MOTION_STATUS_CONFIGURING, - MOTION_STATUS_PARK, - MOTION_STATUS_ERROR, + MOTION_STATUS_STARTING, MOTION_STATUS_CONFIGURED, - MOTION_STATUS_TRACKING + MOTION_STATUS_TRACKING, + MOTION_STATUS_PARKING, + MOTION_STATUS_PARKED, + MOTION_STATUS_ERROR }; - ACS_ENUM(SRTMinorServoMotionStatus); }; #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h index 48056718f..7689ab1b3 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h @@ -14,51 +14,40 @@ #include <optional> #include "SRTMinorServoCommandLibrary.h" - #define SOCKET_TIMEOUT 0.1 #define CONFIG_DOMAIN "alma/" #define CONFIG_DIRNAME "/MINORSERVO/Socket" - -class SRTMinorServoSocketTest; -class SRPProgramTrackTest; -class DerotatorProgramTrackTest; -class CombinedProgramTrackTest; -class ReadStatusOnlyTest; - - namespace MinorServo { + /** + * Testing class forward declaration. + * The declaration of this class can be found in the SRTMinorServoTestingSocket.h header file. + * Instructions on how to use this for testing purposes can be found there as well. + */ + class SRTMinorServoTestingSocket; + class SRTMinorServoSocket: public IRA::CSocket { /** * This class implements a singleton socket. The singleton pattern was necessary to provide each servo system component communication capabilities with the Leonardo system. * As long as all the said components run on the same container this will only be instanced once. */ - - /** - * Declare the testing classes as friend classes in order for them to have access to destroyInstance for testing purposes - */ - friend class ::SRTMinorServoSocketTest; - friend class ::SRPProgramTrackTest; - friend class ::DerotatorProgramTrackTest; - friend class ::CombinedProgramTrackTest; - friend class ::ReadStatusOnlyTest; - public: /** * Calls the constructor and returns the singleton socket instance * @param ip_address the IP address to which the socket will connect * @param port the port to which the socket will connect * @param timeout the timeout, in seconds, for the communication to be considered failed - * @throw MinorServoErrors::CommunicationErrorExImpl when the user calls this method a second time with different IP address and port arguments + * @throw MinorServoErrors::MinorServoErrorsEx when the user calls this method a second time with different IP address and port arguments (non testing mode) + * @throw MinorServoErrors::CommunicationErrorExImpl (testing mode) * @return the singleton socket instance, eventually connected to the given IP address and port, by reference */ static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT); /** * Returns the previously generated singleton socket instance - * @throw MinorServoErrors::CommunicationErrorExImpl when the user calls this method when the instance has not been generated yet + * @throw MinorServoErrors::MinorServoErrorsExImpl when the user calls this method when the instance has not been generated yet * @return the singleton socket instance, by reference */ static SRTMinorServoSocket& getInstance(); @@ -67,7 +56,8 @@ namespace MinorServo * Sends a command on the socket and returns the received answer, if any * @param command the command to be sent over the socket * @param map, optional SRTMinorServoAnswerMap object. If provided, the 'map' argument content gets updated with the newly received answer - * @throw MinorServoErrors::CommunicationErrorExImpl when the operation of sending or receiving fails unexpectedly + * @throw MinorServoErrors::MinorServoErrorsEx when the operation of sending or receiving fails unexpectedly (non testing mode) + * @throw MinorServoErrors::CommunicationErrorExImpl (testing mode) * @return the received answer to the given command */ SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); @@ -89,6 +79,11 @@ namespace MinorServo const bool isConnected() const; private: + /** + * Declare the testing class as friend class in order for it to have access to private members for testing purposes + */ + friend class SRTMinorServoTestingSocket; + /** * Constructor method. Generates the singleton socket instance * @param ip_address the IP address to which the socket will connect @@ -102,14 +97,10 @@ namespace MinorServo */ ~SRTMinorServoSocket(); - /** - * Force the destruction of the singleton socket object. Only used in tests - */ - static void destroyInstance(); - /** * Connection function. It gets called every time the socket gets disconnected - * throw MinorServoErrors::CommunicationErrorExImpl when the connection attempt fails + * throw MinorServoErrors::MinorServoErrorsEx when the connection attempt fails (non testing mode) + * throw MinorServoErrors::CommunicationErrorExImpl (testing mode) */ void connect(); @@ -139,6 +130,11 @@ namespace MinorServo */ static std::mutex c_mutex; + /** + * Boolean indicating whether we are testing the socket or not + */ + inline static bool c_testing = false; + /** * Socket status enumerator */ diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h new file mode 100644 index 000000000..1fc5b236f --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h @@ -0,0 +1,65 @@ +#include "SRTMinorServoSocket.h" + +namespace MinorServo +{ + class SRTMinorServoTestingSocket: public SRTMinorServoSocket + { + /** + * This class is a friend class of SRTMinorServoSocket. It can be used for testing purposes without altering the behavior of the original class. + * Instructions on how to use this class inside tests: + * 1) Declare the test class with a forward declaration + * 2) Define the FRIEND_CLASS_DECLARATION macro + * 3) Include this header file + * 4) Finally implement the test class + * Example: + * + * ... + * class TestClass; + * #define FRIEND_CLASS_DECLARATION friend class ::TestClass; + * #include "SRTMinorServoTestingSocket.h" + * + * class TestClass : public ::testing::Test + * { + * ... + */ + + /** + * This is a macro that each test file will have to define prior to including this header file. + * It can be a single or multiple lines each one containing a friend class declaration. + */ + FRIEND_CLASS_DECLARATION; + public: + /** + * Ovverride of the original SRTMinorServoSocket getInstance methods. Before doing anything, they set the c_testing variable of the original class to true. + * This changes how the exceptions are thrown. + * In non testing purposes, exceptions are thrown as MinorServoErrorsEx + * In testing purposes, exceptions are thrown as they are (ExImpl) + * This change in behavior allow for better testing and debugging purposes, while still allowing the socket to throw the base MinorServoErrorsEx when not used in testing purposes. + * This allow us to avoid catching exceptions in the component, since MinorServoErrorsEx are already captured by CORBA + */ + static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT) + { + SRTMinorServoSocket::c_testing = true; + return SRTMinorServoSocket::getInstance(ip_address, port, timeout); + } + static SRTMinorServoSocket& getInstance() + { + SRTMinorServoSocket::c_testing = true; + return SRTMinorServoSocket::getInstance(); + } + + /** + * This method explicitly destroys the singleton socket instance. + * Each test in the same test file is executed under the same process, therefore a singleton instance that does not get destroyed will still exist in the next executed tests. + * We want to test a new instance of the socket every time, therefore the existence of this method is critical. + */ + static void destroyInstance() + { + if(SRTMinorServoSocket::m_instance != nullptr) + { + delete SRTMinorServoSocket::m_instance; + SRTMinorServoSocket::m_instance = nullptr; + } + } + }; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index f9034eb01..d8b66463f 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -54,7 +54,7 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h +INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h #hexlib.h # # Libraries (public and local) diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index c5cc76fbf..04854326d 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -1,5 +1,15 @@ #include "SRTMinorServoSocket.h" +#define THROW \ +if(c_testing) \ +{ \ + throw impl; \ +} \ +else \ +{ \ + throw impl.getMinorServoErrorsEx(); \ +} + using namespace MinorServo; std::mutex SRTMinorServoSocket::c_mutex; @@ -14,7 +24,7 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, in { _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); impl.setReason(("Socket already open on '" + m_instance->m_ip_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); - throw impl; + THROW; } } else @@ -32,20 +42,11 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance() { _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); impl.setReason("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); - throw impl; + THROW; } return *m_instance; } -void SRTMinorServoSocket::destroyInstance() -{ - if(m_instance != nullptr) - { - delete m_instance; - m_instance = nullptr; - } -} - SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, double timeout) : m_ip_address(ip_address), m_port(port), m_timeout(timeout), m_socket_status(NOTREADY) { try @@ -80,7 +81,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot create the socket."); - throw impl; + THROW; } if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) @@ -89,7 +90,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot connect the socket."); - throw impl; + THROW; } if(setSockMode(m_error, NONBLOCKING) != SUCCESS) @@ -98,7 +99,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot set the socket to non-blocking."); - throw impl; + THROW; } m_socket_status = READY; @@ -133,7 +134,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); impl.setReason("Something went wrong while sending some bytes."); - throw impl; + THROW; } if(sent_now > 0) @@ -147,7 +148,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); impl.setReason("Timeout when sending command."); - throw impl; + THROW; } } @@ -172,7 +173,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); impl.setReason("Timeout when receiving answer."); - throw impl; + THROW; } } catch(...) @@ -181,7 +182,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); impl.setReason("Something went wrong while receiving some bytes."); - throw impl; + THROW; } } diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp index 742459c1e..8943dcf87 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp @@ -4,7 +4,6 @@ #include "gtest/gtest.h" #include <iostream> #include <thread> -#include "SRTMinorServoSocket.h" #include "SRTMinorServoCommandLibrary.h" // This address and port are the ones set in the simulator @@ -13,10 +12,12 @@ #define ADDRESS std::string("127.0.0.1") #define PORT 12800 +class SRTMinorServoSocketTest; +#define FRIEND_CLASS_DECLARATION friend class ::SRTMinorServoSocketTest; +#include "SRTMinorServoTestingSocket.h" using namespace MinorServo; - class SRTMinorServoSocketTest : public ::testing::Test { protected: @@ -39,14 +40,14 @@ protected: void TearDown() override { - SRTMinorServoSocket::destroyInstance(); + SRTMinorServoTestingSocket::destroyInstance(); } }; // This test passes the already created instance to some threads TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT); if(!socket.isConnected()) { @@ -83,7 +84,7 @@ TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) { try { - auto args = SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command); + auto args = SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT).sendCommand(command); // By testing if the command was received correctly we also test if the socket is working properly // and if the answer was received correctly without being interleaved with the answer from another thread EXPECT_TRUE(args.checkOutput()); @@ -121,10 +122,10 @@ TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) try { // First let's open the socket with the chosen ADDRESS and PORT - SRTMinorServoSocket::getInstance(ADDRESS, PORT); + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT); // Let's try to instance another socket on a different port - SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT + 1); } catch(MinorServoErrors::CommunicationErrorExImpl& ex) { @@ -146,7 +147,7 @@ TEST_F(SRTMinorServoSocketTest, try_open_without_args) { try { - SRTMinorServoSocket::getInstance(); + SRTMinorServoTestingSocket::getInstance(); } catch(MinorServoErrors::CommunicationErrorExImpl& ex) { @@ -169,7 +170,7 @@ TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) try { // The exception is raised only if the given port is wrong - SRTMinorServoSocket::getInstance(ADDRESS, 0); + SRTMinorServoTestingSocket::getInstance(ADDRESS, 0); } catch(MinorServoErrors::CommunicationErrorExImpl& ex) { -- GitLab From 56ced070e4da5e9914a2e2753d9259f15c5568c0 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 26 Jan 2024 18:05:09 +0000 Subject: [PATCH 053/150] Commented new interfaces --- .../idl/SRTMinorServo.idl | 242 ++++++++++++++++-- .../idl/SRTMinorServoBoss.idl | 53 +++- 2 files changed, 272 insertions(+), 23 deletions(-) diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 3d91e7e34..844677d91 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -1,61 +1,263 @@ +#ifndef __SRTMINORSERVO_IDL__ +#define __SRTMINORSERVO_IDL__ /***************************************************************\ * Authors: * Giuseppe Carboni <giuseppe.carboni@inaf.it> * * Created: Mon Mar 06 12:30:00 CEST 2023 - * Last Modified: Mon Mar 06 12:30:00 CEST 2023 \***************************************************************/ -#ifndef __SRTMINORSERVO_IDL__ -#define __SRTMINORSERVO_IDL__ - #include "SRTMinorServoCommon.idl" #pragma prefix "alma" module MinorServo { + /** + * This IDL interface describes the CORBA interface of a common SRTMinorServo component. + * This is simply the base interface from which the SRTGenericMinorServo and SRTProgramTrackMinorServo interfaces inherit. + */ interface SRTBaseMinorServo : ACS::CharacteristicComponent { + /** + * This property tells if all the servo axes are enabled + */ readonly attribute Management::ROTBoolean enabled; + + /** + * This property tells the status of the servo drive cabinet + */ readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status; + + /** + * This property tells if the servo is in blocked state and cannot move + */ readonly attribute Management::ROTBoolean block; + + /** + * This property returns the current operative mode of the servo + */ readonly attribute ROSRTMinorServoOperativeMode operative_mode; + + /** + * This property returns the sequence of statuses of the servo physical axes + */ readonly attribute ACS::RObooleanSeq physical_axes_enabled; + + /** + * This property returns the sequence of current positions of the physical axes of the servo + */ readonly attribute ACS::ROdoubleSeq physical_positions; + + /** + * This property returns the number of virtual axes of the servo + */ readonly attribute ACS::ROlong virtual_axes; + + /** + * This property returns the current plain positions of the virtual axes of the servo + * The plain positions are the positions returned from the Leonardo servo system, without subtracting the offsets + */ + readonly attribute ACS::ROdoubleSeq plain_virtual_positions; + + /** + * This property returns the current positions of the virtual axes of the servo + * The positions returned by this property equals to the plain virtual positions minus the offsets + */ readonly attribute ACS::ROdoubleSeq virtual_positions; + + /** + * This property returns the current offsets of the virtual axes of the servo + * The offset values are the sum of user and system offsets + */ readonly attribute ACS::ROdoubleSeq virtual_offsets; + + /** + * This property returns the current user offsets of the virtual axes of the servo + */ readonly attribute ACS::ROdoubleSeq virtual_user_offsets; + + /** + * This property returns the current system offsets of the virtual axes of the servo + */ readonly attribute ACS::ROdoubleSeq virtual_system_offsets; + + /** + * This property indicates whether the servo is in use in the current configuration + */ readonly attribute Management::ROTBoolean in_use; + + /** + * This property returns the configuration of the servo. Each configuration has different positioning coefficients + */ readonly attribute ACS::ROstring current_setup; - void status() raises (ComponentErrors::ComponentErrorsEx); - void stow(in long stow_position) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void stop() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void preset(in ACS::doubleSeq coordinates) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void offset(in ACS::doubleSeq offsets) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + /** + * This method asks the PLC the status for the corresponding servo + * @return true if the servo is not in an error state, false otherwise + */ + boolean status(); + + /** + * This method commands a STOW operation to the servo + * @param stow_position the index of the position we want the servo to stow to + * @throw MinorServo::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + */ + void stow(in long stow_position) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method commands a STOP operation to the servo + * @throw MinorServo::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + */ + void stop() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method commands a PRESET operation to the servo + * @param coordinates, a sequence of double + * @throw MinorServo::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted + */ + void preset(in ACS::doubleSeq coordinates) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method loads from the CDB the positioning coefficients related to the given configuration + * @param configuration the string representing the name of the table from which the coefficients will be loaded + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration + */ + void setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx); + + /** + * This method calculates the servo coordinates for a given elevation + * @param elevation the elevation to use for the coordinates calculation, expressed in degrees + * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculalation + * @return the calculated coordinates as a sequence of doubles + */ + ACS::doubleSeq calcCoordinates(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the user offsets of the servo + * @return the user offsets as a sequence of doubles + */ ACS::doubleSeq getUserOffsets(); - void setUserOffset(in string axis_name, in double offset) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void clearUserOffsets() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); + + /** + * This method sets the user offset of the servo for a given axis + * @param axis_name a string corresponding to the axis we want to set the offset for + * @param offset the absolute user offset value for the given servo axis + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted + */ + void setUserOffset(in string axis_name, in double offset) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method sets the user offsets to zero for all the servo axes + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void clearUserOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the system offsets of the servo + * @return the system offsets as a sequence of doubles + */ ACS::doubleSeq getSystemOffsets(); - void setSystemOffset(in string axis_name, in double offset) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void clearSystemOffsets() raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx, MinorServoErrors::MinorServoErrorsEx); - void getAxesInfo(out ACS::stringSeq axes_names, out ACS::stringSeq axes_units) raises (ComponentErrors::ComponentErrorsEx); - ACS::doubleSeq calcCoordinates(in double elevation); + /** + * This method sets the system offset of the servo for a given axis + * @param axis_name a string corresponding to the axis we want to set the offset for + * @param offset the absolute system offset value for the given servo axis + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted + */ + void setSystemOffset(in string axis_name, in double offset) raises (MinorServoErrors::MinorServoErrorsEx); - }; + /** + * This method sets the system offsets to zero for all the servo axes + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void clearSystemOffsets() raises (MinorServoErrors::MinorServoErrorsEx); - interface SRTGenericMinorServo : SRTBaseMinorServo - { + /** + * This method returns in the two parameters passed as reference, the names and the units of measure of the axes of the servo, respectively + * @param axes_names the sequence of strings containing the names of the virtual axes of the servo + * @param axes_units the sequence of strings containing the units of measure of each virtual axis of the servo + */ + void getAxesInfo(out ACS::stringSeq axes_names, out ACS::stringSeq axes_units); + + /** + * This method returns the positions of all the axes of the servo for a given time + * @param acs_time the ACS::Time for which we want to retrieve the servo positions + * @throw MinorServoErrors::MinorServoErrorsEx when the position history is empty + * @return a sequence of doubles containing the positions of the servo for the given time + */ + ACS::doubleSeq getAxesPositions(in ACS::Time acs_time) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the time it would take for the servo to get from a starting position to a destination position + * An empty starting position means the function will calculate the travel time from the current position, taking into account the current speed as well + * To account for the current speed, it is sufficient to call the method in this way: + * getTravelTime(ACS::doubleSeq(), <destination_position>); + * @param starting_position the sequence of starting axes positions or an empty sequence + * @param destination_position the sequence of destination axes positions, mandatory + * @throw MinorServoErrors::MinorServoErrorsEx when receiving a starting position sequence of length different from zero or the number of virtual axes of the servo, + * when receiving a destination position sequence of lenght different from the number of virtual axes of the servo + * @return an ACS::TimeInterval object representing the total duration of the movement from the starting position to the destination position + */ + ACS::TimeInterval getTravelTime(in ACS::doubleSeq starting_position, in ACS::doubleSeq destination_position); + + /** + * This method returns the minimum and maximun ranges for all the servo axes in the given sequence passed by reference + * @param min_ranges the minimum range of the servo axes + * @param max_ranges the maximum range of the servo axes + */ + void getAxesRanges(out ACS::doubleSeq min_ranges, out ACS::doubleSeq max_ranges); }; + /** + * This IDL interface describes the CORBA interface of a generic SRTMinorServo component. + * This interface is derived from the SRTBaseMinorServo and it is empty. + * It's sole purpose is to generate the POA_MinorServo::SRTGenericMinorServo class needed for the components. + */ + interface SRTGenericMinorServo : SRTBaseMinorServo {}; + + /** + * This IDL interface describes the CORBA interface of a ProgramTrack-capable SRTMinorServo component. + * It extends the SRTBaseMinorServo interface with some more attributes and methods described below. + */ interface SRTProgramTrackMinorServo : SRTBaseMinorServo { - void programTrack(in long trajectory_id, in long point_id, in double start_time, in ACS::doubleSeq coordinates) raises (ComponentErrors::ComponentErrorsEx); + /** + * This property indicates whether the servo system is tracking the given trajectory + */ + readonly attribute Management::ROTBoolean tracking; + + /** + * This property indicates the ID of the trajectory. It always corresponds to starting time of the trajectory, expressed as the UNIX Epoch * 1000 (long) + */ + readonly attribute ACS::ROlong trajectory_id; + + /** + * This property indicates the total number of points loaded into the current trajectory + */ + readonly attribute ACS::ROlong total_trajectory_points; + + /** + * This property indicates the number of points of the current trajectory which remain to be tracked + */ + readonly attribute ACS::ROlong remaining_trajectory_points; + + /** + * This method loads a set of coordinates that have to be tracked by the servo system + * @param trajectory_id the ID of the trajectory to which the current point belongs + * @param point_id the ID of the point inside the current trajectory. It must be a consecutive number for the servo system to acknowledge + * @param point_time an ACS::Time object indicating the time associated with the coordinates to be tracked. + * Only the start time is sent to the servo system and the points after are spaced by 0.2 seconds from one another. + * It is still necessary to fill this field in order to associate a time to the coordinates inside the component. + * @param coordinates the coordinates to track at the given time + * @throw MinorServoErrorsEx when the length of the coordinates sequence does not match the number of virtual axis of the servo system, + * when there has been a communication error or when the command was not accepted + */ + void programTrack(in long trajectory_id, in long point_id, in ACS::Time point_time, in ACS::doubleSeq coordinates); }; }; diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl index 7bb3d8efc..e7a42686f 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -1,3 +1,5 @@ +#ifndef __SRTMINORSERVOBOSS_IDL__ +#define __SRTMINORSERVOBOSS_IDL__ /***************************************************************\ * Authors: * Giuseppe Carboni <giuseppe.carboni@inaf.it> @@ -5,8 +7,6 @@ * Created: Mon Mar 06 12:30:00 CEST 2023 * Last Modified: Mon Mar 06 12:30:00 CEST 2023 \***************************************************************/ -#ifndef __SRTMINORSERVOBOSS_IDL__ -#define __SRTMINORSERVOBOSS_IDL__ #include <MinorServoBoss.idl> #include "SRTMinorServoCommon.idl" @@ -17,17 +17,64 @@ module MinorServo { interface SRTMinorServoBoss: MinorServoBoss { + /** + * Current configuration of the Leonardo minor servo system + */ readonly attribute ROSRTMinorServoFocalConfiguration current_configuration; + + /** + * Boolean indicating whether the system is in simulation mode or not + */ readonly attribute Management::ROTBoolean simulation_enabled; + + /** + * UNIX Epoch of the Leonardo minor servo system PLC machine + */ readonly attribute ACS::ROdouble plc_time; + + /** + * Version of the software on the PLC machine + */ readonly attribute ACS::ROstring plc_version; + + /** + * Enumeration indicating whether the system is controlled by VBrain or DISCOS + */ readonly attribute ROSRTMinorServoControlStatus control; + + /** + * Boolean indicating whether all the axes are powered or not + */ readonly attribute Management::ROTBoolean power; + + /** + * Boolean indicating whether the system entered an emergency status + */ readonly attribute Management::ROTBoolean emergency; + + /** + * Position of the gregorian cover + */ readonly attribute ROSRTMinorServoGregorianCoverStatus gregorian_cover; + + /** + * UNIX Epoch of the last executed command (STATUS commands are not shown here) + */ readonly attribute ACS::ROdouble last_executed_command; - void preset(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx, ComponentErrors::ComponentErrorsEx); + /** + * This command sets all the minor servos involved in the current focal configuration to their position calculated from the elevation argument + * @param elevation, the elevation the minor servos should use to calculate their position + * @throw MinorServoErrors::MinorServoErrorsEx + */ + void preset(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This command opens or closes the gregorian cover + * @param value, the desired gregorian cover position, accepted values are 'open', 'OPEN', 'closed' or 'CLOSED' + * @throw MinorServoErrors::MinorServoErrorsEx + */ + void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); }; }; -- GitLab From a9c8ff273d72876902628ac97c2c788d54cbd449 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 5 Feb 2024 21:06:37 +0000 Subject: [PATCH 054/150] Updated CDB schemas and configurations --- .../DataBlock/MinorServo/GFR/Properties/Properties.xml | 2 ++ .../DataBlock/MinorServo/M3R/Properties/Properties.xml | 2 ++ .../DataBlock/MinorServo/PFP/Properties/Properties.xml | 4 ++++ .../DataBlock/MinorServo/SRP/Properties/Properties.xml | 7 +++++++ SRT/CDB/alma/MINORSERVO/Boss/Boss.xml | 2 +- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 4 ++-- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 3 ++- .../SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd | 2 +- .../SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd | 2 +- .../config/CDB/schemas/SRTMinorServoProperties.xsd | 1 + 10 files changed, 23 insertions(+), 6 deletions(-) diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml index c6ae42675..d68395104 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -18,5 +18,7 @@ <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> </SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml index c6ae42675..d68395104 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -18,5 +18,7 @@ <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> </SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml index b720bbf40..688491e30 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -26,6 +26,10 @@ <virtual_positions><property_name>TZ</property_name></virtual_positions> <virtual_positions><property_name>RTHETA</property_name></virtual_positions> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> <virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml index 963812767..165d5198f 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -31,6 +31,13 @@ <virtual_positions><property_name>RY</property_name></virtual_positions> <virtual_positions><property_name>RZ</property_name></virtual_positions> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> <virtual_offsets><property_name>OFFSET_TY</property_name></virtual_offsets> <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> diff --git a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml index fe264a507..4dab29cf9 100644 --- a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -13,6 +13,7 @@ active_surface_configuration="ON" elevation_tracking_enabled="ON"> + <connected description="Boolean indicating whether the component is connected to the Leonardo Minor Servo System" /> <status description="The summary status of MinorServoBoss"/> <actualSetup description="Mnemonic code that defines a setup" /> <motionInfo description="Description of the movement in progress" /> @@ -23,7 +24,6 @@ <scanActive description="True if a scan is active" /> <scanning description="True if the system is performing a scan" /> <tracking description="Is the minor servo system tracking?" /> - <current_configuration description="Current minor servos focal configuration" /> <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> <plc_time description="UNIX time of the minor servo PLC" /> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index cb8ba9221..064ca71d1 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -12,8 +12,8 @@ max_speed="1, 1, 1" acceleration="1, 1, 1" min_range="0, 0, 0" - max_range="0, 0, 0"> - + max_range="0, 0, 0" + tracking_delta="1, 1, 1"> <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index f625964b3..fcb93eec9 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -12,7 +12,8 @@ max_speed="4, 4, 4, 0.38, 0.38, 0.38" acceleration="8, 8, 8, 0.76, 0.76, 0.76" min_range="-50, -110, -50, -0.25, -0.25, -0.25" - max_range="50, 110, 50, 0.25, 0.25, 0.25"> + max_range="50, 110, 50, 0.25, 0.25, 0.25" + tracking_delta="1, 1, 1, 1, 1, 1"> <enabled description="All physical axes enabled" /> <drive_cabinet_status description="Drive cabinet status" /> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index 198b9eeb2..e2477b42c 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -76,7 +76,7 @@ <xs:element name="total_trajectory_points" type="baci:ROlong" /> <xs:element name="remaining_trajectory_points" type="baci:ROlong" /> </xs:sequence> - <xs:attribute name="tracking_delta" type="xs:double" use="optional" default="1.0" /> + <xs:attribute name="tracking_delta" type="xs:string" use="required" /> </xs:extension> </xs:complexContent> </xs:complexType> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd index 2484bce95..2d87a89a5 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd @@ -50,6 +50,7 @@ <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:sequence> + <xs:element name="connected" type="mng:BooleanType" /> <xs:element name="status" type="mng:SystemStatusType" /> <xs:element name="actualSetup" type="baci:ROstring" /> <xs:element name="motionInfo" type="baci:ROstring" /> @@ -60,7 +61,6 @@ <xs:element name="scanActive" type="mng:BooleanType" /> <xs:element name="scanning" type="mng:BooleanType" /> <xs:element name="tracking" type="mng:BooleanType" /> - <xs:element name="current_configuration" type="SRTMinorServoFocalConfigurationType" /> <xs:element name="simulation_enabled" type="mng:BooleanType" /> <xs:element name="plc_time" type="baci:ROdouble" /> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd index 46c9f8a9e..e1f7c7a52 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd @@ -25,6 +25,7 @@ <xs:element name="physical_axes_enabled" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="physical_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="virtual_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_axes_units" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="virtual_offsets" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> -- GitLab From ba9e2a758edb49215b3f78b2cb908e76edb8c751 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 5 Feb 2024 21:09:05 +0000 Subject: [PATCH 055/150] Updated SRTMinorServo interfaces --- .../SRTMinorServoInterface/idl/SRTMinorServoBoss.idl | 5 +++++ .../SRTMinorServoInterface/idl/SRTMinorServoCommon.midl | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl index e7a42686f..ae5c1138b 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -17,6 +17,11 @@ module MinorServo { interface SRTMinorServoBoss: MinorServoBoss { + /** + * Boolean indicating whether the component is connected to the Leonardo Minor Servo system + */ + readonly attribute Management::ROTBoolean connected; + /** * Current configuration of the Leonardo minor servo system */ diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl index 841b46537..6addf4c0d 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -54,8 +54,8 @@ module MinorServo enum SRTMinorServoGregorianCoverStatus { COVER_STATUS_UNKNOWN, - COVER_STATUS_OPEN, - COVER_STATUS_CLOSED + COVER_STATUS_CLOSED, + COVER_STATUS_OPEN }; ACS_ENUM(SRTMinorServoGregorianCoverStatus); -- GitLab From 4cbe905d2ad4f4c80120f217975116f192d5803f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 5 Feb 2024 21:16:58 +0000 Subject: [PATCH 056/150] Updated SRT MinorServo Libraries and tests --- .../include/SRTMinorServoAnswerMap.h | 34 +--- .../include/SRTMinorServoSocket.h | 16 +- .../include/SRTMinorServoTestingSocket.h | 40 ----- .../include/SRTMinorServoUtils.h | 149 ++++++++++++++++++ .../SRTMinorServoLibrary/src/Makefile | 8 +- .../src/SRTMinorServoSocket.cpp | 28 ++-- .../SRTMinorServoLibrary/tests/Makefile | 4 +- .../tests/SRTMinorServoSocketTest.cpp | 86 ++++++---- 8 files changed, 229 insertions(+), 136 deletions(-) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h index 83bef228d..c196676ee 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h @@ -3,42 +3,14 @@ #include <sstream> #include <map> -#include <variant> -#include <type_traits> #include <mutex> #include <shared_mutex> #include <IRA> - -#include <Cplusplus11Helper.h> -C11_IGNORE_WARNING_PUSH -C11_IGNORE_WARNING("-Wunused-function") - -static std::ostream& operator<<(std::ostream& out, const std::variant<long, double, std::string>& value) -{ - std::visit([&out](const auto& val) { out << val; }, value); - return out; -} - -C11_IGNORE_WARNING_POP +#include "SRTMinorServoUtils.h" namespace MinorServo { - /** - * The following templates are useful if you want to check if a given type for the SRTMinorServoAnswerMap is accepted - */ - template <typename T> - struct is_string : public std::disjunction<std::is_same<char*, std::decay_t<T>>, std::is_same<const char*, std::decay_t<T>>, std::is_same<std::string, std::decay_t<T>>> {}; - - template <typename T> - inline constexpr bool is_string_v = is_string<T>::value; - - template <typename T> - struct is_known : public std::disjunction<std::is_arithmetic<std::decay_t<T>>, is_string<std::decay_t<T>>> {}; - - template <typename T> - inline constexpr bool is_known_v = is_known<T>::value; - class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> { /** @@ -114,7 +86,7 @@ namespace MinorServo template <typename T> T get(const std::string& key) const { - if constexpr(std::negation_v<MinorServo::is_known<T>>) + if constexpr(std::negation_v<is_known<T>>) { throw std::runtime_error("Unsupported type."); } @@ -144,7 +116,7 @@ namespace MinorServo template <typename T> void put(const std::string& key, const T& value) { - if constexpr(std::negation_v<MinorServo::is_known<T>>) + if constexpr(std::negation_v<is_known<T>>) { throw std::runtime_error("Unsupported type."); } diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h index 7689ab1b3..4d2174cd6 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h @@ -23,7 +23,7 @@ namespace MinorServo /** * Testing class forward declaration. * The declaration of this class can be found in the SRTMinorServoTestingSocket.h header file. - * Instructions on how to use this for testing purposes can be found there as well. + * A developer must use this class for testing purposes if he needs to destroy the singleton socket instance as well. */ class SRTMinorServoTestingSocket; @@ -39,8 +39,7 @@ namespace MinorServo * @param ip_address the IP address to which the socket will connect * @param port the port to which the socket will connect * @param timeout the timeout, in seconds, for the communication to be considered failed - * @throw MinorServoErrors::MinorServoErrorsEx when the user calls this method a second time with different IP address and port arguments (non testing mode) - * @throw MinorServoErrors::CommunicationErrorExImpl (testing mode) + * @throw MinorServoErrors::MinorServoErrorsEx when the user calls this method a second time with different IP address and port arguments * @return the singleton socket instance, eventually connected to the given IP address and port, by reference */ static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT); @@ -56,8 +55,7 @@ namespace MinorServo * Sends a command on the socket and returns the received answer, if any * @param command the command to be sent over the socket * @param map, optional SRTMinorServoAnswerMap object. If provided, the 'map' argument content gets updated with the newly received answer - * @throw MinorServoErrors::MinorServoErrorsEx when the operation of sending or receiving fails unexpectedly (non testing mode) - * @throw MinorServoErrors::CommunicationErrorExImpl (testing mode) + * @throw MinorServoErrors::MinorServoErrorsEx when the operation of sending or receiving fails unexpectedly * @return the received answer to the given command */ SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); @@ -99,8 +97,7 @@ namespace MinorServo /** * Connection function. It gets called every time the socket gets disconnected - * throw MinorServoErrors::MinorServoErrorsEx when the connection attempt fails (non testing mode) - * throw MinorServoErrors::CommunicationErrorExImpl (testing mode) + * throw MinorServoErrors::MinorServoErrorsEx when the connection attempt fails */ void connect(); @@ -130,11 +127,6 @@ namespace MinorServo */ static std::mutex c_mutex; - /** - * Boolean indicating whether we are testing the socket or not - */ - inline static bool c_testing = false; - /** * Socket status enumerator */ diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h index 1fc5b236f..da33e9dd9 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h @@ -6,48 +6,8 @@ namespace MinorServo { /** * This class is a friend class of SRTMinorServoSocket. It can be used for testing purposes without altering the behavior of the original class. - * Instructions on how to use this class inside tests: - * 1) Declare the test class with a forward declaration - * 2) Define the FRIEND_CLASS_DECLARATION macro - * 3) Include this header file - * 4) Finally implement the test class - * Example: - * - * ... - * class TestClass; - * #define FRIEND_CLASS_DECLARATION friend class ::TestClass; - * #include "SRTMinorServoTestingSocket.h" - * - * class TestClass : public ::testing::Test - * { - * ... */ - - /** - * This is a macro that each test file will have to define prior to including this header file. - * It can be a single or multiple lines each one containing a friend class declaration. - */ - FRIEND_CLASS_DECLARATION; public: - /** - * Ovverride of the original SRTMinorServoSocket getInstance methods. Before doing anything, they set the c_testing variable of the original class to true. - * This changes how the exceptions are thrown. - * In non testing purposes, exceptions are thrown as MinorServoErrorsEx - * In testing purposes, exceptions are thrown as they are (ExImpl) - * This change in behavior allow for better testing and debugging purposes, while still allowing the socket to throw the base MinorServoErrorsEx when not used in testing purposes. - * This allow us to avoid catching exceptions in the component, since MinorServoErrorsEx are already captured by CORBA - */ - static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT) - { - SRTMinorServoSocket::c_testing = true; - return SRTMinorServoSocket::getInstance(ip_address, port, timeout); - } - static SRTMinorServoSocket& getInstance() - { - SRTMinorServoSocket::c_testing = true; - return SRTMinorServoSocket::getInstance(); - } - /** * This method explicitly destroys the singleton socket instance. * Each test in the same test file is executed under the same process, therefore a singleton instance that does not get destroyed will still exist in the next executed tests. diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h new file mode 100644 index 000000000..f3ff3be96 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h @@ -0,0 +1,149 @@ +#ifndef _SRTMINORSERVOUTILS_H +#define _SRTMINORSERVOUTILS_H +#include <variant> +#include <type_traits> +#include <Cplusplus11Helper.h> +#include <IRA> +#include <ComponentErrors.h> + +/** + * The following templates are useful if you want to check if a given type for the SRTMinorServoAnswerMap is accepted + */ +template <typename T> +struct is_atomic { static constexpr bool value = false; }; + +template <typename T> +struct is_atomic<std::atomic<T>> { static constexpr bool value = true; }; + +template <typename T> +inline constexpr bool is_atomic_v = is_atomic<T>::value; + +template <typename T, typename... Ts> +struct is_any : public std::disjunction<std::is_same<T, Ts>...> {}; + +template <typename T, typename... Ts> +inline constexpr bool is_any_v = (std::is_same_v<T, Ts> || ...); + +template <typename T> +struct is_string : public std::disjunction<is_any<std::decay_t<T>, char*, const char*, std::string>> {}; + +template <typename T> +inline constexpr bool is_string_v = is_string<T>::value; + +template <typename T> +struct is_known : public std::disjunction<std::is_arithmetic<std::decay_t<T>>, is_string<std::decay_t<T>>> {}; + +template <typename T> +inline constexpr bool is_known_v = is_known<T>::value; + +template <typename T, typename Enable = std::enable_if_t<std::disjunction_v<is_known<T>, std::is_same<T, std::vector<double>>>>> +struct DB_type +{ + using type = std::conditional_t<std::disjunction_v<is_string<T>, std::is_same<T, std::vector<double>>>, IRA::CString, std::conditional_t<std::is_integral_v<T>, long, double>>; +}; + +template <typename T> +T getCDBValue(maci::ContainerServices* container_services, const std::string& field, const std::string& component="") +{ + return getCDBValue<T>(container_services, field.c_str(), component.c_str()); +} + +template <typename T> +T getCDBValue(maci::ContainerServices* container_services, const char* field, const char* component="") +{ + using C = typename DB_type<T>::type; + + C temp; + if(IRA::CIRATools::getDBValue(container_services, field, temp, "alma/", component)) + { + if constexpr(std::is_same_v<T, std::vector<double>>) + { + std::vector<double> values; + std::istringstream iss(std::string(temp).c_str()); + std::string token; + while(std::getline(iss, token, ',')) + { + double value; + try + { + value = std::stod(token); + } + catch(std::invalid_argument& ia) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setFieldName(field); + throw ex.getComponentErrorsEx(); + } + catch(std::out_of_range& oor) + { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setValueName(field); + ex.setValueLimit(token.find('-') == std::string::npos ? std::numeric_limits<double>::max() : std::numeric_limits<double>::min()); + throw ex.getComponentErrorsEx(); + } + + values.push_back(value); + } + return values; + } + else if constexpr(std::is_same_v<C, IRA::CString>) + { + return (T)std::string(temp).c_str(); + } + else + { + return T(temp); + } + } + else + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setFieldName(field); + throw ex.getComponentErrorsEx(); // Maybe throw the plain ex + } +} + +const char* getReasonFromEx(const auto& ex) +{ + std::string reason = "Unknown reason"; + + for(auto [name, value] : ex.errorTrace.data) + { + if(strcmp(name, "Reason") == 0) + { + reason = value; + break; + } + } + + return reason.c_str(); +} + +const char* getErrorFromEx(const auto& ex) +{ + std::string error(ex.errorTrace.routine); + + for(auto [name, value] : ex.errorTrace.data) + { + if(strcmp(name, "Reason") == 0) + { + error += ": " + std::string(value); + break; + } + } + + return error.c_str(); +} + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wunused-function") + +static std::ostream& operator<<(std::ostream& out, const std::variant<long, double, std::string>& value) +{ + std::visit([&out](const auto& val) { out << val; }, value); + return out; +} + +C11_IGNORE_WARNING_POP + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index d8b66463f..26d07014c 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -54,7 +54,7 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h #hexlib.h +INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h SRTMinorServoUtils.h #hexlib.h # # Libraries (public and local) @@ -64,14 +64,14 @@ LIBRARIES_L = SRTMinorServoLibrary_OBJECTS = hexlib SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary -SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 +SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -fconcepts SRTMinorServoCommandLibrary_LIBS = pthread IRALibrary PySRTMinorServoCommandLibrary_OBJECTS = PySRTMinorServoCommandLibrary -PySRTMinorServoCommandLibrary_CFLAGS = -std=c++17 +PySRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -fconcepts PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python3 SRTMinorServoSocketLibrary_OBJECTS = SRTMinorServoSocket SRTMinorServoSocketLibrary_LIBS = IRALibrary ComponentErrors MinorServoErrors SRTMinorServoCommandLibrary -SRTMinorServoSocket_CFLAGS = -std=c++17 +SRTMinorServoSocket_CFLAGS = -std=c++17 -fconcepts # # <brief description of lllll library> diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index 04854326d..d0e3405ef 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -1,15 +1,5 @@ #include "SRTMinorServoSocket.h" -#define THROW \ -if(c_testing) \ -{ \ - throw impl; \ -} \ -else \ -{ \ - throw impl.getMinorServoErrorsEx(); \ -} - using namespace MinorServo; std::mutex SRTMinorServoSocket::c_mutex; @@ -24,7 +14,7 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, in { _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); impl.setReason(("Socket already open on '" + m_instance->m_ip_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); - THROW; + throw impl.getMinorServoErrorsEx(); } } else @@ -42,7 +32,7 @@ SRTMinorServoSocket& SRTMinorServoSocket::getInstance() { _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); impl.setReason("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); - THROW; + throw impl.getMinorServoErrorsEx(); } return *m_instance; } @@ -81,7 +71,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot create the socket."); - THROW; + throw impl.getMinorServoErrorsEx(); } if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) @@ -90,7 +80,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot connect the socket."); - THROW; + throw impl.getMinorServoErrorsEx(); } if(setSockMode(m_error, NONBLOCKING) != SUCCESS) @@ -99,7 +89,7 @@ void SRTMinorServoSocket::connect() Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); impl.setReason("Cannot set the socket to non-blocking."); - THROW; + throw impl.getMinorServoErrorsEx(); } m_socket_status = READY; @@ -134,7 +124,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); impl.setReason("Something went wrong while sending some bytes."); - THROW; + throw impl.getMinorServoErrorsEx(); } if(sent_now > 0) @@ -148,7 +138,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); impl.setReason("Timeout when sending command."); - THROW; + throw impl.getMinorServoErrorsEx(); } } @@ -173,7 +163,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); impl.setReason("Timeout when receiving answer."); - THROW; + throw impl.getMinorServoErrorsEx(); } } catch(...) @@ -182,7 +172,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); impl.setReason("Something went wrong while receiving some bytes."); - THROW; + throw impl.getMinorServoErrorsEx(); } } diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile index 1e8380bf7..517c0d13a 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile @@ -17,12 +17,12 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) EXECUTABLES_L = SRTMinorServoCommandLibraryTest SRTMinorServoSocketTest SRTMinorServoCommandLibraryTest_OBJECTS = SRTMinorServoCommandLibraryTest -SRTMinorServoCommandLibraryTest_CFLAGS = -std=c++17 +SRTMinorServoCommandLibraryTest_CFLAGS = -std=c++17 -fconcepts SRTMinorServoCommandLibraryTest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary SRTMinorServoCommandLibraryTest_LDFLAGS = -lstdc++ -lpthread SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest -SRTMinorServoSocketTest_CFLAGS = -std=c++17 +SRTMinorServoSocketTest_CFLAGS = -std=c++17 -fconcepts SRTMinorServoSocketTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp index 8943dcf87..7de92d0c1 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp @@ -4,7 +4,9 @@ #include "gtest/gtest.h" #include <iostream> #include <thread> +#include "SRTMinorServoUtils.h" #include "SRTMinorServoCommandLibrary.h" +#include "SRTMinorServoTestingSocket.h" // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: @@ -12,10 +14,6 @@ #define ADDRESS std::string("127.0.0.1") #define PORT 12800 -class SRTMinorServoSocketTest; -#define FRIEND_CLASS_DECLARATION friend class ::SRTMinorServoSocketTest; -#include "SRTMinorServoTestingSocket.h" - using namespace MinorServo; class SRTMinorServoSocketTest : public ::testing::Test @@ -51,7 +49,7 @@ TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) if(!socket.isConnected()) { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; } for(auto command : this->commands) @@ -89,18 +87,23 @@ TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) // and if the answer was received correctly without being interleaved with the answer from another thread EXPECT_TRUE(args.checkOutput()); } - catch(MinorServoErrors::CommunicationErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { std::lock_guard<std::mutex> guard(mutex); - if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + try { - error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; + if(std::string(getReasonFromEx(ex)) == "Cannot connect the socket.") + { + error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } } - else + catch(...) { - error = "Unexpected failure."; } + + error = "Unexpected failure."; } })); } @@ -112,7 +115,7 @@ TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) if(error != "") { - FAIL() << error << std::endl; + FAIL() << error; } } @@ -127,17 +130,26 @@ TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) // Let's try to instance another socket on a different port SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT + 1); } - catch(MinorServoErrors::CommunicationErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + try { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - return; + std::string reason(getReasonFromEx(ex)); + + if(reason == "Cannot connect the socket.") + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(reason, "Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object."); + } } - else + catch(...) { - // Check if we got the correct exception - EXPECT_EQ(ex.getReason(), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + FAIL() << "Unexpected failure."; } } } @@ -149,17 +161,26 @@ TEST_F(SRTMinorServoSocketTest, try_open_without_args) { SRTMinorServoTestingSocket::getInstance(); } - catch(MinorServoErrors::CommunicationErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - if(ex.getReason() == std::string("Cannot connect the socket.").c_str()) + try { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - return; + std::string reason(getReasonFromEx(ex)); + + if(reason == "Cannot connect the socket.") + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(reason, "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + } } - else + catch(...) { - // Check if we got the correct exception - EXPECT_EQ(ex.getReason(), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); + FAIL() << "Unexpected failure."; } } } @@ -172,9 +193,18 @@ TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) // The exception is raised only if the given port is wrong SRTMinorServoTestingSocket::getInstance(ADDRESS, 0); } - catch(MinorServoErrors::CommunicationErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - // Check if we got the correct exception - EXPECT_EQ(ex.getReason(), std::string("Cannot connect the socket.").c_str()); + try + { + std::string reason(getReasonFromEx(ex)); + + // Check if we got the correct exception + EXPECT_EQ(reason, "Cannot connect the socket."); + } + catch(...) + { + FAIL() << "Unexpected failure."; + } } } -- GitLab From f6070e0e312893858a4b6f0314f1fb9916a90eb6 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 6 Feb 2024 11:42:24 +0000 Subject: [PATCH 057/150] Updates for CLow and SRT Active Surface --- .../RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml | 2 +- .../SRT5GHzReceiver/Synthesizer/Synthesizer.xml | 4 ++-- .../include/SRTActiveSurfaceBossCore.h | 6 +++--- .../src/SRTActiveSurfaceBossCore.cpp | 14 ++++++-------- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index a5c080c2a..8fc0f3bb6 100644 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -9,7 +9,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="5GHzReceiver" - Code="SRT7GHzImpl" + Code="SRT5GHzImpl" Type="IDL:alma/Receivers/SRT5GHz:1.0" Container="SRT5GHzContainer" KeepAliveTime="-1" diff --git a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml index 892a6cf1f..b336a520a 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml @@ -5,6 +5,6 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> -<SynthesizerEntry><Frequency>8200.0</Frequency><OutputPower>6</OutputPower></SynthesizerEntry> +<SynthesizerEntry><Frequency>8200.0</Frequency><OutputPower>16</OutputPower></SynthesizerEntry> -</LocalOscillatorLookUpTable> \ No newline at end of file +</LocalOscillatorLookUpTable> diff --git a/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h b/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h index 8f02a34c8..89494afae 100644 --- a/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h +++ b/SRT/Servers/SRTActiveSurfaceBoss/include/SRTActiveSurfaceBossCore.h @@ -35,8 +35,8 @@ #define lastUSD 1116 #define LOOPTIME 100000 // 0,10 sec #define CDBPATH std::string(getenv("ACS_CDB")) + "/CDB/" -#define USDTABLE (CDBPATH + "alma/AS/tab_convUSD.txt").c_str() -#define USDTABLECORRECTIONS (CDBPATH + "alma/AS/act_rev02.txt").c_str() +#define USDTABLE CDBPATH + "alma/AS/tab_convUSD.txt" +#define USDTABLECORRECTIONS CDBPATH + "alma/AS/act_rev02.txt" #define MM2HSTEP 350 //(10500 HSTEP / 30 MM) #define MM2STEP 1400 //(42000 STEP / 30 MM) #define WARNINGUSDPERCENT 0.95 @@ -228,7 +228,7 @@ private: bool m_newlut; - const char* m_lut; + std::string m_lut; }; #endif /*SRTACTIVESURFACEBOSSCORE_H_*/ diff --git a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp index 1e5be0b37..a63fa676f 100644 --- a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp +++ b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp @@ -67,8 +67,8 @@ void CSRTActiveSurfaceBossCore::execute() throw (ComponentErrors::CouldntGetComp char * value2; //s_usdTable = getenv ("ACS_CDB"); - //strcat(s_usdTable,USDTABLE); - value2 = USDTABLE; + //strcat(s_usdTable,USDTABLE.c_str()); + value2 = USDTABLE.c_str(); //ifstream usdTable(s_usdTable); ifstream usdTable(value2); if(!usdTable) @@ -78,7 +78,7 @@ void CSRTActiveSurfaceBossCore::execute() throw (ComponentErrors::CouldntGetComp exit(-1); } - value = USDTABLECORRECTIONS; + value = USDTABLECORRECTIONS.c_str(); ifstream usdCorrections (value); if(!usdCorrections) { @@ -1360,7 +1360,7 @@ void CSRTActiveSurfaceBossCore::workingActiveSurface() throw (ComponentErrors::C void CSRTActiveSurfaceBossCore::asSetLUT(const char *newlut) { - m_lut= (CDBPATH + "alma/AS/" + newlut).c_str(); + m_lut = std::string(CDBPATH + "alma/AS/" + newlut); m_newlut = true; } @@ -1377,12 +1377,10 @@ void CSRTActiveSurfaceBossCore::setProfile(const ActiveSurface::TASProfile& newP if(all_sectors) // USD tables has not been loaded yet { - ifstream usdCorrections (m_lut); - //ifstream usdCorrections (USDTABLECORRECTIONS); + ifstream usdCorrections(m_lut); if(!usdCorrections) { - ACS_SHORT_LOG ((LM_INFO, "File %s not found", m_lut)); - //ACS_SHORT_LOG ((LM_INFO, "File %s not found", USDTABLECORRECTIONS)); + ACS_SHORT_LOG ((LM_INFO, "File %s not found", m_lut.c_str())); exit(-1); } actuatorsCorrections.length(NPOSITIONS); -- GitLab From a90a727477800136cab1c6c9dcde86d6c1f5a8ca Mon Sep 17 00:00:00 2001 From: Andrea Orlati <aorlati@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:15:23 +0100 Subject: [PATCH 058/150] =?UTF-8?q?fix=20issue=20#820:=20handled=20the=20e?= =?UTF-8?q?rror=20risen=20when=20trying=20to=20connect=20to=20the=E2=80=A6?= =?UTF-8?q?=20(#821)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix issue #820: handled the error risen when trying to connect to the LNA board and commented out all the code trying to get data from the board. Now the LNA bias parameters are zeros. Also get rid of the old K band derotator. * SRT5GHzReceiver with CLOW LO * SRT5GHz test configuration patched * fix issue #820: handled (got rid) of an error coused by the lan control board replacement that could affect the setup process of the receiver * Update .gitignore .vscode extension * Fix #820, upd. ReceiversLibrary and K band component --------- Co-authored-by: Andrea Orlati <a.orati@ira.inaf.it> Co-authored-by: Giuseppe Carboni <giuseppecarboni89@live.com> Co-authored-by: Sergio Poppi <s.poppi@gmail.com> I will merge this now, if anything wrong may arise in the future, we will fix it --- .gitignore | 1 + .../IRALibrary/include/MicroControllerBoard.h | 1 + .../IRALibrary/include/ReceiverControl.h | 12 +- Common/Libraries/IRALibrary/src/Makefile | 6 +- .../IRALibrary/src/MicroControllerBoard.cpp | 45 +- .../IRALibrary/src/ReceiverControl.cpp | 54 -- .../IRALibrary/src/TestCommandRXBoard.cpp | 572 ++++++++++++++++++ .../IRALibrary/src/TestReceiverControl.cpp | 2 +- .../src/MFKBandBaseCore.cpp | 10 +- .../Components/RECEIVERS/LO_CLOW/LO_CLOW.xml | 18 + .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 18 + .../SRTKBandDerotator/SRTKBandDerotator.xml | 16 - .../DerotatorContainer/DerotatorContainer.xml | 35 -- .../SRT5GHzContainer/SRT5GHzContainer.xml} | 4 +- SRT/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml | 11 + .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 187 ++++++ .../SRTKBandDerotator/SRTKBandDerotator.xml | 51 -- .../SRTKBandMFReceiver/SRTKBandMFReceiver.xml | 4 +- .../Components/RECEIVERS/LO_CLOW/LO_CLOW.xml | 18 + .../SRTKBandDerotator/SRTKBandDerotator.xml | 17 - .../CDB/alma/RECEIVERS/Boss/Boss.xml | 2 +- .../CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml | 11 + .../CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml | 2 +- .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 2 +- .../SRTKBandDerotator/SRTKBandDerotator.xml | 51 -- .../SRTKBandMFReceiver/SRTKBandMFReceiver.xml | 6 +- .../SRTScripts/app-defaults/discosStartup.xml | 9 - .../include/DevIOLNAControls.h | 7 +- SRT/Servers/SRTKBandMFReceiver/src/Makefile | 15 +- .../SRTKBandMFReceiver/src/MonitorThread.cpp | 9 +- .../src/SRTKBandMFReceiverImpl.cpp | 8 +- 31 files changed, 921 insertions(+), 283 deletions(-) create mode 100644 Common/Libraries/IRALibrary/src/TestCommandRXBoard.cpp create mode 100644 SRT/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml create mode 100644 SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml delete mode 100644 SRT/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml delete mode 100644 SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml rename SRT/{Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml => CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml} (90%) create mode 100644 SRT/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml create mode 100644 SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml delete mode 100644 SRT/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml create mode 100644 SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml delete mode 100644 SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml create mode 100644 SRT/Configuration/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml delete mode 100644 SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml diff --git a/.gitignore b/.gitignore index 8061be08c..12abadff6 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ SRT/Clients/SRTActiveSurfaceGUIClient/include/SRTActiveSurfaceGUI.h SRT/Clients/SRTActiveSurfaceGUIClient/src/moc_SRTActiveSurfaceCore.cpp SRT/Clients/SRTActiveSurfaceGUIClient/src/moc_SRTActiveSurfaceGUIui.cpp SRT/Interfaces/SRTActiveSurfaceInterface/idl/SRTActiveSurfaceBoss.idl +.vscode/settings.json diff --git a/Common/Libraries/IRALibrary/include/MicroControllerBoard.h b/Common/Libraries/IRALibrary/include/MicroControllerBoard.h index aed54f79b..fa69bda2b 100644 --- a/Common/Libraries/IRALibrary/include/MicroControllerBoard.h +++ b/Common/Libraries/IRALibrary/include/MicroControllerBoard.h @@ -124,6 +124,7 @@ private: const DWORD m_timeout; const BYTE m_master_address; const BYTE m_slave_address; + bool m_connected; IRA::CSocket *m_socket; unsigned long long m_id; BYTE m_command_type; diff --git a/Common/Libraries/IRALibrary/include/ReceiverControl.h b/Common/Libraries/IRALibrary/include/ReceiverControl.h index 08024c0b3..7cc825483 100644 --- a/Common/Libraries/IRALibrary/include/ReceiverControl.h +++ b/Common/Libraries/IRALibrary/include/ReceiverControl.h @@ -667,8 +667,8 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number_sd=MCB_PORT_NUMBER_13, const BYTE port_number_vlbi=MCB_PORT_NUMBER_14, - const BYTE value_sd=0x00, - const BYTE value_vlbi=0x01 + const BYTE value_sd=0x01, + const BYTE value_vlbi=0x00 ); @@ -682,7 +682,7 @@ public: bool isSingleDishModeOn( const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, - const BYTE port_number=MCB_PORT_NUMBER_29 + const BYTE port_number=MCB_PORT_NUMBER_13 ); @@ -704,8 +704,8 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number_vlbi=MCB_PORT_NUMBER_14, const BYTE port_number_sd=MCB_PORT_NUMBER_13, - const BYTE value_vlbi=0x00, - const BYTE value_sd=0x01 + const BYTE value_vlbi=0x01, + const BYTE value_sd=0x00 ); @@ -719,7 +719,7 @@ public: bool isVLBIModeOn( const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, - const BYTE port_number=MCB_PORT_NUMBER_30 + const BYTE port_number=MCB_PORT_NUMBER_14 ); diff --git a/Common/Libraries/IRALibrary/src/Makefile b/Common/Libraries/IRALibrary/src/Makefile index 8c9fa9012..2c8de3054 100644 --- a/Common/Libraries/IRALibrary/src/Makefile +++ b/Common/Libraries/IRALibrary/src/Makefile @@ -53,7 +53,7 @@ PY_SCRIPTS = EXECUTABLES = EXECUTABLES_L = Test1 Test2 TestDBTable TestTypes TestMicroControllerBoard TestReceiverControl TestLogDike TestTimeTaggedCircularArray \ - TestFlux TestTimer TestRounding + TestFlux TestTimer TestRounding TestCommandRXBoard # # <brief description of xxxxx program> @@ -75,6 +75,10 @@ TestMicroControllerBoard_LIBS = IRALibrary TestReceiverControl_OBJECTS = TestReceiverControl TestReceiverControl_LIBS = IRALibrary +TestCommandRXBoard_OBJECTS = TestCommandRXBoard +TestCommandRXBoard_LIBS = IRALibrary + + TestLogDike_OBJECTS = TestDike TestLogDike_LIBS = IRALibrary ClientErrors diff --git a/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp b/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp index e74c82817..cc88984ed 100644 --- a/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp +++ b/Common/Libraries/IRALibrary/src/MicroControllerBoard.cpp @@ -7,7 +7,7 @@ MicroControllerBoard::MicroControllerBoard( const BYTE master_address, const BYTE slave_address, const DWORD timeout) : m_IP(IP), m_port(port), m_timeout(timeout), m_master_address(master_address), - m_slave_address(slave_address), + m_slave_address(slave_address), m_connected(false), m_socket(NULL), m_id(0), m_command_type(0x00) { try { @@ -17,9 +17,11 @@ MicroControllerBoard::MicroControllerBoard( catch (std::bad_alloc& ex) { throw MicroControllerBoardEx("Memory allocation error"); } - - if(m_socket->Create(m_Error, CSocket::STREAM) == CSocket::FAIL) - throw MicroControllerBoardEx("Error creating socket"); + if (strcmp(m_IP.c_str(),"")!=0) { + if(m_socket->Create(m_Error, CSocket::STREAM) == CSocket::FAIL) throw MicroControllerBoardEx("Error creating socket"); + } else { + m_connected=false; + } } MicroControllerBoard::~MicroControllerBoard() { @@ -31,12 +33,13 @@ MicroControllerBoard::~MicroControllerBoard() { void MicroControllerBoard::openConnection(void) { - + if (strcmp(m_IP.c_str(),"")==0) return; if (m_socket->Connect(m_Error, m_IP.c_str(), m_port) == CSocket::FAIL) { closeConnection(); throw MicroControllerBoardEx(std::string("Error connecting to ") + m_IP + ":" + any2string(m_port)); } else { + m_connected=true; if(m_socket->setSockMode(m_Error, CSocket::BLOCKINGTIMEO, m_timeout) != CSocket::SUCCESS) { closeConnection(); throw MicroControllerBoardEx("Error configuring socket"); @@ -48,8 +51,9 @@ CSocket::SocketStatus MicroControllerBoard::getConnectionStatus(void) { return(m void MicroControllerBoard::closeConnection(void) { pthread_mutex_lock(&m_socket_mutex); - if(m_socket != NULL && m_socket->getStatus()) { + if(m_socket != NULL && m_socket->getStatus() && m_connected) { m_socket->Close(m_Error); + m_connected=false; if(!m_Error.isNoError()) std::cerr << "An error occured closing the socket" << endl; @@ -60,13 +64,15 @@ void MicroControllerBoard::closeConnection(void) { } std::vector<BYTE> MicroControllerBoard::receive(void) { - pthread_mutex_lock(&m_socket_mutex); + BYTE msg[MCB_BUFF_LIMIT] = {0x00}; bool is_short_cmd = false, has_data_cmd = false; BYTE sh_command = 0x00; // Shifted command (command_type - MCB_CMD_TYPE_EXTENDED) std::vector<BYTE> data, clean_data; - std::ostringstream msg_stream; + std::ostringstream msg_stream; + if (!m_connected) throw MicroControllerBoardEx("Board connection disabled"); + pthread_mutex_lock(&m_socket_mutex); // Receive the response one byte at once try { for(size_t j = 0; j < MCB_HT_COUNTER; j++) { @@ -77,8 +83,10 @@ std::vector<BYTE> MicroControllerBoard::receive(void) { continue; } } - if(msg[0] != MCB_CMD_STX) - throw MicroControllerBoardEx("No answer header received"); + if(msg[0] != MCB_CMD_STX) { + throw MicroControllerBoardEx("No answer header received"); + } + else { m_answer.clear(); m_answer.push_back(msg[0]); @@ -125,8 +133,9 @@ std::vector<BYTE> MicroControllerBoard::receive(void) { has_data_cmd = false; } - if(msg[MCB_BASE_ANSWER_LENGTH]) - throw MicroControllerBoardEx("An error occurs. Error code: " + any2string(int(msg[MCB_BASE_ANSWER_LENGTH]))); + if(msg[MCB_BASE_ANSWER_LENGTH]) { + throw MicroControllerBoardEx("An error occurs. Error code: " + any2string(int(msg[MCB_BASE_ANSWER_LENGTH]))); + } // If the answer should have data and there aren't any errors, then continue the reception if(has_data_cmd) { @@ -138,8 +147,10 @@ std::vector<BYTE> MicroControllerBoard::receive(void) { msg_stream << msg[MCB_BASE_ANSWER_LENGTH]; m_answer.push_back(msg[MCB_BASE_ANSWER_LENGTH]); } - else - throw MicroControllerBoardEx("Error: data length not received."); + else { + pthread_mutex_unlock(&m_socket_mutex); + throw MicroControllerBoardEx("Error: data length not received."); + } // Get the parameters for(int i=MCB_BASE_ANSWER_LENGTH + 1; i < MCB_BASE_ANSWER_LENGTH + 1 + int(msg[MCB_BASE_ANSWER_LENGTH]); i++) { @@ -173,8 +184,9 @@ std::vector<BYTE> MicroControllerBoard::receive(void) { break; } while(counter < MCB_HT_COUNTER); - if(msg[idx] != MCB_CMD_ETX) - throw MicroControllerBoardEx("Answer terminator not found."); + if(msg[idx] != MCB_CMD_ETX) { + throw MicroControllerBoardEx("Answer terminator not found."); + } } pthread_mutex_unlock(&m_socket_mutex); @@ -231,6 +243,7 @@ std::vector<BYTE> MicroControllerBoard::receive(void) { } void MicroControllerBoard::send(const BYTE command, std::vector<BYTE> parameters) { + if (!m_connected) throw MicroControllerBoardEx("Board connection disabled"); pthread_mutex_lock(&m_socket_mutex); try { if(command >= MCB_CMD_TYPE_MIN_EXT && command <= MCB_CMD_TYPE_MAX_ABB) { diff --git a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp index b08ae03ab..b758adc08 100644 --- a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp +++ b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp @@ -889,20 +889,6 @@ void ReceiverControl::setSingleDishMode( port_number_vlbi, value_vlbi ); - - // Turn OFF the single dish mode on port number 13 - makeRequest( - m_dewar_board_ptr, // Pointer to the dewar board - MCB_CMD_SET_DATA, // Command to send - 4, // Number of parameters - data_type, - port_type, - port_number_sd, - !value_sd - ); - - // Now the bits 13 and 14 are set to 1 - // We need to set the bit 13 to 0, wait a bit and set it to 1 usleep(3 * SETMODE_SLEEP_TIME); // Turn ON the single dish mode on port number 13 @@ -915,21 +901,7 @@ void ReceiverControl::setSingleDishMode( port_number_sd, value_sd ); - - usleep(3 * SETMODE_SLEEP_TIME); - // Turn OFF the single dish mode on port number 13 - makeRequest( - m_dewar_board_ptr, // Pointer to the dewar board - MCB_CMD_SET_DATA, // Command to send - 4, // Number of parameters - data_type, - port_type, - port_number_sd, - !value_sd - ); pthread_mutex_unlock(&m_dewar_mutex); - - // Now the bits 13 and 14 are set, respectively, to 0 and 1 } catch(MicroControllerBoardEx& ex) { pthread_mutex_unlock(&m_dewar_mutex); @@ -989,19 +961,6 @@ void ReceiverControl::setVLBIMode( port_number_sd, value_sd ); - // Turn OFF the VLBI mode on port number 14 - makeRequest( - m_dewar_board_ptr, // Pointer to the dewar board - MCB_CMD_SET_DATA, // Command to send - 4, // Number of parameters - data_type, - port_type, - port_number_vlbi, - !value_vlbi - ); - - // Now the bits 13 and 14 are set to 1 - // We need to set the bit 13 to 1, wait a bit and set again it to 0 usleep(3 * SETMODE_SLEEP_TIME); @@ -1015,20 +974,7 @@ void ReceiverControl::setVLBIMode( port_number_vlbi, value_vlbi ); - - usleep(3 * SETMODE_SLEEP_TIME); - // Turn OFF the VLBI mode on port number 14 - makeRequest( - m_dewar_board_ptr, // Pointer to the dewar board - MCB_CMD_SET_DATA, // Command to send - 4, // Number of parameters - data_type, - port_type, - port_number_vlbi, - !value_vlbi - ); pthread_mutex_unlock(&m_dewar_mutex); - } catch(MicroControllerBoardEx& ex) { pthread_mutex_unlock(&m_dewar_mutex); diff --git a/Common/Libraries/IRALibrary/src/TestCommandRXBoard.cpp b/Common/Libraries/IRALibrary/src/TestCommandRXBoard.cpp new file mode 100644 index 000000000..77ce4885b --- /dev/null +++ b/Common/Libraries/IRALibrary/src/TestCommandRXBoard.cpp @@ -0,0 +1,572 @@ +#include "ReceiverControl.h" +#include <cstdlib> +#include <string> + + +using namespace IRA; + +template<class T> +std::string any2string(T i) { + std::ostringstream buffer; + buffer << i; + return buffer.str(); +} + +/************************ CONVERSION FUNCTIONS **************************/ +// Convert the voltage value of the vacuum to mbar +double voltage2mbar(double voltage) { return(pow(10, 1.5 * voltage - 12)); } + +// Convert the voltage value of the temperatures to Kelvin (Sensor LAKE SHORE) +double voltage2Kelvin(double voltage) +{ + return voltage < 1.12 ? \ + (660.549422889947 * pow(voltage, 6)) - (2552.334255456860 * pow(voltage, 5)) + (3742.529989384570 * pow(voltage, 4)) \ + - (2672.656926956470 * pow(voltage, 3)) + (947.905578508975 * pow(voltage, 2)) - 558.351002849576 * voltage + 519.607622398508 \ + : \ + (865.747519105672 * pow(voltage, 6)) - (7271.931957100480 * pow(voltage, 5)) + (24930.666241800500 * pow(voltage, 4)) \ + - (44623.988512320400 * pow(voltage, 3)) + (43962.922216886600 * pow(voltage, 2)) - 22642.245121997700 * voltage + 4808.631312836750; +} + +// Convert the voltage value of the temperatures to Celsius (Sensor B57703-10K) +double voltage2Celsius(double voltage) +{ return -5.9931 * pow(voltage, 5) + 40.392 * pow(voltage, 4) - 115.41 * pow(voltage, 3) + 174.67 * pow(voltage, 2) - 174.23 * voltage + 112.79; } + + +// Convert the ID voltage value to the mA value +double currentConverter(double voltage) { return(10 * voltage); } + +// Convert the VD and VG voltage values using a right scale factor +double voltageConverter(double voltage) { return(voltage); } + + + + +/************************** END CONVERSIONS ****************************/ + + +int main(int argc, char *argv[]) +{ + if(argc != 5) { + cerr << "\nWrong number of parameters. "; + cerr << "Usage:\n\tTestReceiverControl dewar_IP dewar_port LNA_IP LNA_port\n" << endl; + // cerr << "Usage:\n\tTestReceiverControl dewar_IP dewar_port LNA_IP LNA_port, SW_IP SW_port\n" << endl; + return 1; + } + + std::string dewar_IP = std::string(argv[1]); + unsigned int dewar_port = atoi(argv[2]); + std::string lna_IP = std::string(argv[3]); + unsigned int lna_port = atoi(argv[4]); + // std::string switch_IP = std::string(argv[5]); + // unsigned int switch_port = atoi(argv[6]); + unsigned short feeds = 7; + std::vector<BYTE> data; + std::string input; + + + + + // Test the constructor + try { + cout << "\nConnecting to the boards (LNA and deward)..." << endl; + ReceiverControl rc = ReceiverControl( + dewar_IP, + dewar_port, + lna_IP, + lna_port, + 250000, + feeds, + "", + 0, + 0x7C, + 0x7F, + 0x7C, + 0x7D, + 0x7C, + 0x01, + false + ); + cout << "Connection" << " done!" << endl << endl; + + + while (true){ + + + std::cout << "Command:>"; + std::cin >> input ; + if (input=="calOn"){ + std::cout <<"calOn" <<std::endl; + rc.setCalibrationOn(); + cout << "Is the noise mark generator ON? " << (rc.isCalibrationOn() == true ? "yes" : "no") << endl; + + } else if (input=="calOff"){ + + std::cout <<"calOff" <<std::endl; + rc.setCalibrationOff(); + cout << "Is the noise mark generator ON? " << (rc.isCalibrationOn() == true ? "yes" : "no") << endl; + cout << "Done!\n" << endl; + + } else if (input=="exit"){ + + + std::cout <<"exit" <<std::endl; + break; + + } else { + + std::cout <<"Command Unknown" << std::endl; + } + + } + // // Test the setCalibrationOn() + // cout << "Test setCalibrationOn() with a reliable communication" << endl; + // rc.setCalibrationOn(); + // cout << "Done!\n" << endl; + + // // Test the isCalibrationOn() + // cout << "Test isCalibrationOn() with a reliable communication" << endl; + // cout << "Is the noise mark generator ON? " << (rc.isCalibrationOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // Test the setCalibrationOff() + // cout << "Test setCalibrationOff()" << endl; + //rc.setCalibrationOff(); + //cout << "Done!\n" << endl; + + // // Test the isCalibrationOn() + // cout << "Test isCalibrationOn() with a reliable communication" << endl; + // cout << "Is the noise mark generator ON? " << (rc.isCalibrationOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setExtCalibrationOn() + // cout << "Test setExtCalibrationOn() with a reliable communication" << endl; + // rc.setExtCalibrationOn(); + // cout << "Done!\n" << endl; + + // // Test the isExtCalibrationOn() + // cout << "Test isExtCalibrationOn() with a reliable communication" << endl; + // cout << "Is the external noise mark generator command enabled? " << (rc.isExtCalibrationOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setExtCalibrationOff() + // cout << "Test setExtCalibrationOff() with a reliable communication" << endl; + // rc.setExtCalibrationOff(); + // cout << "Done!\n" << endl; + + // // Test the isExtCalibrationOff() + // cout << "Test isExtCalibrationOn() with a reliable communication" << endl; + // cout << "Is the external noise mark generator command enabled? " << (rc.isExtCalibrationOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setReliableCommOff() + // cout << "Test setReliableCommOff()" << endl; + // rc.setReliableCommOff(); + // cout << "Done!\n" << endl; + + // Test the setVacuumSensorOn() + // cout << "Test setVacuumSensorOn() with a reliable communication" << endl; + // rc.setVacuumSensorOn(); + // cout << "Done!\n" << endl; + // + // sleep(1); + + // Test the isVacuumSensorOn() + // cout << "Test isVacuumSensorOn() with a reliable communication" << endl; + // cout << "Is the vacuum sensor ON? " << (rc.isVacuumSensorOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // Test the isRemoteOn() + // cout << "Test isRemoteOn() with a reliable communication" << endl; + // cout << "Is the remote command enable? " << (rc.isRemoteOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // Test the vacuum() voltage value, without conversion + // cout << "Test vacuum()" << endl; + // cout << "Vacuum value before conversion [Volt]: " << rc.vacuum() << endl; + // cout << "Vacuum value after conversion: " << rc.vacuum(voltage2mbar) << endl; + // cout << "Done!\n" << endl; + + // // Test the setReliableCommOn() + // cout << "Test setReliableCommOn()" << endl; + // rc.setReliableCommOn(); + // cout << "Done!\n" << endl; + + // // Test the setCalibrationOff() + // // cout << "Test setCalibrationOff() with a reliable communication" << endl; + // // rc.setCalibrationOff(); + // // cout << "Done!\n" << endl; + + // // Test the vacuum() + // cout << "Test vacuum() with a reliable communication" << endl; + // cout << "Vacuum value: " << rc.vacuum(voltage2mbar) << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumSensorOff() + // cout << "Test setVacuumSensorOn() with a reliable communication" << endl; + // rc.setVacuumSensorOff(); + // cout << "Done!\n" << endl; + + // Test the isVacuumSensorOn() + // cout << "Test isVacuumSensorOn() with a reliable communication" << endl; + // cout << "Is the vacuum sensor ON? " << (rc.isVacuumSensorOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // Test the vertexTemperature() voltage value, without conversion + //cout << "Test vertexTemperature()" << endl; + //cout << "Vertex temperature value before conversion [Volt]: " << rc.vertexTemperature(voltage2Celsius) << endl; + //cout << "Done!\n" << endl; + + // Test the cryoTemperature(0) + //cout << "Test cryoTemperature(0) with a reliable communication" << endl; + //cout << "First Cryogenic Temperature value (mbar): " << rc.cryoTemperature(0, voltage2Kelvin) << endl; + //cout << "First Cryogenic Temperature value (Volt): " << rc.cryoTemperature(0) << endl; + //cout << "Done!\n" << endl; + + // Test the cryoTemperature(1) + //cout << "Test cryoTemperature(1) with a reliable communication" << endl; + //cout << "Second Cryogenic Temperature value (mbar): " << rc.cryoTemperature(1, voltage2Kelvin) << endl; + //cout << "Second Cryogenic Temperature value (Volt): " << rc.cryoTemperature(1) << endl; + //cout << "Done!\n" << endl; + + // Test the cryoTemperature(3) + //cout << "Test cryoTemperature(3) with a reliable communication" << endl; + //cout << "Third Cryogenic Temperature value (mbar): " << rc.cryoTemperature(3, voltage2Kelvin) << endl; + //cout << "Third Cryogenic Temperature value (volt): " << rc.cryoTemperature(3) << endl; + //cout << "Done!\n" << endl; + + // // Test the cryoTemperature(4) + //cout << "Test cryoTemperature(4) with a reliable communication" << endl; + //cout << "Fouth Cryogenic Temperature value (mbar): " << rc.cryoTemperature(4, voltage2Kelvin) << endl; + //cout << "Fouth Cryogenic Temperature value (volt): " << rc.cryoTemperature(4) << endl; + //cout << "Done!\n" << endl; + + // // Test the isCoolHeadOn() + // cout << "Test isCoolHeadOn() with a reliable communication" << endl; + // cout << "Is the cool head ON? " << (rc.isCoolHeadOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setCoolHeadOn() + // cout << "Test setCoolHeadOn() with a reliable communication" << endl; + // rc.setCoolHeadOn(); + // cout << "Done!\n" << endl; + + // // Test the isCoolHeadOn() + // cout << "Test isCoolHeadOn() with a reliable communication" << endl; + // cout << "Is the cool head ON? " << (rc.isCoolHeadOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setCoolHeadOff() + // cout << "Test setCoolHeadOff() with a reliable communication" << endl; + // rc.setCoolHeadOff(); + // cout << "Done!\n" << endl; + + // // Test the isCoolHeadOn() + // cout << "Test isCoolHeadOn() with a reliable communication" << endl; + // cout << "Is the cool head ON? " << (rc.isCoolHeadOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // Test the turnLeftLNAsOff() + // cout << "Test turnLeftLNAsOff() with a reliable communication" << endl; + // rc.turnLeftLNAsOff(); + // cout << "Done!\n" << endl; + + // sleep(5); + + // Test fetValues() + // cout << "Test fetValues() with a reliable communication" << endl; + // ReceiverControl::FetValues values = rc.fetValues(0, 4, currentConverter, voltageConverter); + // cout << "LNA left values of feed 0, stage 4: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 0, stage 4: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << endl; + // values = rc.fetValues(1, 2, currentConverter); + // cout << "LNA left values of feed 1, stage 2: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 1, stage 2: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << "Done!\n" << endl; + + // sleep(5); + + // // Test the turnLeftLNAsOn() + // cout << "Test turnLeftLNAsOn() with a reliable communication" << endl; + // rc.turnLeftLNAsOn(); + // cout << "Done!\n" << endl; + + // // Test fetValues() + // cout << "Test fetValues() with a reliable communication" << endl; + // values = rc.fetValues(0, 4, currentConverter, voltageConverter); + // cout << "LNA left values of feed 0, stage 4: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 0, stage 4: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << endl; + // values = rc.fetValues(1, 2, currentConverter); + // cout << "LNA left values of feed 1, stage 2: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 1, stage 2: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << "Done!\n" << endl; + + // sleep(3); + + // // // Test stageValues() + // cout << "Test stageValues() with a reliable communication" << endl; + // ReceiverControl::StageValues svalues = rc.stageValues(ReceiverControl::DRAIN_VOLTAGE, 4, voltageConverter); + // cout << "Drain voltages for the stage number 4:\n" << endl; + // cout << "\tLeft channel:\n"; + // std::vector<double>::iterator liter = (svalues.left_channel).begin(); + // std::vector<double>::iterator lend = (svalues.left_channel).end(); + // for(int idx=0; liter != lend; liter++, idx++) + // cout << "Item " << idx << ": " << *liter << endl; + // cout << "\tRight channel:\n"; + // std::vector<double>::iterator riter = (svalues.right_channel).begin(); + // std::vector<double>::iterator rend = (svalues.right_channel).end(); + // for(int idx = 0; riter != rend; riter++, idx++) + // cout << "Item " << idx << ": " << *riter << endl; + // cout << "Done!\n" << endl; + + // // Test the isCalibrationOn() + // cout << "Test isCalibrationOn() with a reliable communication" << endl; + // cout << "Is the noise mark generator ON? " << (rc.isCalibrationOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumSensorOff() + // cout << "Test setVacuumSensorOff() with a reliable communication" << endl; + // rc.setVacuumSensorOff(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumSensorOn() + // cout << "Test isVacuumSensorOn() with a reliable communication" << endl; + // cout << "Is the vacuum sensor ON? " << (rc.isVacuumSensorOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumSensorOn() + // cout << "Test setVacuumSensorOn() with a reliable communication" << endl; + // rc.setVacuumSensorOn(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumSensorOn() + // cout << "Test isVacuumSensorOn() with a reliable communication" << endl; + // cout << "Is the vacuum sensor ON? " << (rc.isVacuumSensorOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumPumpOff() + // cout << "Test setVacuumPumpOff() with a reliable communication" << endl; + // rc.setVacuumPumpOff(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumPumpOn() + // cout << "Test isVacuumPumpOn() with a reliable communication" << endl; + // cout << "Is the vacuum pump ON? " << (rc.isVacuumPumpOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumPumpOn() + // cout << "Test setVacuumPumpOn() with a reliable communication" << endl; + // rc.setVacuumPumpOn(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumPumpOn() + // cout << "Test isVacuumPumpOn() with a reliable communication" << endl; + // cout << "Is the vacuum pump ON? " << (rc.isVacuumPumpOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the hasVacuumPumpFault() + // cout << "Test hasVacuumPumpFault() with a reliable communication" << endl; + // cout << "Has the vacuum pump a fault? " << (rc.hasVacuumPumpFault() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumValveOff() + // cout << "Test setVacuumValveOff() with a reliable communication" << endl; + // rc.setVacuumValveOff(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumValveOn() + // cout << "Test isVacuumValveOn() with a reliable communication" << endl; + // cout << "Is the vacuum valve ON? " << (rc.isVacuumValveOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setVacuumValveOn() + // cout << "Test setVacuumValveOn() with a reliable communication" << endl; + // rc.setVacuumValveOn(); + // cout << "Done!\n" << endl; + + // // Test the isVacuumValveOn() + // cout << "Test isVacuumValveOn() with a reliable communication" << endl; + // cout << "Is the vacuum valve ON? " << (rc.isVacuumValveOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + + // // Test the selectLO1() + // cout << "Test selectLO1() with a reliable communication" << endl; + // rc.selectLO1(); + // cout << "Done!\n" << endl; + + // // Test the isLO1Selected() + // cout << "Test isLO1Selected() with a reliable communication" << endl; + // cout << "Is the LO1 selected? " << (rc.isLO1Selected() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the isLO2Selected() + // cout << "Test isLO2Selected() with a reliable communication" << endl; + // cout << "Is the LO2 selected? " << (rc.isLO2Selected() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the selectLO2() + // cout << "Test selectLO2() with a reliable communication" << endl; + // rc.selectLO2(); + // cout << "Done!\n" << endl; + + // // Test the isLO2Selected() + // cout << "Test isLO2Selected() with a reliable communication" << endl; + // cout << "Is the LO2 selected? " << (rc.isLO2Selected() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the isLO1Selected() + // cout << "Test isLO1Selected() with a reliable communication" << endl; + // cout << "Is the LO1 selected? " << (rc.isLO1Selected() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the isLO2Locked() + // cout << "Test isLO2Locked() with a reliable communication" << endl; + // cout << "Is the LO2 locked? " << (rc.isLO2Locked() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the setSingleDishMode() + // cout << "Test setSingleDishMode() with a reliable communication" << endl; + // rc.setSingleDishMode(); + // cout << "Done!\n" << endl; + + // // Test the isSingleDishModeOn() + // cout << "Test isSingleDishModeOn() with a reliable communication" << endl; + // cout << "Is the single dish mode active? " << (rc.isSingleDishModeOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + // // Test the isVLBIModeOn() + cout << "Test isVLBIModeOn() with a reliable communication" << endl; + cout << "Is the VLBI mode active? " << (rc.isVLBIModeOn() == true ? "yes" : "no") << endl; + cout << "Done!\n" << endl; + + // // Test the setVLBIMode() + cout << "Test setVLBIMode() with a reliable communication" << endl; + rc.setVLBIMode(); + cout << "Done!\n" << endl; + + // Test the isVLBIModeOn() + cout << "Test isVLBIModeOn() with a reliable communication" << endl; + cout << "Is the VLBI mode active? " << (rc.isVLBIModeOn() == true ? "yes" : "no") << endl; + cout << "Done!\n" << endl; + + // // Test the isSingleDishModeOn() + cout << "Test isSingleDishModeOn() with a reliable communication" << endl; + cout << "Is the single dish mode active? " << (rc.isSingleDishModeOn() == true ? "yes" : "no") << endl; + cout << "Done!\n" << endl; + // + // // Test the setSingleDishMode() + cout << "Test setSingleDishMode() with a reliable communication" << endl; + rc.setSingleDishMode(); + cout << "Done!\n" << endl; + + // // Test the isSingleDishModeOn() + cout << "Test isSingleDishModeOn() with a reliable communication" << endl; + cout << "Is the single dish mode active? " << (rc.isSingleDishModeOn() == true ? "yes" : "no") << endl; + cout << "Done!\n" << endl; + + // // Test the isVLBIModeOn() + // cout << "Test isVLBIModeOn() with a reliable communication" << endl; + // cout << "Is the VLBI mode active? " << (rc.isVLBIModeOn() == true ? "yes" : "no") << endl; + // cout << "Done!\n" << endl; + + + + // // Test the isLNABoardConnectionOK() + // cout << "Test isLNABoardConnectionOK() with a reliable communication" << endl; + /* cout << "Is the connection to the LNA board OK? " << \ + (rc.isLNABoardConnectionOK() == true ? "yes" : "no") << endl; */ + // cout << "Done!\n" << endl; + + // // Test the isDewarBoardConnectionOK() + // cout << "Test isDewarBoardConnectionOK() with a reliable communication" << endl; + /* cout << "Is the connection to the dewar board OK? " << \ + (rc.isDewarBoardConnectionOK() == true ? "yes" : "no") << endl;*/ + // cout << "Done!\n" << endl; + + // // Test closeConnection() + // cout << "Test closeConnection() with a reliable communication" << endl; + // rc.closeConnection(); + // cout << "Done!\n" << endl; + + // // Test the isLNABoardConnectionOK() + // cout << "Test isLNABoardConnectionOK() with a reliable communication" << endl; + /* cout << "Is the connection to the LNA board OK? " << \ + (rc.isLNABoardConnectionOK() == true ? "yes" : "no") << endl; */ + // cout << "Done!\n" << endl; + + // // Test the isDewarBoardConnectionOK() + // cout << "Test isDewarBoardConnectionOK() with a reliable communication" << endl; + /* cout << "Is the connection to the dewar board OK? " << \ + (rc.isDewarBoardConnectionOK() == true ? "yes" : "no") << endl;*/ + // cout << "Done!\n" << endl; + + // try { + // // Test the vacuum() voltage value, without conversion + // cout << "Test vacuum()" << endl; + // cout << "Vacuum value before conversion [Volt]: " << rc.vacuum() << endl; + // cout << "Done!\n" << endl; + // } + // catch(ReceiverControlEx& ex) { + // cout << ex.what() << endl; + // } + + // try { + // // Test fetValues() + // cout << "Test fetValues() with a reliable communication" << endl; + // values = rc.fetValues(0, 4, currentConverter, voltageConverter); + // cout << "LNA left values of feed 0, stage 4: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 0, stage 4: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << endl; + // values = rc.fetValues(1, 2, currentConverter); + // cout << "LNA left values of feed 1, stage 2: (VDL=" << values.VDL << ", IDL=" << values.IDL; + // cout << ", VGL=" << values.VGL << ")" << endl; + // cout << "LNA right values of feed 1, stage 2: (VDR=" << values.VDR << ", IDR=" << values.IDR; + // cout << ", VGR=" << values.VGR << ")" << endl; + // cout << "Done!\n" << endl; + // } + // catch(ReceiverControlEx& ex) { + // cout << ex.what() << endl; + // } + + // // Test openConnection() + // cout << "Test openConnection() with a reliable communication" << endl; + // rc.openConnection(); + // cout << "Done!\n" << endl; + + // // Test the cryoTemperature(1) + // cout << "Test cryoTemperature(1) with a reliable communication" << endl; + // cout << "First Cryogenic Temperature value: " << rc.cryoTemperature(1, voltage2Kelvin) << endl; + // cout << "Done!\n" << endl; + + // // Test the vacuum() voltage value, without conversion + // cout << "Test vacuum()" << endl; + // cout << "Vacuum value before conversion [Volt]: " << rc.vacuum() << endl; + // cout << "Done!\n" << endl; + + // // Test the vacuum() + // cout << "Test vacuum() with a reliable communication" << endl; + // cout << "Vacuum value: " << rc.vacuum(voltage2mbar) << endl; + // cout << "Done!\n" << endl; + + // cout << "Test rc.setColdLoadPath() with a reliable communication" << endl; + // rc.setColdLoadPath(); + } + catch(ReceiverControlEx& ex) { + cout << ex.what() << endl; + return 1; + } + + + return 0; +} diff --git a/Common/Libraries/IRALibrary/src/TestReceiverControl.cpp b/Common/Libraries/IRALibrary/src/TestReceiverControl.cpp index 2c902b764..6baff3fce 100644 --- a/Common/Libraries/IRALibrary/src/TestReceiverControl.cpp +++ b/Common/Libraries/IRALibrary/src/TestReceiverControl.cpp @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) "", 0, 0x7C, - 0x01, + 0x7F, 0x7C, 0x7D, 0x7C, diff --git a/Common/Servers/MFKBandBaseReceiver/src/MFKBandBaseCore.cpp b/Common/Servers/MFKBandBaseReceiver/src/MFKBandBaseCore.cpp index 2fe7bd7c0..4a130627a 100644 --- a/Common/Servers/MFKBandBaseReceiver/src/MFKBandBaseCore.cpp +++ b/Common/Servers/MFKBandBaseReceiver/src/MFKBandBaseCore.cpp @@ -170,9 +170,13 @@ void CComponentCore::activate() throw ( m_calDiode=false; guard.release(); - lnaOn(); // Throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) - //externalCalOff(); - + try { + lnaOn(); // Throw (ReceiversErrors::NoRemoteControlErrorExImpl,ReceiversErrors::ReceiverControlBoardErrorExImpl) + //externalCalOff(); + } + catch (ReceiversErrors::ReceiversErrorsExImpl& E) { + ACS_LOG(LM_FULL_INFO,"CComponentCore::activate()",(LM_WARNING,"LNA control board is showing some issues")); + } bool answer; try { answer=m_control->isRemoteOn(); diff --git a/SRT/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml b/SRT/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml new file mode 100644 index 000000000..34e2d4a3e --- /dev/null +++ b/SRT/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - +--> +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="LO_CLOW" + Code="LocalOscillatorImpl.LocalOscillator" + Type="IDL:alma/Receivers/LocalOscillator:1.0" + Container="LocalOscillatorCContainer" + KeepAliveTime="10" + Default="false" + ImplLang="py" +/> diff --git a/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml new file mode 100644 index 000000000..b17f717e8 --- /dev/null +++ b/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - +--> +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="SRT5GHzReceiver" + Code="SRT5GHzImpl" + Type="IDL:alma/Receivers/SRT5GHz:1.0" + Container="SRT5GHzContainer" + KeepAliveTime="-1" + Default="false" + ImplLang="cpp" +/> diff --git a/SRT/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml b/SRT/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml deleted file mode 100644 index 8b0aeea16..000000000 --- a/SRT/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - * Marco Buttu <mbuttu@oa-cagliari.inaf.it> ---> -<Component - xmlns="urn:schemas-cosylab-com:Component:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - - Name="SRTKBandDerotator" - Code="SRTDerotatorSim.SRTDerotatorSimImpl" - Type="IDL:alma/Receivers/SRTKBandDerotator:1.0" - ImplLang="py" - Container="DerotatorContainer" -/> diff --git a/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml b/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml deleted file mode 100644 index 3179cbaf5..000000000 --- a/SRT/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * Author Infos - * ============ - * Name: Marco Buttu ---> -<Container xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - ImplLang="py" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - Recovery="false"> - - <Autoload> - <cdb:e string="baci" /> - </Autoload> - - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> - -</Container> - - - diff --git a/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml b/SRT/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml similarity index 90% rename from SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml rename to SRT/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml index ff357dce1..3ea1b6d4d 100644 --- a/SRT/Configuration/CDB/MACI/Containers/DerotatorContainer/DerotatorContainer.xml +++ b/SRT/CDB/MACI/Containers/SRT5GHzContainer/SRT5GHzContainer.xml @@ -3,16 +3,18 @@ * Author Infos * ============ * Name: Marco Buttu + * E-mail: mbuttu@oa-cagliari.inaf.it + * Personal Web: http://www.pypeople.com/ --> <Container xmlns="urn:schemas-cosylab-com:Container:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - ImplLang="cpp" Timeout="30.0" UseIFR="true" ManagerRetry="10" + ImplLang="cpp" Recovery="false"> <Autoload> diff --git a/SRT/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml b/SRT/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml new file mode 100644 index 000000000..328f4f5e5 --- /dev/null +++ b/SRT/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml @@ -0,0 +1,11 @@ +<LocalOscillatorEthernet xmlns="urn:schemas-cosylab-com:LocalOscillatorEthernet:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IP="127.0.0.1" PORT="12701"> + + + <frequency units="MHz"/> + <amplitude units="dBm"/> + <isLocked/> +</LocalOscillatorEthernet> diff --git a/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml new file mode 100644 index 000000000..0e1d3c572 --- /dev/null +++ b/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -0,0 +1,187 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - 02 - 08 -2011 created Andrea Orlati (a.orlati@ira.inaf.it) +--> + + <SRT5GHzReceiver xmlns="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + DewarIPAddress="127.0.0.1" + DewarPort="12900" + LNAIPAddress="127.0.0.1" + LNAPort="12901" + WatchDogResponseTime="400000" + WatchDogSleepTime="500000" + LNASamplingTime="250000" + RepetitionCacheTime="7000000" + RepetitionExpireTime="10000000" + LocalOscillatorInstance="RECEIVERS/LO_CLOW" +> + <LO description="Sequence of local oscillator values for each IF chain"/> + <feeds description="Number of feeds of the receiver"/> + <IFs description="Number of Intermediate Frequencies chains coming from each feed" /> + <polarization description="Sequence of values that identifies the polarization of each IF chains" /> + <initialFrequency description="Sequence of the start frequencies for each IF chain (MHz)" + units="MHz" + format="%6.2f" + /> + <bandWidth description="Sequence of the band width values for each IF chain (MHz)" + units="MHz" + format="%6.2f" + /> + <mode description="Mnemonic code that defines a special working mode of the receiver (MHz)" /> + <vacuum description="measure of the vacuum" + alarm_high_on="5e-3" + default_value="5.4e-7" + alarm_high_off="5e-6" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="1e-7" + units="mBar" + format="%e" + /> + <status description="Bit fields that provide the status word of the receiver and component" + alarm_mask="777" + alarm_trigger="1" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + /> + <Vd_1 description="drain voltage for IF1 LNA" + alarm_high_on="0.6" + alarm_low_on="0.4" + default_value="0.5" + alarm_high_off="0.55" + alarm_low_off="0.45" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" + /> + <Vd_2 description="drain voltage for IF2 LNA" + alarm_high_on="0.54" + alarm_low_on="0.36" + default_value="0.45" + alarm_high_off="0.495" + alarm_low_off="0.405" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" + /> + <Id_1 description="drain current for IF1 LNA" + alarm_high_on="6.36" + alarm_low_on="4.24" + default_value="5.3" + alarm_high_off="5.83" + alarm_low_off="4.77" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" + /> + <Id_2 description="drain current for IF2 LNA" + alarm_high_on="11.88" + alarm_low_on="7.92" + default_value="9.9" + alarm_high_off="10.89" + alarm_low_off="8.91" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" + /> + <Vg_1 description="gate voltage for IF1 LNA" + alarm_high_on="-1.664" + alarm_low_on="-2.496" + default_value="-2.08" + alarm_high_off="-1.872" + alarm_low_off="-2.288" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" + /> + <Vg_2 description="gate voltage for IF2 LNA" + alarm_high_on="-1.488" + alarm_low_on="-2.232" + default_value="-1.86" + alarm_high_off="-1.624" + alarm_low_off="-2.046" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" + /> + <cryoTemperatureCoolHead description="Cryogenic temperature measured near the cool head" + alarm_high_on="91.0" + alarm_high_off="75.0" + default_value="65.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureCoolHeadWindow description="Cryogenic temperature measured at cool head window" + alarm_high_on="130.0" + alarm_high_off="110.0" + default_value="100.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureLNA description="Cryogenic temperature measured at the LNA" + alarm_high_on="40.0" + alarm_high_off="28.0" + default_value="20.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <cryoTemperatureLNAWindow description="Cryogenic temperature measured at the LNA window" + alarm_high_on="63.0" + alarm_high_off="44.0" + default_value="35.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" + /> + <environmentTemperature description="temperature of the room in which the receiver is installed" + alarm_high_on="35.0" + alarm_high_off="30.0" + default_value="25.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Celsius degree" + format="%4.1f" + /> + <receiverStatus description="Overall status of the receiver"/> +</SRT5GHzReceiver> diff --git a/SRT/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml b/SRT/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml deleted file mode 100644 index c964759ea..000000000 --- a/SRT/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<SRTKBandDerotator - xmlns="urn:schemas-cosylab-com:SRTKBandDerotator:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SensorIP="192.168.200.50" - SensorPort="4002" - SensorTimeout="500000" - SensorZeroReference="661013" - SensorConversionFactor="0.001683884" - IP="192.168.200.50" - Port="4001" - Timeout="500000" - ZeroReference="19.73333" - ConversionFactor="0.0054622" - MaxValue="105.5" - MinValue="-105.5" - Step="60" - TrackingDelta="0.1" - MaxSpeed="3500" - MinSpeed="300" - Speed="3000" - PositionExpireTime="0.010000" -> - <enginePosition - description="Engine position" - units="degree" - graph_min="0" graph_max="360" /> - - <actPosition - description="Sensor actual position" - units="degree" - graph_min="0" graph_max="360" /> - - <cmdPosition - description="Commanded position" - units="degree" - graph_min="0" graph_max="360" /> - - <positionDiff - description="Position difference" - units="degree" - graph_min="0" graph_max="360" /> - - <tracking /> - - <icd_verbose_status description="Derotator ICD Verbose Status" /> - <status description="Derotator status" /> - -</SRTKBandDerotator> diff --git a/SRT/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml b/SRT/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml index 8fed9e44c..4d3e9b896 100644 --- a/SRT/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml +++ b/SRT/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml @@ -17,8 +17,8 @@ monitoringThreadStackSize="4096" DewarIPAddress="127.0.0.1" DewarPort="12902" - LNAIPAddress="127.0.0.1" - LNAPort="12903" + LNAIPAddress="" + LNAPort="0" WatchDogResponseTime="10000000" WatchDogSleepTime="10000000" LNASamplingTime="250000" diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml new file mode 100644 index 000000000..7c8b82341 --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CLOW/LO_CLOW.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - History: + - +--> +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="LO_CLOW" + Code="LocalOscillatorImpl.LocalOscillator" + Type="IDL:alma/Receivers/LocalOscillator:1.0" + Container="LocalOscillatorKContainer" + KeepAliveTime="10" + Default="false" + ImplLang="py" +/> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml deleted file mode 100644 index be31bee19..000000000 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - * Marco Buttu <mbuttu@oa-cagliari.inaf.it> ---> -<Component - xmlns="urn:schemas-cosylab-com:Component:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - - Name="SRTKBandDerotator" - Code="SRTKBandDerotatorImpl" - ImplLang="cpp" - Type="IDL:alma/Receivers/SRTKBandDerotator:1.0" - Container="DerotatorContainer" - Default="true" -/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml b/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml index b098cecce..4f67761f9 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/Boss/Boss.xml @@ -28,7 +28,7 @@ <AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> -<AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/> +<AvailableReceiver Code="KKG" Derotator="false" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml b/SRT/Configuration/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml new file mode 100644 index 000000000..64089db15 --- /dev/null +++ b/SRT/Configuration/CDB/alma/RECEIVERS/LO_CLOW/LO_CLOW.xml @@ -0,0 +1,11 @@ +<LocalOscillatorEthernet xmlns="urn:schemas-cosylab-com:LocalOscillatorEthernet:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IP="192.168.200.118" PORT="5025"> + + + <frequency units="MHz"/> + <amplitude units="dBm"/> + <isLocked/> +</LocalOscillatorEthernet> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml b/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml index 64089db15..d625c04e3 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/LO_KBAND/LO_KBAND.xml @@ -2,7 +2,7 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - IP="192.168.200.118" PORT="5025"> + IP="192.168.200.119" PORT="5025"> <frequency units="MHz"/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index 9fa31b2ee..0ba1c50cc 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -17,7 +17,7 @@ LNASamplingTime="250000" RepetitionCacheTime="7000000" RepetitionExpireTime="10000000" - LocalOscillatorInstance="RECEIVERS/LO_KBAND" + LocalOscillatorInstance="RECEIVERS/LO_CLOW" > <LO description="Sequence of local oscillator values for each IF chain"/> <feeds description="Number of feeds of the receiver"/> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml b/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml deleted file mode 100644 index 4286fcc68..000000000 --- a/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandDerotator/SRTKBandDerotator.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<SRTKBandDerotator - xmlns="urn:schemas-cosylab-com:SRTKBandDerotator:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - SensorIP="192.168.200.50" - SensorPort="4002" - SensorTimeout="500000" - SensorZeroReference="661013" - SensorConversionFactor="0.001683884" - IP="192.168.200.50" - Port="4001" - Timeout="500000" - ZeroReference="19.73333" - ConversionFactor="0.0054622" - MaxValue="105.5" - MinValue="-105.5" - Step="60" - TrackingDelta="0.1" - MaxSpeed="3500" - MinSpeed="300" - Speed="3000" - PositionExpireTime="0.010000" -> - <enginePosition - description="Engine position" - units="degree" - graph_min="0" graph_max="360" /> - - <actPosition - description="Sensor actual position" - units="degree" - graph_min="0" graph_max="360" /> - - <cmdPosition - description="Commanded position" - units="degree" - graph_min="0" graph_max="360" /> - - <positionDiff - description="Position difference" - units="degree" - graph_min="0" graph_max="360" /> - - <tracking /> - - <icd_verbose_status description="Derotator ICD Verbose Status" /> - <status description="Derotator status" /> - -</SRTKBandDerotator> diff --git a/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml b/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml index fe148b119..bc61c671e 100644 --- a/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml +++ b/SRT/Configuration/CDB/alma/RECEIVERS/SRTKBandMFReceiver/SRTKBandMFReceiver.xml @@ -15,10 +15,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" actionThreadStackSize="2048" monitoringThreadStackSize="4096" - DewarIPAddress="192.168.200.131" + DewarIPAddress="192.168.200.110" DewarPort="5002" - LNAIPAddress="192.168.200.130" - LNAPort="5002" + LNAIPAddress="" + LNAPort="0" WatchDogResponseTime="10000000" WatchDogSleepTime="10000000" LNASamplingTime="250000" diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml index 0b0581971..fe407ec9b 100644 --- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml @@ -46,15 +46,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>DerotatorContainer</name> - <type>cpp</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>DerotatorPositionerContainer</name> <type>py</type> diff --git a/SRT/Servers/SRTKBandMFReceiver/include/DevIOLNAControls.h b/SRT/Servers/SRTKBandMFReceiver/include/DevIOLNAControls.h index c5b562a86..2ae867eed 100644 --- a/SRT/Servers/SRTKBandMFReceiver/include/DevIOLNAControls.h +++ b/SRT/Servers/SRTKBandMFReceiver/include/DevIOLNAControls.h @@ -61,8 +61,10 @@ public: */ ACS::doubleSeq read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) { - // In pCore I need a method to get the vector of values (An extension, so I can ereditate from ComponentCore) - m_val=m_pCore->getStageValues(m_control, m_ifs, m_stage); + // In pCore I need a method to get the vector of values (An extension, so I can ereditate from ComponentCore) + /* commented out in order to cope with the LNA control board substitution */ + // under this configuration the default value should be used so no alarms are triggered + //m_val=m_pCore->getStageValues(m_control, m_ifs, m_stage); timestamp=getTimeStamp(); // Completion time return m_val; } @@ -71,6 +73,7 @@ public: */ void write(const ACS::doubleSeq& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) { + m_val=value; timestamp=getTimeStamp(); return; } diff --git a/SRT/Servers/SRTKBandMFReceiver/src/Makefile b/SRT/Servers/SRTKBandMFReceiver/src/Makefile index 3608dc455..ca0ed1f42 100644 --- a/SRT/Servers/SRTKBandMFReceiver/src/Makefile +++ b/SRT/Servers/SRTKBandMFReceiver/src/Makefile @@ -56,7 +56,9 @@ INCLUDES = # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTKBandMFReceiverImpl SRTKBandDerotatorImpl +# KBand Derotator decomissioned +#LIBRARIES = SRTKBandMFReceiverImpl SRTKBandDerotatorImpl +LIBRARIES = SRTKBandMFReceiverImpl LIBRARIES_L = # @@ -66,9 +68,10 @@ SRTKBandMFReceiverImpl_LIBS = IRALibrary ComponentErrors ManagementErrors Receiv GenericReceiverStubs SRTKBandMFStubs MFKBandCore\ LocalOscillatorInterfaceStubs ReceiversDefinitionsStubs ManagmentDefinitionsStubs -SRTKBandDerotatorImpl_OBJECTS = SRTKBandDerotatorImpl sensorSocket icdSocket StatusUpdater -SRTKBandDerotatorImpl_LIBS = GenericDerotatorStubs SRTKBandDerotatorStubs IRALibrary ComponentErrors DerotatorErrors \ - ManagmentDefinitionsStubs ManagementErrors MFKBandCore +# KBand Derotator decomissioned +#SRTKBandDerotatorImpl_OBJECTS = SRTKBandDerotatorImpl sensorSocket icdSocket StatusUpdater +#SRTKBandDerotatorImpl_LIBS = GenericDerotatorStubs SRTKBandDerotatorStubs IRALibrary ComponentErrors DerotatorErrors \ +# ManagmentDefinitionsStubs ManagementErrors MFKBandCore # # Scripts (public and local) @@ -114,7 +117,9 @@ tttlll_OBJECTS = # # Configuration Database Files # ---------------------------- -CDB_SCHEMAS = SRTKBandMFReceiver SRTKBandDerotator +# KBand Derotator decomissioned +# CDB_SCHEMAS = SRTKBandMFReceiver SRTKBandDerotator +CDB_SCHEMAS = SRTKBandMFReceiver # # IDL Files and flags diff --git a/SRT/Servers/SRTKBandMFReceiver/src/MonitorThread.cpp b/SRT/Servers/SRTKBandMFReceiver/src/MonitorThread.cpp index 7ad8c6924..14e5ef2be 100644 --- a/SRT/Servers/SRTKBandMFReceiver/src/MonitorThread.cpp +++ b/SRT/Servers/SRTKBandMFReceiver/src/MonitorThread.cpp @@ -71,7 +71,8 @@ void CMonitorThread::onStart() } case LNA_VD: { try { - m_core->updateVdLNAControls(); + // commented out in order to cope with the LNA control board substitution + //m_core->updateVdLNAControls(); } catch (ACSErr::ACSbaseExImpl& ex) { _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl, impl, ex, "CMonitorThread::runLoop"); @@ -82,7 +83,8 @@ void CMonitorThread::onStart() } case LNA_ID: { try { - m_core->updateIdLNAControls(); + // commented out in order to cope with the LNA control board substitution + //m_core->updateIdLNAControls(); } catch (ACSErr::ACSbaseExImpl& ex) { _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl, impl, ex, "CMonitorThread::runLoop"); @@ -93,7 +95,8 @@ void CMonitorThread::onStart() } case LNA_VG: { try { - m_core->updateVgLNAControls(); + // commented out in order to cope with the LNA control board substitution + //m_core->updateVgLNAControls(); } catch (ACSErr::ACSbaseExImpl& ex) { _ADD_BACKTRACE(ComponentErrors::WatchDogErrorExImpl, impl, ex, "CMonitorThread::runLoop"); diff --git a/SRT/Servers/SRTKBandMFReceiver/src/SRTKBandMFReceiverImpl.cpp b/SRT/Servers/SRTKBandMFReceiver/src/SRTKBandMFReceiverImpl.cpp index 9e72ae665..12899fe1b 100644 --- a/SRT/Servers/SRTKBandMFReceiver/src/SRTKBandMFReceiverImpl.cpp +++ b/SRT/Servers/SRTKBandMFReceiver/src/SRTKBandMFReceiverImpl.cpp @@ -531,8 +531,6 @@ void SRTKBandMFReceiverImpl::getIFOutput( } - - CORBA::Long SRTKBandMFReceiverImpl::getFeeds( ACS::doubleSeq_out X, ACS::doubleSeq_out Y, @@ -612,7 +610,8 @@ void SRTKBandMFReceiverImpl::turnLNAsOn() throw ( ) { try { - m_core.lnaOn(); + // commented out in order to cope with the LNA control board substitution + //m_core.lnaOn(); } catch (ComponentErrors::ComponentErrorsExImpl& ex) { ex.log(LM_DEBUG); @@ -637,7 +636,8 @@ void SRTKBandMFReceiverImpl::turnLNAsOff() throw ( ) { try { - m_core.lnaOff(); + // commented out in order to cope with the LNA control board substitution + //m_core.lnaOff(); } catch (ComponentErrors::ComponentErrorsExImpl& ex) { ex.log(LM_DEBUG); -- GitLab From 0e108ea5d15fd1f78e0df689e77c31c5c1ec9c5f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 12 Feb 2024 19:25:24 +0100 Subject: [PATCH 059/150] Updated SRT test CDB --- SRT/CDB/alma/RECEIVERS/Boss/Boss.xml | 2 +- .../SRTScripts/app-defaults/simulationStartup.xml | 11 +---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml b/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml index b098cecce..4f67761f9 100644 --- a/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml +++ b/SRT/CDB/alma/RECEIVERS/Boss/Boss.xml @@ -28,7 +28,7 @@ <AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> -<AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/> +<AvailableReceiver Code="KKG" Derotator="false" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> diff --git a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml index 2fb1a7429..3a6e4fd0b 100644 --- a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>35</select> + <select>34</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -46,15 +46,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>DerotatorContainer</name> - <type>py</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>DerotatorPositionerContainer</name> <type>py</type> -- GitLab From 833b087cc83302979c8537579240f36b8eb0ac79 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 01:02:15 +0000 Subject: [PATCH 060/150] Commented new SRT minor servo files. Commented pretty much every file. I will perform some more tests with the simulators before tweaking the system to be used with the current Leonardo minor servo system status. --- .../idl/SRTMinorServo.idl | 11 +- .../include/SRTMinorServoAnswerMap.h | 2 +- SRT/Servers/SRTMinorServo/include/Common.h | 73 - SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 743 +++++---- .../include/SRTMinorServoBossCore.h | 374 ++++- .../include/SRTMinorServoBossImpl.h | 510 +++++- .../include/SRTMinorServoCommon.h | 110 ++ .../include/SRTMinorServoContainers.h | 328 ++++ .../SRTMinorServo/include/SRTMinorServoImpl.h | 750 +++++++-- .../include/SRTMinorServoParkThread.h | 60 +- .../include/SRTMinorServoScanThread.h | 96 ++ .../include/SRTMinorServoSetupThread.h | 71 +- .../include/SRTMinorServoSocket.h | 147 -- .../include/SRTMinorServoStatusThread.h | 71 +- .../include/SRTMinorServoTrackingThread.h | 87 +- .../SRTMinorServo/include/SuppressWarnings.h | 11 +- SRT/Servers/SRTMinorServo/src/Makefile | 44 +- .../src/SRTBaseMinorServoImpl.cpp | 871 +++++++---- .../src/SRTGenericMinorServoImpl.cpp | 2 - .../src/SRTMinorServoBossCore.cpp | 1365 +++++++++++++---- .../src/SRTMinorServoBossImpl.cpp | 446 ++---- .../src/SRTMinorServoParkThread.cpp | 57 +- .../src/SRTMinorServoScanThread.cpp | 247 +++ .../src/SRTMinorServoSetupThread.cpp | 193 ++- .../SRTMinorServo/src/SRTMinorServoSocket.cpp | 192 --- .../src/SRTMinorServoStatusThread.cpp | 82 +- .../src/SRTMinorServoTrackingThread.cpp | 144 +- .../src/SRTProgramTrackMinorServoImpl.cpp | 145 +- 28 files changed, 5081 insertions(+), 2151 deletions(-) delete mode 100644 SRT/Servers/SRTMinorServo/include/Common.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h delete mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp delete mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 844677d91..fecbb9d28 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -94,27 +94,28 @@ module MinorServo /** * This method asks the PLC the status for the corresponding servo + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware * @return true if the servo is not in an error state, false otherwise */ - boolean status(); + boolean status() raises (MinorServoErrors::MinorServoErrorsEx); /** * This method commands a STOW operation to the servo * @param stow_position the index of the position we want the servo to stow to - * @throw MinorServo::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted */ void stow(in long stow_position) raises (MinorServoErrors::MinorServoErrorsEx); /** * This method commands a STOP operation to the servo - * @throw MinorServo::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted */ void stop() raises (MinorServoErrors::MinorServoErrorsEx); /** * This method commands a PRESET operation to the servo * @param coordinates, a sequence of double - * @throw MinorServo::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, * if the resulting position summing the offsets would go outside the accepted range of the servo, * if there has been a communication error or if the command was not accepted */ @@ -130,7 +131,7 @@ module MinorServo /** * This method calculates the servo coordinates for a given elevation * @param elevation the elevation to use for the coordinates calculation, expressed in degrees - * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculalation + * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculation * @return the calculated coordinates as a sequence of doubles */ ACS::doubleSeq calcCoordinates(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx); diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h index c196676ee..4c111db94 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h @@ -11,7 +11,7 @@ namespace MinorServo { - class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> + class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> { /** * This class privately extends the type std::map<std::string, std::variant<long, double, std::string>>. diff --git a/SRT/Servers/SRTMinorServo/include/Common.h b/SRT/Servers/SRTMinorServo/include/Common.h deleted file mode 100644 index 6453273e9..000000000 --- a/SRT/Servers/SRTMinorServo/include/Common.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef __SRTMINORSERVOCOMMON_H__ -#define __SRTMINORSERVOCOMMON_H__ - -#include "SuppressWarnings.h" -#include <SRTMinorServoCommonS.h> -#include <boost/bimap.hpp> -#include <boost/assign.hpp> - - -namespace MinorServo -{ - // The second value of the pair indicates whether the configuration has a ASACTIVE double configuration - using DiscosConfigurationNameTableType = std::map<std::string, std::pair<MinorServo::SRTMinorServoFocalConfiguration, bool> >; - const DiscosConfigurationNameTableType DiscosConfigurationNameTable = - { - {"LLP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, - {"PPP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, - {"PLP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, - {"HHP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, - {"XKP", std::make_pair(MinorServo::CONFIGURATION_PRIMARY, false)}, - {"CCG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN1, true )}, - {"KKG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN2, true )}, - {"WWG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN3, true )}, - {"QQG", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN4, true )}, - {"TRI", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN5, true )}, - {"MISTRAL", std::make_pair(MinorServo::CONFIGURATION_GREGORIAN6, true )}, - {"CCB", std::make_pair(MinorServo::CONFIGURATION_BWG1, true )}, - {"XB", std::make_pair(MinorServo::CONFIGURATION_BWG3, true )}, - }; - - using LDOConfigurationNameTableType = boost::bimap<MinorServo::SRTMinorServoFocalConfiguration, std::string>; - const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of< LDOConfigurationNameTableType::relation > - (MinorServo::CONFIGURATION_PRIMARY, "Primario") - (MinorServo::CONFIGURATION_GREGORIAN1, "Gregoriano 1") - (MinorServo::CONFIGURATION_GREGORIAN2, "Gregoriano 2") - (MinorServo::CONFIGURATION_GREGORIAN3, "Gregoriano 3") - (MinorServo::CONFIGURATION_GREGORIAN4, "Gregoriano 4") - (MinorServo::CONFIGURATION_GREGORIAN5, "Gregoriano 5") - (MinorServo::CONFIGURATION_GREGORIAN6, "Gregoriano 6") - (MinorServo::CONFIGURATION_GREGORIAN7, "Gregoriano 7") - (MinorServo::CONFIGURATION_GREGORIAN8, "Gregoriano 8") - (MinorServo::CONFIGURATION_BWG1, "BWG1") - (MinorServo::CONFIGURATION_BWG2, "BWG2") - (MinorServo::CONFIGURATION_BWG3, "BWG3") - (MinorServo::CONFIGURATION_BWG4, "BWG4"); - - using LDOConfigurationIDTableType = boost::bimap<MinorServo::SRTMinorServoFocalConfiguration, unsigned int>; - const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of< LDOConfigurationIDTableType::relation > - (MinorServo::CONFIGURATION_UNKNOWN, 0) - (MinorServo::CONFIGURATION_PRIMARY, 1) - (MinorServo::CONFIGURATION_GREGORIAN1, 11) - (MinorServo::CONFIGURATION_GREGORIAN2, 12) - (MinorServo::CONFIGURATION_GREGORIAN3, 13) - (MinorServo::CONFIGURATION_GREGORIAN4, 14) - (MinorServo::CONFIGURATION_GREGORIAN5, 15) - (MinorServo::CONFIGURATION_GREGORIAN6, 16) - (MinorServo::CONFIGURATION_GREGORIAN7, 17) - (MinorServo::CONFIGURATION_GREGORIAN8, 18) - (MinorServo::CONFIGURATION_BWG1, 21) - (MinorServo::CONFIGURATION_BWG2, 22) - (MinorServo::CONFIGURATION_BWG3, 23) - (MinorServo::CONFIGURATION_BWG4, 24); - - const std::vector<std::string> ServoOrder = - { - "PFP", - "SRP", - "GFR", - "M3R", - }; -} - -#endif diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index 4f6be5359..a554c6357 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -1,371 +1,520 @@ #ifndef _MSDEVIOS_H #define _MSDEVIOS_H -/**********************************************************/ -/* Giuseppe Carboni <giuseppe.carboni@inaf.it> 20/09/2023 */ -/**********************************************************/ +/** + * MSDevIO.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ -#include "Common.h" +#include "SRTMinorServoCommon.h" #include <type_traits> #include <baciDevIO.h> -#include <IRA> -#include <AntennaErrors.h> #include <ComponentErrors.h> #include <SRTMinorServoCommonS.h> -#include "SRTMinorServoCommandLibrary.h" +#include "SRTMinorServoAnswerMap.h" -struct SRTMinorServoDevIOInfo -{ - IRA::CSecureArea<SRTMinorServoAnswerMap>* secure_area; - std::string prefix = ""; - std::string property_name; - std::vector<std::string> property_fields; -}; - - -/** - * This template class is derived from DevIO and it is used by the almost all attributes of the SRT Minor Servos components. - * The associeted property can be selected at construction time and cannot be changed anymore. - * @author Giuseppe Carboni <giuseppe.carboni@inaf.it>, - */ -template <class T> class MSDevIO : public DevIO<T> +namespace MinorServo { -public: /** - * Constructor - * @param data pointer to a SecureArea that protects a SRTMinorServoAnswerMap object. - * @param property_info an std::pair containing the name of the property as shown in the Object Explorer and the fields to read from the SRTMinorServoAnswerMap - */ - MSDevIO(SRTMinorServoDevIOInfo property_info) + * This class acts as a base class for all the SRTMinorServo DevIOs. + */ + template <class T> class MSBaseDevIO : public DevIO<T> { - // The following expression will produce an error at compile time if the T class type is not one of the following - static_assert( - std::disjunction< - std::is_same<T, Management::TBoolean>, - std::is_same<T, CORBA::Double>, - std::is_same<T, ACE_CString>, - std::is_same<T, ACS::booleanSeq>, - std::is_same<T, ACS::doubleSeq>, - std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>, - std::is_same<T, MinorServo::SRTMinorServoControlStatus>, - std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>, - std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>, - std::is_same<T, MinorServo::SRTMinorServoOperativeMode> - >::value, - "Not accepted MSDevIO type!" - ); - - m_secure_area = property_info.secure_area; - m_prefix = property_info.prefix; - m_property_name = property_info.property_name; - m_property_fields = property_info.property_fields; - } + public: + /** + * Destructor. + */ + ~MSBaseDevIO() + { + } - /** - * Destructor - */ - ~MSDevIO() - { - } + /** + * Used to read the property value. + * This is pure virtual and has to be implemented in the derived DevIOs. + * @throw ComponentErrors::PropertyError. + * @param timestamp epoch when the operation completes. + */ + virtual T read(ACS::Time& timestamp); + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + return false; + } - /** - * @return true to initialize the property with default value from CDB. - */ - bool initializeValue() - { - return false; - } + /** + * It writes values into controller. Unused because all the properties are read-only. + */ + void write(const T& value, ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + return; + } + }; /** - * Used to read the property value. - * @throw ComponentErrors::PropertyError - * @param timestamp epoch when the operation completes - */ - T read(ACS::Time& timestamp) + * This class is used to read the status of the motion of the minor servo system. + */ + class MSMotionInfoDevIO : public MSBaseDevIO<ACE_CString> { - try + public: + /** + * Constructor. + * @param motion_status the atomic status of the motion of the minor servo system. + * @param answer_map the SRTMinorServoAnswerMap containing the status of the system. It is used to read the position of the gregorian cover. + */ + MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoAnswerMap& answer_map) : m_motion_status(motion_status), m_answer_map(answer_map) {} + + /** + * Returns the property value. + * @param timestamp epoch when the operation completes. + * @return a string containing the information about the motion status of the minor servo system. + */ + ACE_CString read(ACS::Time& timestamp) { - if(m_secure_area) - { - IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> data = m_secure_area->Get(); + std::string motion_status; + SRTMinorServoAnswerMap answer_map = m_answer_map; - try + switch(m_motion_status.load()) + { + case MOTION_STATUS_UNCONFIGURED: { - if constexpr(std::is_same<T, Management::TBoolean>::value) - { - unsigned int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); - m_value = (value == 1) ? Management::MNG_TRUE : Management::MNG_FALSE; - } - else if constexpr(std::is_same<T, CORBA::Double>::value) + motion_status = "Unknown"; + break; + } + case MOTION_STATUS_STARTING: + { + motion_status = "Setup in progress..."; + break; + } + case MOTION_STATUS_CONFIGURED: + { + motion_status = "Elevation Track Mode Disabled"; + break; + } + case MOTION_STATUS_TRACKING: + { + motion_status = "Elevation Track Mode"; + break; + } + case MOTION_STATUS_PARKING: + { + motion_status = "Parking..."; + break; + } + case MOTION_STATUS_PARKED: + { + motion_status = "Parked"; + + try { - auto object = data->at(m_prefix + m_property_fields[0]); - if(object.index() == 0) + // If I can read the status of the gregorian cover I will notify the user about it on the GUI + SRTMinorServoGregorianCoverStatus cover_status = SRTMinorServoGregorianCoverStatus(answer_map.get<unsigned int>("GREGORIAN_CAP")); + + if(cover_status == COVER_STATUS_OPEN) { - m_value = double(std::get<long>(object)); + motion_status += ", gregorian cover open"; } - else if(object.index() == 1) + else if(cover_status == COVER_STATUS_CLOSED) { - m_value = std::get<double>(object); + motion_status += ", gregorian cover closed"; } } - else if constexpr(std::is_same<T, ACE_CString>::value) + catch(...) { - auto object = data->at(m_prefix + m_property_fields[0]); - if(object.index() == 0) + // If I can't, it doesn't matter + } + + break; + } + case MOTION_STATUS_ERROR: + { + motion_status = "Error"; + break; + } + } + + return motion_status.c_str(); + } + private: + /** + * Reference to the motion status object of the Boss. + */ + const std::atomic<SRTMinorServoMotionStatus>& m_motion_status; + + /** + * Reference to the SRTMinorServoAnswerMap object of the Boss. + */ + const SRTMinorServoAnswerMap& m_answer_map; + }; + + /** + * This class is used to read the virtual positions of a minor servo system. It is specialized this way in order to sum the plain virtual positions and the offsets. + */ + class MSVirtualPositionsDevIO : public MSBaseDevIO<ACS::doubleSeq> + { + public: + /** + * Constructor. + * @param servo_name the name of the minor servo system the property belongs to. + * @param virtual_positions_fields the name of the virtual positions fields inside the SRTMinorServoAnswerMap object. + * @param virtual_offsets_fields the name of the virtual offsets fields inside the SRTMinorServoAnswerMap object. + * @param answer_map the SRTMinorServoAnswerMap object containing the status of the minor servo system. + */ + MSVirtualPositionsDevIO(const std::string& servo_name, std::vector<std::string> virtual_positions_fields, std::vector<std::string> virtual_offsets_fields, const SRTMinorServoAnswerMap& answer_map) : + m_virtual_positions_fields([&]() + { + std::transform(virtual_positions_fields.begin(), virtual_positions_fields.end(), virtual_positions_fields.begin(), [servo_name](const std::string& field) + { + return servo_name + "_" + field; + }); + return virtual_positions_fields; + }()), + m_virtual_offsets_fields([&]() + { + std::transform(virtual_offsets_fields.begin(), virtual_offsets_fields.end(), virtual_offsets_fields.begin(), [servo_name](const std::string& field) + { + return servo_name + "_" + field; + }); + return virtual_offsets_fields; + }()), + m_answer_map(answer_map) + { + } + + /** + * Returns the property value. + * @param timestamp epoch when the operation completes. + * @return a sequence of double containing the virtual positions taking the virtual offsets into account. + */ + ACS::doubleSeq read(ACS::Time& timestamp) + { + SRTMinorServoAnswerMap answer_map = m_answer_map; + + ACS::doubleSeq sequence; + + try + { + sequence.length(m_virtual_positions_fields.size()); + + for(size_t i = 0; i < m_virtual_positions_fields.size(); i++) + { + sequence[i] = answer_map.get<double>(m_virtual_positions_fields[i]) - answer_map.get<double>(m_virtual_offsets_fields[i]); + } + } + catch(std::out_of_range& ex) + { + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSVirtualPositionsDevIO::read()"); + impl.setPropertyName("virtual_positions"); + impl.setReason("Property is missing from the map!"); + throw impl; + } + catch(std::bad_variant_access& ex) + { + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSVirtualPositionsDevIO::read()"); + impl.setPropertyName("virtual_positions"); + impl.setReason("Attempt to access the property with the wrong variant type!"); + throw impl; + } + catch(ACSErr::ACSbaseExImpl& ex) + { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSVirtualPositionsDevIO::read()"); + impl.setPropertyName("virtual_positions"); + impl.setReason("Property could not be read!"); + throw impl; + } + + timestamp = getTimeStamp(); //completion time + return sequence; + } + + private: + /** + * The virtual positions fields names. + */ + const std::vector<std::string> m_virtual_positions_fields; + + /** + * The virtual offsets fields names. + */ + const std::vector<std::string> m_virtual_offsets_fields; + + /** + * The SRTMinorServoAnswerMap containing the status of the minor servo system. + */ + const SRTMinorServoAnswerMap& m_answer_map; + }; + + /** + * This template class is used to retrieve values from a SRTMinorServoAnswerMap and provide them as properties. + * The templates is specialized for the types listed right below and compilation will fail if the developer attempts to use it for an unknown MSDevIO type. + */ + template <typename T, typename = std::enable_if<is_any_v<T, + Management::TBoolean, + CORBA::Double, + ACE_CString, + ACS::booleanSeq, + ACS::doubleSeq, + SRTMinorServoFocalConfiguration, + SRTMinorServoControlStatus, + SRTMinorServoGregorianCoverStatus, + SRTMinorServoCabinetStatus, + SRTMinorServoOperativeMode + >>> + class MSAnswerMapDevIO : public MSBaseDevIO<T> + { + public: + /** + * Single property-field, no servo-name constructor. + * @param property_name the name of the property, used when raising exceptions. + * @param property_field the field name of the property as it appears inside the SRTMinorServoAnswerMap. + * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. + */ + MSAnswerMapDevIO(const std::string& property_name, const std::string& property_field, const SRTMinorServoAnswerMap& answer_map) : + MSAnswerMapDevIO(property_name, std::vector<std::string>{ property_field }, answer_map) {} + + /** + * Multiple property-fields, no servo-name constructor. + * @param property_name the name of the property, used when raising exceptions. + * @param property_fields the field names of the property as they appear inside the SRTMinorServoAnswerMap. + * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. + */ + MSAnswerMapDevIO(const std::string& property_name, const std::vector<std::string>& property_fields, const SRTMinorServoAnswerMap& answer_map) : + m_property_name(property_name), + m_property_fields(property_fields), + m_answer_map(answer_map) {} + + /** + * Single property-field, with servo-name constructor. + * @param servo_name the name of the minor servo system the property belongs to. Used as prefix for the property_field argument. + * @param property_name the name of the property, used when raising exceptions. + * @param property_field the field name of the property as it appears inside the SRTMinorServoAnswerMap. + * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. + */ + MSAnswerMapDevIO(const std::string& servo_name, const std::string& property_name, const std::string& property_field, const SRTMinorServoAnswerMap& answer_map) : + MSAnswerMapDevIO(servo_name, property_name, std::vector<std::string>{ property_field }, answer_map) {} + + /** + * Multiple property-fields, with servo-name constructor. + * @param servo_name the name of the minor servo system the property belongs to. Used as prefix for the property_fields argument. + * @param property_name the name of the property, used when raising exceptions. + * @param property_fields the field names of the property as they appear inside the SRTMinorServoAnswerMap. + * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. + */ + MSAnswerMapDevIO(const std::string& servo_name, const std::string& property_name, std::vector<std::string> property_fields, const SRTMinorServoAnswerMap& answer_map) : + m_property_name(property_name), + m_property_fields([&]() + { + std::transform(property_fields.begin(), property_fields.end(), property_fields.begin(), [servo_name](const std::string& field) + { + return servo_name + "_" + field; + }); + return property_fields; + }()), + m_answer_map(answer_map) {} + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes. + * @throw ComponentErrors::PropertyError. + * @return the property value as read from the SRTMinorServoAnswerMap object reference. + */ + T read(ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + + // Copy the answer map by value. This will ensure all the elements for any sequence belong to the same reading from PLC. + SRTMinorServoAnswerMap answer_map = m_answer_map; + + try + { + if constexpr(std::is_same_v<T, Management::TBoolean>) + { + return (answer_map.get<unsigned int>(m_property_fields[0]) == 1) ? Management::MNG_TRUE : Management::MNG_FALSE; + } + else if constexpr(std::is_same_v<T, CORBA::Double>) + { + unsigned int index = answer_map.index(m_property_fields[0]); + + switch(index) + { + case 0: { - m_value = std::to_string(std::get<long>(object)).c_str(); + return (double)answer_map.get<long>(m_property_fields[0]); } - else if(object.index() == 1) + case 1: { - m_value = std::to_string(std::get<double>(object)).c_str(); + return answer_map.get<double>(m_property_fields[0]); } - else + default: { - m_value = std::get<std::string>(object).c_str(); + throw std::bad_variant_access(); } } - else if constexpr(std::is_same<T, ACS::booleanSeq>::value) - { - m_value.length(m_property_fields.size()); + } + else if constexpr(std::is_same_v<T, ACE_CString>) + { + unsigned int index = answer_map.index(m_property_fields[0]); - for(size_t i = 0; i < m_property_fields.size(); i++) + switch(index) + { + case 0: { - m_value[i] = std::get<long>(data->at(m_prefix + m_property_fields[i])); + return std::to_string(answer_map.get<long>(m_property_fields[0])).c_str(); } - } - else if constexpr(std::is_same<T, ACS::doubleSeq>::value) - { - m_value.length(m_property_fields.size()); - - for(size_t i = 0; i < m_property_fields.size(); i++) + case 1: { - m_value[i] = std::get<double>(data->at(m_prefix + m_property_fields[i])); + return std::to_string(answer_map.get<double>(m_property_fields[0])).c_str(); + } + default: + { + return answer_map.get<std::string>(m_property_fields[0]).c_str(); } } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoFocalConfiguration>::value) - { - int value = std::get<long>(data->at(m_prefix + m_property_fields[0])); - m_value = MinorServo::LDOConfigurationIDTable.right.at(value); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoControlStatus>::value) - { - m_value = MinorServo::SRTMinorServoControlStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoGregorianCoverStatus>::value) - { - m_value = MinorServo::SRTMinorServoGregorianCoverStatus(std::get<long>(data->at(m_prefix + m_property_fields[0]))); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoCabinetStatus>::value) - { - m_value = MinorServo::SRTMinorServoCabinetStatus(std::get<long>(data->at(m_prefix + m_property_fields[0])) - 1); - } - else if constexpr(std::is_same<T, MinorServo::SRTMinorServoOperativeMode>::value) + } + else if constexpr(std::is_same_v<T, ACS::booleanSeq>) + { + ACS::booleanSeq value; + value.length(m_property_fields.size()); + + for(size_t i = 0; i < m_property_fields.size(); i++) { - m_value = MinorServo::SRTMinorServoOperativeMode(std::get<long>(data->at(m_prefix + m_property_fields[0])) / 10); + value[i] = answer_map.get<long>(m_property_fields[i]); } - else + return value; + } + else if constexpr(std::is_same_v<T, ACS::doubleSeq>) + { + ACS::doubleSeq value; + value.length(m_property_fields.size()); + + for(size_t i = 0; i < m_property_fields.size(); i++) { - // This should never happen thanks to the static_assert in the constructor - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); - impl.setPropertyName(m_property_name.c_str()); - impl.setReason("Unknown property type!"); - throw impl; + value[i] = answer_map.get<double>(m_property_fields[i]); } + return value; } - catch(std::out_of_range& ex) + else if constexpr(std::is_same_v<T, SRTMinorServoFocalConfiguration>) { - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); - impl.setPropertyName(m_property_name.c_str()); - impl.setReason("Property is missing from the map!"); + return LDOConfigurationIDTable.right.at(answer_map.get<int>(m_property_fields[0])); } - catch(std::bad_variant_access& ex) + else if constexpr(std::is_same_v<T, SRTMinorServoControlStatus>) { - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); - impl.setPropertyName(m_property_name.c_str()); - impl.setReason("Attempt to access the property with the wrong type!"); + return SRTMinorServoControlStatus(answer_map.get<unsigned int>(m_property_fields[0]) - 1); + } + else if constexpr(std::is_same_v<T, SRTMinorServoGregorianCoverStatus>) + { + return SRTMinorServoGregorianCoverStatus(answer_map.get<unsigned int>(m_property_fields[0])); + } + else if constexpr(std::is_same_v<T, SRTMinorServoCabinetStatus>) + { + return SRTMinorServoCabinetStatus(answer_map.get<unsigned int>(m_property_fields[0]) - 1); + } + else if constexpr(std::is_same_v<T, SRTMinorServoOperativeMode>) + { + return SRTMinorServoOperativeMode(answer_map.get<unsigned int>(m_property_fields[0]) / 10); } } - else + catch(std::out_of_range& ex) { - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSDevIO::read()"); + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSAnswerMapDevIO::read()"); impl.setPropertyName(m_property_name.c_str()); - impl.setReason("SecureArea not ready!"); + impl.setReason("Property is missing from the map!"); + throw impl; + } + catch(std::bad_variant_access& ex) + { + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSAnswerMapDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Attempt to access the property with the wrong variant type!"); + throw impl; + } + catch(ACSErr::ACSbaseExImpl& ex) + { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSAnswerMapDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Property could not be read!"); throw impl; } } - catch(ACSErr::ACSbaseExImpl& ex) - { - _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSDevIO::read()"); - impl.setPropertyName(m_property_name.c_str()); - impl.setReason("Property could not be read!"); - throw impl; - } - - timestamp = getTimeStamp(); //completion time - return m_value; - } - - /** - * It writes values into controller. Unused because the properties are read-only. - */ - void write(const T& value, ACS::Time& timestamp) - { - timestamp = getTimeStamp(); - return; - } -private: - IRA::CSecureArea<SRTMinorServoAnswerMap>* m_secure_area; - T m_value; - std::string m_prefix; - std::string m_property_name; - std::vector<std::string> m_property_fields; -}; + private: + /** + * The name of the property, used when raising exceptions. + */ + const std::string m_property_name; + /** + * The field names of the property as they appear on the SRTMinorServoAnswerMap. + */ + const std::vector<std::string> m_property_fields; -template <class C, typename A> class MSGenericDevIO : public DevIO<C> -{ -public: - MSGenericDevIO(A* value) - { - // The following expression will produce an error at compile time if the T class type is not one of the following - static_assert( - std::disjunction< - std::is_same<C, Management::TSystemStatus>, - std::is_same<C, Management::TBoolean>, - std::is_same<C, ACE_CString>, - std::is_same<C, CORBA::Long>, - std::is_same<C, ACS::doubleSeq> - >::value, - "Not accepted MSDevIO type!" - ); - - // The following expressions will produce an error at compile time if the provided A argument class type is not recognized - static_assert( - std::disjunction< - std::negation<std::is_same<C, ACE_CString> >, - std::conjunction< - std::is_same<C, ACE_CString>, - std::disjunction< - std::is_same<A, std::string>, - std::is_same<A, std::atomic<MinorServo::SRTMinorServoMotionStatus> > - > - > - >::value, - "Not accepted argument type!" - ); - - static_assert( - std::disjunction< - std::negation<std::is_same<C, ACS::doubleSeq> >, - std::conjunction< - std::is_same<C, ACS::doubleSeq>, - std::is_same<A, std::vector<double> > - > - >::value, - "Not accepted argument type!" - ); - - m_value = value; - } + /** + * The reference to the SRTMinorServoAnswerMap in whichthe readings from the PLC appear. + */ + const SRTMinorServoAnswerMap& m_answer_map; + }; /** - * Destructor - */ - ~MSGenericDevIO() - { - } - - /** - * @return true to initialize the property with default value from CDB. - */ - bool initializeValue() - { - return false; - } - - /** - * Used to read the property value. - * @param timestamp epoch when the operation completes - */ - C read(ACS::Time& timestamp) + * This template class represents a generic Minor Servo DevIO. + * It accepts 2 types, the DevIO type (the return type) and the type of the object reference which stores the original value to be returned by the read method. + * The templates is specialized for the combinations of types listed right below and the compilation will fail if the developer attempts to use it with any other types combination. + */ + template <typename C, typename A, typename = std::enable_if_t< + is_any_v<C, Management::TSystemStatus, Management::TBoolean, ACE_CString, CORBA::Long> || (std::is_same_v<C, ACS::doubleSeq> && std::is_same_v<A, std::vector<double>>) + >> + class MSGenericDevIO : public MSBaseDevIO<C> { - timestamp = getTimeStamp(); //completion time - - if constexpr(std::is_same<A, std::atomic<MinorServo::SRTMinorServoMotionStatus> >::value) // Motion status + public: + /** + * Default constructor. + * @param value a constant reference to the object from which the DevIO will read the value to be returned as property. + */ + MSGenericDevIO(const A& value) : m_value(value) {} + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes. + * @return the property value read from the original referenced object. + */ + C read(ACS::Time& timestamp) { - std::string motion_status; + timestamp = getTimeStamp(); //completion time - switch(*m_value) + if constexpr(std::is_same_v<A, std::string>) { - case MinorServo::MOTION_STATUS_UNCONFIGURED: - { - motion_status = "Not configured"; - break; - } - case MinorServo::MOTION_STATUS_CONFIGURING: - { - motion_status = "Configuring..."; - break; - } - case MinorServo::MOTION_STATUS_PARK: - { - motion_status = "Parked"; - break; - } - case MinorServo::MOTION_STATUS_ERROR: - { - motion_status = "Error"; - break; - } - case MinorServo::MOTION_STATUS_CONFIGURED: - { - motion_status = "Elevation Track Mode Disabled"; - break; - } - case MinorServo::MOTION_STATUS_TRACKING: - { - motion_status = "Elevation Track Mode"; - break; - } + return m_value.c_str(); } + else if constexpr(std::is_same_v<C, ACS::doubleSeq>) + { + ACS::doubleSeq_var sequence = new ACS::doubleSeq; + sequence->length(m_value.size()); - return motion_status.c_str(); - } - else if constexpr(std::is_same<A, std::string>::value) - { - return m_value->c_str(); - } - else if constexpr(std::is_same<C, ACS::doubleSeq>::value) - { - ACS::doubleSeq_var sequence = new ACS::doubleSeq; - sequence->length(m_value->size()); + for(size_t i = 0; i < m_value.size(); i++) + { + sequence[i] = m_value.operator[](i); + } - for(size_t i = 0; i < m_value->size(); i++) + return sequence; + } + else if constexpr(is_atomic_v<A>) { - sequence[i] = m_value->operator[](i); + return m_value.load(); + } + else + { + return m_value; } - - return sequence; - } - else - { - return *m_value; } - } - - /** - * It writes values into controller. Unused because the properties are read-only. - */ - void write(const C& value, ACS::Time& timestamp) - { - timestamp = getTimeStamp(); - return; - } -private: - A* m_value; -}; + /** + * The reference to the object containing the value to be returned as property. + */ + const A& m_value; + }; +} #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index 0801e2123..b64e65ed6 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "Common.h" +#include "SRTMinorServoCommon.h" #include <IRA> #include <baciSmartPropertyPointer.h> #include <baciROboolean.h> @@ -15,87 +15,407 @@ #include <enumpropROImpl.h> #include <SRTMinorServoBossS.h> #include <SRTMinorServoS.h> +#include <AntennaBossC.h> #include <ManagmentDefinitionsS.h> -#include "ManagementErrors.h" -#include "MinorServoErrors.h" +#include <thread> +#include <chrono> +#include <LogFilter.h> +#include <slamac.h> +#include <MinorServoErrors.h> +#include <ManagementErrors.h> +#include <ComponentErrors.h> #include "SRTMinorServoSocket.h" #include "MSDevIOs.h" #include "SRTMinorServoBossImpl.h" +#include "SRTMinorServoStatusThread.h" #include "SRTMinorServoSetupThread.h" #include "SRTMinorServoParkThread.h" #include "SRTMinorServoTrackingThread.h" +#include "SRTMinorServoScanThread.h" +#include "SRTMinorServoContainers.h" + + +_IRA_LOGFILTER_IMPORT; + +using namespace MinorServo; class SRTMinorServoBossImpl; +class SRTMinorServoStatusThread; class SRTMinorServoSetupThread; class SRTMinorServoParkThread; class SRTMinorServoTrackingThread; +class SRTMinorServoScanThread; +/** + * This class implements the core functionalities for the SRTMinorServoBoss. It is constructed during the SRTMinorServoBossImpl component's construction. + * It handles all the threads and the procedures necessary for the minor servo system to work properly. + */ class SRTMinorServoBossCore { -friend class SRTMinorServoBossImpl; -friend class SRTMinorServoStatusThread; -friend class SRTMinorServoSetupThread; -friend class SRTMinorServoParkThread; -friend class SRTMinorServoTrackingThread; + /** + * These classes needs full access to the SRTMinorServoBossCore object methods and attributes in order for the system to work properly. + */ + friend class SRTMinorServoBossImpl; + friend class SRTMinorServoStatusThread; + friend class SRTMinorServoSetupThread; + friend class SRTMinorServoParkThread; + friend class SRTMinorServoTrackingThread; + friend class SRTMinorServoScanThread; public: - SRTMinorServoBossCore(SRTMinorServoBossImpl* component); + /** + * Constructor. + * @param component a reference to the component object. Used in order to access the properties. + * @throw ComponentErrors::ComponentErrorsEx when reading configurations from the CDB. + */ + SRTMinorServoBossCore(SRTMinorServoBossImpl& component); + + /** + * Destructor. + */ virtual ~SRTMinorServoBossCore(); private: + /** + * Reads the overall status from the hardware. + * @return true when the status is OK, false otherwise. + */ + bool status(); + + /** + * Performs a setup procedure. + * @param configuration a mnemonic code identifying the desired configuration. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while performing the setup procedure or if checkLineStatus throws. + */ void setup(std::string configuration); + + /** + * Performs a park procedure. + * @throw ManagementErrors::ParkingErrorEx when something went wrong while performing the park procedure or if checkLineStatus throws. + */ void park(); - void status(); - void checkControl(); - void checkEmergency(); + + /** + * Enables or disables the elevation tracking. + * @param configuration the desired elevation tracking configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ void setElevationTracking(std::string configuration); + + /** + * Enables or disables the use of ASACTIVE configurations. + * @param configuration the desired active surface configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ void setASConfiguration(std::string configuration); + + /** + * Opens or closes the gregorian cover. + * @param position the desired position for the gregorian cover, allowed values are 'open', 'OPEN', 'closed' or 'CLOSED'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded position is unknown, when the system is not parked or parking, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + void setGregorianCoverPosition(std::string position); + + /** + * Configures the whole minor servo system to a desired position. + * @param elevation the elevation to use for all the minor servo positions calculation. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system was not configured yet, + * when a single minor servo component raises an error or when checkLineStatus throws. + */ void preset(double elevation); + /** + * Resets the given servo user offsets to 0. + * @param servo_name the name of the minor servo the user offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ void clearUserOffsets(std::string servo_name); - void setUserOffset(std::string servo_axis_name, double offset); - std::vector<double> getUserOffsets(); + + /** + * Sets the given axis' user offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + void setUserOffset(std::string servo_axis_name, double offset, bool log = false); + + /** + * Retrieves all the current user offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes user offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + ACS::doubleSeq* getUserOffsets(); + + /** + * Resets the given servo system offsets to 0. + * @param servo_name the name of the minor servo the system offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ void clearSystemOffsets(std::string servo_name); + + /** + * Sets the given axis' system offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired system offset to be loaded for the given axis. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ void setSystemOffset(std::string servo_axis_name, double offset); - std::vector<double> getSystemOffsets(); - void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + /** + * Retrieves all the current system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes system offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + ACS::doubleSeq* getSystemOffsets(); + + /** + * Retrieves all the current axes names and units of measure. + * @param axes_names_out a reference to the sequence in which the method will put all the axes names. + * @param axes_units_out a reference to the sequence in which the method will put all the axes units of measure. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + */ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out); + + /** + * Retrieves all the axes positions for a given epoch. + * @param acs_time the ACS::Time the user wants to retrieve all the axes positions for. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return an ACS::doubleSeq containing all the axes positions for the given time. + */ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time); + + /** + * This method performs the calculations necessary to check if a scan can be performed starting from the given parameters. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the given parameters or when the scan could not be performed for any reason. + * @return a SRTMinorServoScan object containing the parameters for a feasible scan. + */ + SRTMinorServoScan checkScanFeasibility(const ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); - bool checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters); - void startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + /** + * This method checks if a scan with the given parameters is feasible by calling the checkScanFeasibility method. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @param ms_parameters a reference to the object containing the calculated parameters for the requested scan. + * @return true if the requested scan is feasible, false otherwise. + */ + bool checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters); + + /** + * This method commands the start of a scan to the minor servo system. It calls the checkScanFeasibility method again to be sure the scan can actually be performed, updating the starting time. + * @param start_time a reference to the ACS::Time object. This value will be written by this method and it will represent the earliest time the minor servo system can perform the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status, with the given parameters or when the scan could not be performed for any reason. + */ + void startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + + /** + * Requests a stop for the ongoing scan. + * @param close_time the closing time for the ongoing scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status. + */ void closeScan(ACS::Time& close_time); - SRTMinorServoBossImpl* m_component; + /** + * Retrieve the antenna elevation from the AntennaBoss component for the given ACS::Time. + * @param acs_time the ACS::Time we want to know the antenna elevation for. + * @throw ComponentErrors::ComponentErrorsEx when the AntennaBoss component could not be retrieved. + * @return the antenna elevation for the given time, expressed in degrees. + */ + double getElevation(const ACS::Time& acs_time); + + /** + * Checks if the socket is connected, if the Leonardo minor servo system is currently controlled by DISCOS and if it is not in emergency status. + * @throw MinorServoErrors::MinorServoErrorsEx when any of the above is false. + */ + void checkLineStatus(); + + /** + * Method that creates and starts an ACS thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS thread object to be eventually created and started. + * @param sleep_time the optional thread sleep time, defaults to 0, meaning that this value will be ignored and internally the thread sleep time will be set to the default sleep time. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void startThread(T*& thread, const ACS::TimeInterval& sleep_time = 0); + + /** + * Method that stops an ACS thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS thread object to be stopped. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void stopThread(T*& thread); + + /** + * Method that destroys an ACS Thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS Thread object to be destroyed. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void destroyThread(T*& thread); - SRTMinorServoSocketConfiguration* m_socket_configuration; - SRTMinorServoSocket* m_socket; + /** + * Method that sets all the necessary variable to signal a failure of the minor servo system. + */ + void setFailure(); + /** + * Method used to retrieve a configuration value from the CDB. + * @param configuration the name of the value to be read from the CDB. + */ + Management::TBoolean getCDBConfiguration(std::string configuration); + + /** + * Reference to the component object. + */ + SRTMinorServoBossImpl& m_component; + + /** + * Pointer to the status thread. + */ + SRTMinorServoStatusThread* m_status_thread; + + /** + * Pointer to the setup thread. + */ SRTMinorServoSetupThread* m_setup_thread; + + /** + * Pointer to the park thread. + */ SRTMinorServoParkThread* m_park_thread; + + /** + * Pointer to the tracking thread. + */ SRTMinorServoTrackingThread* m_tracking_thread; - IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_secure_area; + /** + * Pointer to the scan thread. + */ + SRTMinorServoScanThread* m_scan_thread; + + /** + * Pointer to the AntennaBoss component. + */ + Antenna::AntennaBoss_var m_antennaBoss; + + /** + * SRTMinorServoAnswerMap object containing the status read from the PLC. + */ SRTMinorServoAnswerMap m_status; - std::map<std::string, MinorServo::SRTBaseMinorServo_ptr> m_servos; - std::map<std::string, MinorServo::SRTProgramTrackMinorServo_ptr> m_tracking_servos; + /** + * Enumeration indicating the status of the motion of the minor servo system. + */ + std::atomic<SRTMinorServoMotionStatus> m_motion_status; - std::atomic<MinorServo::SRTMinorServoMotionStatus> m_motion_status; + /** + * String containing the commanded focal configuration. + */ std::string m_commanded_setup; - std::atomic<MinorServo::SRTMinorServoFocalConfiguration> m_commanded_configuration; - std::atomic<MinorServo::SRTMinorServoFocalConfiguration> m_current_configuration; + /** + * Enumeration containing the commanded focal configuration. + */ + std::atomic<SRTMinorServoFocalConfiguration> m_commanded_configuration; + + /** + * Enumeration containing the status of the subsystem. + */ std::atomic<Management::TSystemStatus> m_subsystem_status; + + /** + * String containing the current focal configuration name. + */ std::string m_actual_setup; + + /** + * Boolean indicating whether the system is ready or not. + */ std::atomic<Management::TBoolean> m_ready; + + /** + * Boolean indicating whether the system is performing a setup procedure or not. + */ std::atomic<Management::TBoolean> m_starting; + + /** + * Boolean indicating whether the system is using ASACTIVE configurations or not. + */ std::atomic<Management::TBoolean> m_as_configuration; + + /** + * Boolean indicating whether the system is currently tracking the elevation. + */ std::atomic<Management::TBoolean> m_elevation_tracking; + + /** + * Boolean indicating whether the tracking of the elevation is enabled. + */ std::atomic<Management::TBoolean> m_elevation_tracking_enabled; + + /** + * Boolean indicating whether the system can perform scans or not. + */ std::atomic<Management::TBoolean> m_scan_active; + + /** + * Boolean indicating whether the system is scanning or not. + */ std::atomic<Management::TBoolean> m_scanning; + + /** + * Boolean indicating whether the system is tracking or not. + */ std::atomic<Management::TBoolean> m_tracking; + + /** + * Configuration of the socket object. + */ + const SRTMinorServoSocketConfiguration& m_socket_configuration; + + /** + * Socket object. + */ + SRTMinorServoSocket& m_socket; + + /** + * Boolean indicating whether the socket is connected or not. + */ + std::atomic<Management::TBoolean> m_socket_connected; + + /** + * Map containing all the servos in the minor servo system. + */ + const std::map<std::string, SRTBaseMinorServo_ptr> m_servos; + + /** + * Map containing all the tracking servos in the minor servo system. + */ + const std::map<std::string, SRTProgramTrackMinorServo_ptr> m_tracking_servos; + + /** + * Current scan parameters. + */ + SRTMinorServoScan m_current_scan; + + /** + * Last scan parameters. + */ + SRTMinorServoScan m_last_scan; }; #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index fa9a5fd13..6f15aafac 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "Common.h" +#include "SRTMinorServoCommon.h" #include <IRA> #include <baciCharacteristicComponentImpl.h> #include <baciSmartPropertyPointer.h> @@ -16,122 +16,532 @@ #include <MinorServoBossS.h> #include <SRTMinorServoS.h> #include <SP_parser.h> -#include "ManagementErrors.h" #include "MinorServoErrors.h" #include "SRTMinorServoBossCore.h" #include "SRTMinorServoStatusThread.h" +#include "SRTMinorServoUtils.h" #include "MSDevIOs.h" -#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTMinorServoBossImpl::PROPERTYNAME() \ -{ \ - if (PROPERTY==0) return TYPE::_nil(); \ - TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ - return tmp._retn(); \ -} +using namespace MinorServo; // Forward classes definitions class SRTMinorServoBossCore; class SRTMinorServoStatusThread; -class SRTMinorServoBossImpl: public baci::CharacteristicComponentImpl, public virtual POA_MinorServo::SRTMinorServoBoss +class SRTMinorServoBossImpl : public baci::CharacteristicComponentImpl, public virtual POA_MinorServo::SRTMinorServoBoss { -friend class SRTMinorServoBossCore; + friend class SRTMinorServoBossCore; public: - // Constructor and destructor - SRTMinorServoBossImpl(const ACE_CString&, maci::ContainerServices*); + /** + * Constructor. + * @param component_name the name of the component. + * @param container_services the ACS container services. + */ + SRTMinorServoBossImpl(const ACE_CString& component_name, maci::ContainerServices* container_services); + + /** + * Destructor. + */ virtual ~SRTMinorServoBossImpl(); - // Characteristic component methods + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters, builds up connection. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ virtual void initialize(); + + /** + * Called after initialize to tell the component that it has to be ready to accept incoming functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only logs the COMPSTATE_OPERATIONAL. + */ virtual void execute(); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of releasing all resources. + */ virtual void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. + * This function tries to free all resources even though there is no warranty that the function is completely executed before the component is destroyed. + */ virtual void aboutToAbort(); - // Parser methods - virtual void setup(const char*); + /** + * Performs a setup procedure. + * @param configuration a mnemonic code identifying the desired configuration. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while calling the SRTMinorServoBossCore method implementation. + */ + virtual void setup(const char* configuration); + + /** + * Performs a park procedure. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while calling the SRTMinorServoBossCore method implementation. + */ virtual void park(); - virtual void setElevationTracking(const char* elevation_tracking); - virtual void setASConfiguration(const char* as_configuration); - virtual void setOffsets(const char* axis_name, const double& offset); - virtual void clearOffsets(); - CORBA::Boolean command(const char*, CORBA::String_out); - // MinorServoBoss interface methods + /** + * Method that tells if the elevation tracking is enabled. + * @return a CORBA::Boolean indicating if the elevation tracking is enabled or not. + */ virtual CORBA::Boolean isElevationTrackingEn(); + + /** + * Method that tells if the elevation is being tracked. + * @return a CORBA::Boolean indicating if the system is currently tracking the elevation or not. + */ virtual CORBA::Boolean isElevationTracking(); + + /** + * Method that tells if the system is currently tracking the commanded position. + * @return a CORBA::Boolean indicating if the system is currently tracking below the given error threshold or not. + */ virtual CORBA::Boolean isTracking(); + + /** + * Method that tells if the system is currently performing a setup procedure. + * @return a CORBA::Boolean indicating if the system is currently performing a setup procedure or not. + */ virtual CORBA::Boolean isStarting(); + + /** + * Method that tells if the system is using ASACTIVE lookup tables or not. + * @return a CORBA::Boolean indicating if the system is configured to use ASACTIVE lookup tables or not. + */ virtual CORBA::Boolean isASConfiguration(); + + /** + * Method that tells if the system is currently performing a parking procedure. + * @return a CORBA::Boolean indicating if the system is currently performing a parking procedure or not. + */ virtual CORBA::Boolean isParking(); + + /** + * Method that tells if the system was configured correctly. + * @return a CORBA::Boolean indicating if the system is ready to be moved or not. + */ virtual CORBA::Boolean isReady(); + + /** + * Method that tells if the system is currently performing a scan. + * @return a CORBA::Boolean indicating if the system is currently performing a scan or not. + */ virtual CORBA::Boolean isScanning(); + + /** + * Method that tells if the system can currently perform a scan or not. + * @return a CORBA::Boolean indicating if the system can perform a scan or not. + */ virtual CORBA::Boolean isScanActive(); - virtual char * getActualSetup(); - virtual char * getCommandedSetup(); + + /** + * Returns the name of the current focal configuration. + * @return a string containing the current focal configuration name. + */ + virtual char* getActualSetup(); + + /** + * Returns the name of the commanded focal configuration. + * @return a string containing the commanded focal configuration name. + */ + virtual char* getCommandedSetup(); + + /** + * Returns the central position for the axis involved in the current or last scan. + * @return a CORBA::Double containing the central position for the current scan axis. + * @throw MinorServoErrors::MinorServoErrorsEx when no scan has been performed yet. + */ virtual CORBA::Double getCentralScanPosition(); + + /** + * Clears the user defined offsets from all the minor servos. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void clearOffsets(); + + /** + * Resets the given servo user offsets to 0. + * @param servo_name the name of the minor servo the user offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ virtual void clearUserOffset(const char* servo_name); + + /** + * Sets the given axis' user offset. CORBA IDL implementation. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ virtual void setUserOffset(const char* servo_axis_name, CORBA::Double offset); + + /** + * Sets the given axis' user offset. SimpleParser implementation. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void setUserOffset(const char* servo_axis_name, const double& offset); + + /** + * Retrieves all the current user offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes user offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ virtual ACS::doubleSeq* getUserOffset(); + + /** + * Resets the given servo system offsets to 0. + * @param servo_name the name of the minor servo the system offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ virtual void clearSystemOffset(const char* servo_name); + + /** + * Sets the given axis' system offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired system offset to be loaded for the given axis. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ virtual void setSystemOffset(const char* servo_axis_name, CORBA::Double offset); + + /** + * Retrieves all the current system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes system offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ virtual ACS::doubleSeq* getSystemOffset(); + + /** + * Retrieves all the current axes names and units of measure. + * @param axes_names_out a reference to the sequence in which the method will put all the axes names. + * @param axes_units_out a reference to the sequence in which the method will put all the axes units of measure. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + */ virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + + /** + * Gets the axis involved in the currently or last executed scan. + * @return a string containing the servo name and the axis name, connected by a _ character. + */ virtual char* getScanAxis(); - virtual ACS::doubleSeq* getAxesPosition(ACS::Time); - virtual CORBA::Boolean checkScan(const ACS::Time, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&, MinorServo::TRunTimeParameters_out); - virtual void startScan(ACS::Time&, const MinorServo::MinorServoScan&, const Antenna::TRunTimeParameters&); - virtual void closeScan(ACS::Time&); + /** + * Retrieves all the axes positions for a given epoch. + * @param acs_time the ACS::Time the user wants to retrieve all the axes positions for. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return an ACS::doubleSeq containing all the axes positions for the given time. + */ + virtual ACS::doubleSeq* getAxesPosition(ACS::Time acs_time); + /** + * Enables or disables the elevation tracking. + * @param configuration the desired elevation tracking configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + virtual void setElevationTracking(const char* elevation_tracking); + + /** + * Enables or disables the use of ASACTIVE configurations. + * @param configuration the desired active surface configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + virtual void setASConfiguration(const char* as_configuration); + + /** + * Opens or closes the gregorian cover. + * @param position the desired position for the gregorian cover, allowed values are 'open', 'OPEN', 'closed' or 'CLOSED'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded position is unknown, when the system is not parked or parking, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + virtual void setGregorianCoverPosition(const char* position); + + /** + * This method checks if a scan with the given parameters is feasible. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @param ms_parameters a reference to the object containing the calculated parameters for the requested scan. + * @return true if the requested scan is feasible, false otherwise. + */ + virtual CORBA::Boolean checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters); + + /** + * This method commands the start of a scan to the minor servo system. + * @param start_time a reference to the ACS::Time object. This value will be written by this method and it will represent the earliest time the minor servo system can perform the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status, with the given parameters or when the scan could not be performed for any reason. + */ + virtual void startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + + /** + * Requests a stop for the ongoing scan. + * @param close_time the closing time for the ongoing scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status. + */ + virtual void closeScan(ACS::Time& close_time); + + /** + * Configures the whole minor servo system to a desired position. + * @param elevation the elevation to use for all the minor servo positions calculation. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system was not configured yet, + * when a single minor servo component raises an error or when checkLineStatus throws. + */ virtual void preset(double elevation); - // Properties methods + /** + * Parser method. It executes the desired command. + */ + virtual CORBA::Boolean command(const char*, CORBA::String_out); + + /** + * Returns a reference to the status property implementation of the IDL interface. + * @return pointer to read-only TSystemStatus property status. + */ virtual Management::ROTSystemStatus_ptr status(); + + /** + * Returns a reference to the ready property implementation of the IDL interface. + * @return pointer to read-only TBoolean property ready. + */ virtual Management::ROTBoolean_ptr ready(); + + /** + * Returns a reference to the actualSetup property implementation of the IDL interface. + * @return pointer to read-only string property actualSetup. + */ virtual ACS::ROstring_ptr actualSetup(); + + /** + * Returns a reference to the motionInfo property implementation of the IDL interface. + * @return pointer to read-only string property motionInfo. + */ virtual ACS::ROstring_ptr motionInfo(); + + /** + * Returns a reference to the starting property implementation of the IDL interface. + * @return pointer to read-only TBoolean property starting. + */ virtual Management::ROTBoolean_ptr starting(); + + /** + * Returns a reference to the asConfiguration property implementation of the IDL interface. + * @return pointer to read-only TBoolean property asConfiguration. + */ virtual Management::ROTBoolean_ptr asConfiguration(); + + /** + * Returns a reference to the elevationTrack property implementation of the IDL interface. + * @return pointer to read-only TBoolean property elevationTrack. + */ virtual Management::ROTBoolean_ptr elevationTrack(); + + /** + * Returns a reference to the scanActive property implementation of the IDL interface. + * @return pointer to read-only TBoolean property scanActive. + */ virtual Management::ROTBoolean_ptr scanActive(); + + /** + * Returns a reference to the scanning property implementation of the IDL interface. + * @return pointer to read-only TBoolean property scanning. + */ virtual Management::ROTBoolean_ptr scanning(); + + /** + * Returns a reference to the tracking property implementation of the IDL interface. + * @return pointer to read-only TBoolean property tracking. + */ virtual Management::ROTBoolean_ptr tracking(); - virtual MinorServo::ROSRTMinorServoFocalConfiguration_ptr current_configuration(); + /** + * Returns a reference to the connected property implementation of the IDL interface. + * @return pointer to read-only TBoolean property connected. + */ + virtual Management::ROTBoolean_ptr connected(); + + /** + * Returns a reference to the current_configuration property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoFocalConfiguration property current_configuration. + */ + virtual ROSRTMinorServoFocalConfiguration_ptr current_configuration(); + + /** + * Returns a reference to the simulation_enabled property implementation of the IDL interface. + * @return pointer to read-only TBoolean property simulation_enabled. + */ virtual Management::ROTBoolean_ptr simulation_enabled(); + + /** + * Returns a reference to the plc_time property implementation of the IDL interface. + * @return pointer to read-only double property plc_time. + */ virtual ACS::ROdouble_ptr plc_time(); + + /** + * Returns a reference to the plc_version property implementation of the IDL interface. + * @return pointer to read-only string property plc_version. + */ virtual ACS::ROstring_ptr plc_version(); - virtual MinorServo::ROSRTMinorServoControlStatus_ptr control(); + + /** + * Returns a reference to the control property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoControlStatus property control. + */ + virtual ROSRTMinorServoControlStatus_ptr control(); + + /** + * Returns a reference to the power property implementation of the IDL interface. + * @return pointer to read-only TBoolean property power. + */ virtual Management::ROTBoolean_ptr power(); + + /** + * Returns a reference to the emergency property implementation of the IDL interface. + * @return pointer to read-only TBoolean property emergency. + */ virtual Management::ROTBoolean_ptr emergency(); - virtual MinorServo::ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); + + /** + * Returns a reference to the gregorian_cover property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoGregorianCoverStatus property gregorian_cover. + */ + virtual ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); + + /** + * Returns a reference to the last_executed_command property implementation of the IDL interface. + * @return pointer to read-only double property last_executed_command. + */ virtual ACS::ROdouble_ptr last_executed_command(); private: - SRTMinorServoBossCore* m_core; - SRTMinorServoStatusThread* m_status_thread; - SimpleParser::CParser<SRTMinorServoBossImpl> *m_parser; + /** + * Component name. + */ + const std::string m_component_name; + + /** + * SRTMinorServoBossCore object pointer. No delete is needed since it is handled by the shared_ptr logic. + */ + const std::shared_ptr<SRTMinorServoBossCore> m_core_ptr; + + /** + * SRTMinorServoBossCore object reference. + */ + SRTMinorServoBossCore& m_core; + + /** + * Command line parser object. + */ + SimpleParser::CParser<SRTMinorServoBossImpl> m_parser; - // Properties pointers - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus> > m_status_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_ready_ptr; + /** + * Pointer to the connected property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_connected_ptr; + + /** + * Pointer to the status property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>> m_status_ptr; + + /** + * Pointer to the ready property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_ready_ptr; + + /** + * Pointer to the actual_setup property. + */ baci::SmartPropertyPointer<baci::ROstring> m_actual_setup_ptr; + + /** + * Pointer to the motion_info property. + */ baci::SmartPropertyPointer<baci::ROstring> m_motion_info_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_starting_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_as_configuration_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_elevation_tracking_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_scan_active_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_scanning_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_tracking_ptr; - - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration> > m_current_configuration_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_simulation_enabled_ptr; + + /** + * Pointer to the starting property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_starting_ptr; + + /** + * Pointer to the as_configuration property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_as_configuration_ptr; + + /** + * Pointer to the elevation_tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_elevation_tracking_ptr; + + /** + * Pointer to the scan_active property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_scan_active_ptr; + + /** + * Pointer to the scanning property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_scanning_ptr; + + /** + * Pointer to the tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; + + /** + * Pointer to the current_configuration property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>> m_current_configuration_ptr; + + /** + * Pointer to the simulation_enabled property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_simulation_enabled_ptr; + + /** + * Pointer to the plc_time property. + */ baci::SmartPropertyPointer<baci::ROdouble> m_plc_time_ptr; + + /** + * Pointer to the plc_version property. + */ baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus> > m_control_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_power_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_emergency_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus> > m_gregorian_cover_ptr; + + /** + * Pointer to the control property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>> m_control_ptr; + + /** + * Pointer to the power property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_power_ptr; + + /** + * Pointer to the emergency property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_emergency_ptr; + + /** + * Pointer to the gregorian_cover property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>> m_gregorian_cover_ptr; + + /** + * Pointer to the last_executed_command property. + */ baci::SmartPropertyPointer<baci::ROdouble> m_last_executed_command_ptr; }; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h new file mode 100644 index 000000000..77248b543 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -0,0 +1,110 @@ +#ifndef __SRTMINORSERVOCOMMON_H__ +#define __SRTMINORSERVOCOMMON_H__ + +/** + * SRTMinorServoCommon.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <SRTMinorServoCommonS.h> +#include <map> +#include <vector> +#include <boost/bimap.hpp> +#include <boost/assign.hpp> + +/** + * programTrack constants. The first indicates the time between two consecutive points, the second indicates the time we send each point in advance. + */ +#define PROGRAM_TRACK_TIMEGAP 2000000 //200 milliseconds +#define PROGRAM_TRACK_FUTURE_TIME 4000000 //400 milliseconds + +/** + * Macro used to link the properties pointers to their methods. + */ +#define GET_PROPERTY_REFERENCE(TYPE, CLASSNAME, PROPERTY, PROPERTYNAME) TYPE##_ptr CLASSNAME::PROPERTYNAME()\ +{ \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + + +namespace MinorServo +{ + /** + * This dictionary contains information regarding the possibile focal configurations. + * The key indicates the configuration as known by DISCOS. + * The value is a pair, the first element of the pair is the DISCOS enumeration for the relative Leonardo configuration, + * the second element of the pair indicates whether the configuration has a ASACTIVE twin configuraiton. + */ + 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)}, + {"CCG", std::make_pair(CONFIGURATION_GREGORIAN1, true )}, + {"KKG", std::make_pair(CONFIGURATION_GREGORIAN2, true )}, + {"WWG", std::make_pair(CONFIGURATION_GREGORIAN3, true )}, + {"QQG", std::make_pair(CONFIGURATION_GREGORIAN4, true )}, + {"TRI", std::make_pair(CONFIGURATION_GREGORIAN5, true )}, + {"MISTRAL", std::make_pair(CONFIGURATION_GREGORIAN6, true )}, + {"CCB", std::make_pair(CONFIGURATION_BWG1, true )}, + {"XB", std::make_pair(CONFIGURATION_BWG3, true )}, + }; + + /** + * This dictionary contains the Leonardo focal configurations DISCOS enumerations, alongside their name inside the Leonardo minor servo system. + */ + using LDOConfigurationNameTableType = boost::bimap<SRTMinorServoFocalConfiguration, std::string>; + const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of<LDOConfigurationNameTableType::relation> + (CONFIGURATION_PRIMARY, "Primario") + (CONFIGURATION_GREGORIAN1, "Gregoriano 1") + (CONFIGURATION_GREGORIAN2, "Gregoriano 2") + (CONFIGURATION_GREGORIAN3, "Gregoriano 3") + (CONFIGURATION_GREGORIAN4, "Gregoriano 4") + (CONFIGURATION_GREGORIAN5, "Gregoriano 5") + (CONFIGURATION_GREGORIAN6, "Gregoriano 6") + (CONFIGURATION_GREGORIAN7, "Gregoriano 7") + (CONFIGURATION_GREGORIAN8, "Gregoriano 8") + (CONFIGURATION_BWG1, "BWG1") + (CONFIGURATION_BWG2, "BWG2") + (CONFIGURATION_BWG3, "BWG3") + (CONFIGURATION_BWG4, "BWG4"); + + /** + * This dictionary containes the Leonardo focal configurations DISCOS enumerations, alongside their ID counterpart as read from the Leonardo minor servo system proxy. + */ + using LDOConfigurationIDTableType = boost::bimap<SRTMinorServoFocalConfiguration, unsigned int>; + const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of<LDOConfigurationIDTableType::relation> + (CONFIGURATION_UNKNOWN, 0) + (CONFIGURATION_PRIMARY, 1) + (CONFIGURATION_GREGORIAN1, 11) + (CONFIGURATION_GREGORIAN2, 12) + (CONFIGURATION_GREGORIAN3, 13) + (CONFIGURATION_GREGORIAN4, 14) + (CONFIGURATION_GREGORIAN5, 15) + (CONFIGURATION_GREGORIAN6, 16) + (CONFIGURATION_GREGORIAN7, 17) + (CONFIGURATION_GREGORIAN8, 18) + (CONFIGURATION_BWG1, 21) + (CONFIGURATION_BWG2, 22) + (CONFIGURATION_BWG3, 23) + (CONFIGURATION_BWG4, 24); + + /** + * This is a simple list indicating the order of the minor servo components. + */ + const std::vector<std::string> ServoOrder = + { + "PFP", + "SRP", + "GFR", + "M3R" + }; +} + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h new file mode 100644 index 000000000..1dad210f9 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h @@ -0,0 +1,328 @@ +#ifndef __SRTMINORSERVOCONTAINERS_H__ +#define __SRTMINORSERVOCONTAINERS_H__ + +/** + * SRTMinorServoContainers.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <map> +#include <vector> +#include <shared_mutex> + + +namespace MinorServo +{ + /** + * Object used to store some info regarding a scan. + */ + struct SRTMinorServoScan + { + /** + * Name of the servo involved in the scan. + */ + std::string servo_name = ""; + + /** + * Name of the axis involved in the scan. + */ + std::string axis_name = ""; + + /** + * Index of the axis involved in the scan. + */ + size_t axis_index = 0; + + /** + * Range of the scan. + */ + double scan_range = 0; + + /** + * Starting time of the scan. + */ + ACS::Time start_time = 0; + + /** + * Closing time of the scan. + */ + ACS::Time close_time = 0; + + /** + * Duration of the scan. + */ + ACS::TimeInterval scan_duration = 0; + + /** + * Central position of the scan axis. + */ + double central_position = 0; + + /** + * Starting elevation for the scan. + */ + double starting_elevation = 0; + }; + + using SRTMinorServoLookupTable = std::map<std::string, std::vector<double>>; + + /** + * This class implements a queue of time tagged positions. it extends a simple std::map with some specific methods. + */ + class SRTMinorServoPositionsQueue : private std::map<ACS::Time, const std::vector<double>> + { + public: + /** + * Default constructor. Used only for lazy initialization. + */ + SRTMinorServoPositionsQueue() : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(0), m_vector_size(0), m_mutex() {} + + /** + * Constructor with queue size as parameter. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + */ + SRTMinorServoPositionsQueue(size_t queue_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(0), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + } + + /** + * Constructor with queue size and vector size as parameters. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + * @param vector_size the length of the vectors that this object will store. Once set it cannot be changed. This assures we are always dealing with the same number of virtual axes. + */ + SRTMinorServoPositionsQueue(size_t queue_size, size_t vector_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(vector_size), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + vectorLazyInit(vector_size); + } + + /** + * Custom assignment operator. It locks both the current object and the passed one with a mutex in order for the assignment operation to be thread safe. + * @param other the other SRTMinorServoPositionsQueue we are assigning its value to the current object. + * @return the newly populated SRTMinorServoPositionsQueue object. + */ + SRTMinorServoPositionsQueue& operator=(const SRTMinorServoPositionsQueue& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + m_queue_size = other.m_queue_size; + m_vector_size = other.m_vector_size; + std::map<ACS::Time, const std::vector<double>>::operator=(other); + } + + return *this; + } + + /** + * Put method, with initializer list argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::initializer_list<double>& values) + { + put(key, std::vector<double>(values)); + } + + /** + * Put method, with ACS::doubleSeq argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const ACS::doubleSeq& values) + { + put(key, std::vector<double>(values.get_buffer(), values.get_buffer() + values.length())); + } + + /** + * Put method, with std::vector<double> argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::vector<double>& values) + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + + vectorLazyInit(values.size()); + queueLazyInit(m_queue_size); + if(std::map<ACS::Time, const std::vector<double>>::size() == m_queue_size) + { + // Remove the oldest one + this->erase(this->begin()); + } + this->emplace(std::make_pair(key, values)); + } + + /** + * Get method. It retrieves a set of coordinates from a given ACS::Time, giving back the time as well. + * @param key the time the user wants to retrieve the related coordinates. + * @param exact a boolean indicating whether the user wants to interpolate (false) or not (true). + * @throw std::logic_error when the queue is empty. + * @throw std::out_of_range when the exact point was not found in the queue. + * @return a std::pair containing the ACS::Time as first element and the set of coordinates as second element. + */ + std::pair<ACS::Time, const std::vector<double>> get(ACS::Time key, bool exact = false) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + + if(const SRTMinorServoPositionsQueue::iterator point = this->find(key); point != this->end()) + { + return *point; + } + else if(exact) + { + // Exact point not found, we throw an exception + throw std::out_of_range("Exact point not found!"); + } + else + { + // Key not found, should check outside the boundaries or interpolate + if(key <= this->begin()->first) + { + // Aksed for a timestamp older than the earliest point in the queue + return *this->cbegin(); + } + else if(key >= this->rbegin()->first) + { + // Asked for a timestamp newer than the latest point in the queue + return *this->crbegin(); + } + else + { + std::vector<double> positions(m_vector_size, 0.0); + SRTMinorServoPositionsQueue::iterator p0, p1; + p1 = this->lower_bound(key); + p0 = p1; + p0--; + + // Calculate the linear fit for each position + double fraction = (key - p0->first) / (p1->first - p0->first); + + for(size_t i = 0; i < m_vector_size; i++) + { + positions[i] = p0->second[i] + fraction * (p1->second[i] - p0->second[i]); + } + + return std::make_pair(key, (const std::vector<double>)positions); + } + } + } + + /** + * Size method thread safe override. + * @return the number of elements in the queue. + */ + size_t size() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return std::map<ACS::Time, const std::vector<double>>::size(); + } + + /** + * Clear method, thread safe. It empties the queue. + */ + void clear() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + std::map<ACS::Time, const std::vector<double>>::clear(); + } + + /** + * This method returns the number of points having a higher tag time than the one passed as argument. + * @param t the time threshold. This method counts and returns the number of points having a higher time than this value. + * @throw std::logic_error when the queue is empty. + * @return the number of points having a higher time than the given one. + */ + size_t getRemainingPoints(ACS::Time t) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + return std::distance(this->lower_bound(t), this->end()); + } + + private: + /** + * This method gets called by the constructors for the lazy intialization of the queue size value. + * @param queue_size the desired maximum queue size. + * @throw std::length_error when the desired queue size is equal to 0 or when it is greater than the maximum size that can be currently allocated. + */ + void queueLazyInit(size_t queue_size) + { + if(m_queue_size == 0) + { + if(queue_size == 0) + { + // The maximum queue size was not set yet + throw std::length_error("Queue length cannot be 0."); + } + else if(queue_size > this->max_size()) + { + // The requested size is greater than the maximum possible queue size + throw std::length_error("Queue length cannot exceed " + std::to_string(this->max_size()) + "."); + } + else + { + m_queue_size = queue_size; + } + } + } + + /** + * This method gets called by the constructors for the lazy initialization of the vector size value. + * @param vector_size the desired length of the vector containing the set of points. + * @throw std::length_error when the desired vector size is equal to 0 or when it is longer than 6. We don't have more than 6 axes, so we hard cap this value to 6. + * It also throws this when the user tries to insert a vector with different lenght then the already defined one. This ensures all stored vecors are of equal length. + */ + void vectorLazyInit(size_t vector_size) + { + if(vector_size == 0) + { + throw std::length_error("Vector length cannot be 0."); + } + else if(vector_size > 6) + { + // Hard cap to 6, we don't need more + throw std::length_error("Vector length cannot be longer than 6."); + } + else if(m_vector_size == 0) + { + m_vector_size = vector_size; + } + else if(m_vector_size != vector_size) + { + throw std::length_error("New vector length does not match the initial one."); + } + } + + /** + * The maximum size of the queue. + */ + size_t m_queue_size; + + /** + * The desired length of the vectors stored by this object. + */ + size_t m_vector_size; + + /** + * The shared mutex used for access synchronization. + */ + mutable std::shared_mutex m_mutex; + }; +} + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index 679e33440..a09cb6409 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -3,11 +3,10 @@ /** * SRTMinorServoImpl.h - * 21/06/2023 * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "Common.h" +#include "SRTMinorServoCommon.h" #include <regex> #include <IRA> #include <baciCharacteristicComponentImpl.h> @@ -24,170 +23,701 @@ #include "MinorServoErrors.h" #include "SRTMinorServoSocket.h" #include "MSDevIOs.h" +#include "SRTMinorServoContainers.h" -#define GET_PROPERTY_REFERENCE(TYPE,PROPERTY,PROPERTYNAME) TYPE##_ptr SRTBaseMinorServoImpl::PROPERTYNAME()\ -{ \ - if (PROPERTY==0) return TYPE::_nil(); \ - TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ - return tmp._retn(); \ -} -using SRTMinorServoLookupTable = std::map<std::string, std::vector<double> >; +using namespace MinorServo; - -class SRTBaseMinorServoImpl: public baci::CharacteristicComponentImpl +/** + * This class implements the base ACS::CharacteristicComponent CORBA interface for a SRTMinorServo component. + * It is inherited by the other classes declared below. + */ +class SRTBaseMinorServoImpl : public baci::CharacteristicComponentImpl { public: - SRTBaseMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + /** + * Constructor. + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + * @throw ComponentErrors::ComponentErrorsEx when there has been an issue reading some value from the CDB. + */ + SRTBaseMinorServoImpl(const ACE_CString& component_name, maci::ContainerServices* container_services); + + /** + * Destructor. + */ virtual ~SRTBaseMinorServoImpl(); - virtual void initialize(); - virtual void execute(); - virtual void cleanUp(); - virtual void aboutToAbort(); - - virtual void status(); - virtual void stow(CORBA::Long stow_position = 1); - virtual void stop(); - virtual void preset(const ACS::doubleSeq& coordinates); - virtual void offset(const ACS::doubleSeq& offsets); - virtual void setup(const char* configuration_name = ""); - virtual ACS::doubleSeq* calcCoordinates(double elevation); - - virtual ACS::doubleSeq* getUserOffsets(); - virtual void setUserOffset(const char* axis_name, CORBA::Double offset); - virtual void clearUserOffsets(); - virtual ACS::doubleSeq* getSystemOffsets(); - virtual void setSystemOffset(const char* axis_name, CORBA::Double offset); - virtual void clearSystemOffsets(); - virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters, builds up connection. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ + void initialize(); + + /** + * Called after initialize to tell the component that it has to be ready to accept incoming functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only logs the COMPSTATE_OPERATIONAL. + */ + void execute(); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of releasing all resources. + */ + void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. + * This function tries to free all resources even though there is no warranty that the function is completely executed before the component is destroyed. + */ + void aboutToAbort(); + + /** + * Asks the hardware the status of the servo system and updates the component properties. + * @return true if the communication succeeded, false otherwise. + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware. + */ + bool status(); + + /** + * Asks the servo system to perform a STOW operation. + * @param stow_position the position to get stowed into. + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted. + */ + void stow(CORBA::Long stow_position = 1); + + /** + * Asks the servo system to perform a STOP operation. + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted. + */ + void stop(); + + /** + * Asks the servo system to perform a PRESET operation. + * @param coordinates the sequence of coordinates to get into position to, the sequence length must be equal to the number of virtual axes of the servo system. + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted. + */ + void preset(const ACS::doubleSeq& coordinates); + + /** + * Asks the servo system to load the commanded configuration table. + * @param configuration_name the configuration the servo system should assume. + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. + */ + void setup(const char* configuration_name = ""); + + /** + * Asks the component to calculate the servo system position starting from the given elevation. + * @param elevation the elevation we want to use to calculate and retrieve the servo system coordinates, expressed in degrees. + * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculation. + * @return a pointer to the double sequence object containing the calculated coordinates of the servo system. + */ + ACS::doubleSeq* calcCoordinates(CORBA::Double elevation); + + /** + * Asks the component the virtual axes user offsets. + * @return a pointer to the double sequence object containing the current virtual axes user offsets of the servo system. + */ + ACS::doubleSeq* getUserOffsets(); + /** + * Load a single virtual axis user offset to the component and to the servo system. + * @param axis_name the name of the axis to load the given offset to. + * @param offset the desired user offset, expressed in millimeters or degrees, depending if the axis is a translation axis or a rotation one. + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis_name is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted. + */ + void setUserOffset(const char* axis_name, CORBA::Double offset); + + /** + * Resets the virtual axes user offsets to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void clearUserOffsets(); + + /** + * Asks the component the virtual axes system offsets. + * @return a pointer to the double sequence object containing the current virtual axes system offsets of the servo system. + */ + ACS::doubleSeq* getSystemOffsets(); + + /** + * Load a single virtual axis system offset to the component and to the servo system. + * @param axis_name the name of the axis to load the given offset to. + * @param offset the desired system offset, expressed in millimeters or degrees, depending if the axis is a translation axis or a rotation one. + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted. + */ + void setSystemOffset(const char* axis_name, CORBA::Double offset); + + /** + * Resets the virtual axes system offsets to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void clearSystemOffsets(); + + /** + * Returns the name and the unit of each virtual axes of the servo system, as reference arguments. + * @param axes_names_out a string sequence object containing the names of the virtual axes of the servo system. + * @param axes_units_out a string sequence object containing the units of the virtual axes of the servo system. + */ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out); + + /** + * Returns the virtual axes positions to where the servo system was at the given time acs_time. + * @param acs_time the epoch we want to retrieve the axes virtual positions of the servo system. + * @throw MinorServoErrors::MinorServoErrorsEx when the position history is empty. + * @return a pointer to the double sequence object containing the virtual axes positions at the given epoch. + */ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time); + + /** + * Returns the maximum travel time to get from a starting position to a destination position. + * @param start a double sequence containing the starting position. If the provided sequence is empty, the current axes positions are used for the calculation. + * @param dest a double sequence containing the destination position. + * @throw MinorServoErrors::MinorServoErrorsEx when receiving a starting position sequence of length different from zero or the number of virtual axes of the servo, + * when receiving a destination position sequence of lenght different from the number of virtual axes of the servo + * @return an ACS::TimeInterval object representing the total duration of the movement from the starting position to the destination position + */ + ACS::TimeInterval getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest); + + /** + * Returns the minimum and maximum range of the virtual axes of the servo system, as reference arguments. + * @param min_ranges_out a double sequence object containing the minimum ranges of the virtual axes of the servo system. + * @param max_ranges_out a double sequence object containing the maximum ranges of the virtual axes of the servo system. + */ + void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out); + + /** + * Returns a reference to the enabled property implementation of the IDL interface. + * @return pointer to read-only boolean property enabled. + */ virtual Management::ROTBoolean_ptr enabled(); - virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); + + /** + * Returns a reference to the drive_cabinet_status property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoCabinerStatus (enumeration) property drive_cabinet_status. + */ + virtual ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); + + /** + * Returns a reference to the block property implementation of the IDL interface. + * @return pointer to read-only boolean property block. + */ virtual Management::ROTBoolean_ptr block(); - virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode(); + + /** + * Returns a reference to the operative_mode property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoOperativeMode (enumeration) property operative_mode. + */ + virtual ROSRTMinorServoOperativeMode_ptr operative_mode(); + + /** + * Returns a reference to the physical_axes_enabled property implementation of the IDL interface. + * @return pointer to read-only boolean sequence property physical_axes_enabled. + */ virtual ACS::RObooleanSeq_ptr physical_axes_enabled(); + + /** + * Returns a reference to the physical_positions property implementation of the IDL interface. + * @return pointer to read-only boolean sequence property physical_positions. + */ virtual ACS::ROdoubleSeq_ptr physical_positions(); + + /** + * Returns a reference to the virtual_axes property implementation of the IDL interface. + * @return pointer to read-only long property virtual_axes. + */ virtual ACS::ROlong_ptr virtual_axes(); + + /** + * Returns a reference to the plain_virtual_positions property implementation of the IDL interface. + * @return pointer to read-only double sequence property plain_virtual_positions. + */ + virtual ACS::ROdoubleSeq_ptr plain_virtual_positions(); + + /** + * Returns a reference to the virtual_positions property implementation of the IDL interface. + * @return pointer to read-only double sequence property virtual_positions. + */ virtual ACS::ROdoubleSeq_ptr virtual_positions(); + + /** + * Returns a reference to the virtual_offsets property implementation of the IDL interface. + * @return pointer to read-only double sequence property virtual_offsets. + */ virtual ACS::ROdoubleSeq_ptr virtual_offsets(); + + /** + * Returns a reference to the virtual_user_offsets property implementation of the IDL interface. + * @return pointer to read-only double sequence property virtual_user_offsets. + */ virtual ACS::ROdoubleSeq_ptr virtual_user_offsets(); + + /** + * Returns a reference to the virtual_system_offsets property implementation of the IDL interface. + * @return pointer to read-only double sequence property virtual_system_offsets. + */ virtual ACS::ROdoubleSeq_ptr virtual_system_offsets(); + + /** + * Returns a reference to the in_use property implementation of the IDL interface. + * @return pointer to read-only boolean property in_use. + */ virtual Management::ROTBoolean_ptr in_use(); + + /** + * Returns a reference to the current_setup property implementation of the IDL interface. + * @return pointer to read-only string property current_setup. + */ virtual ACS::ROstring_ptr current_setup(); protected: - std::atomic<unsigned int> m_physical_axes, m_virtual_axes; - SRTMinorServoSocket* m_socket; - std::string m_servo_name; + /** + * Checks if the socket is connected and if the minor servo system is in a good state. + * @throw MinorServoErrors::MinorServoErrorsEx when the socket is not connected or when the minor servo system is blocked or the drive cabinet is in error state. + */ + void checkLineStatus(); + + /** + * Static function used to retrieve some constants from the component CDB xml schema. + * @param object the instance of this class, used inside the function logic. + * @param constant the name of the constants we want to retrieve from the CDB. + * @throw ComponentErrors::ComponentErrorsEx when the requested value cannot be read from the CDB or when it has a non meaningful value. + * @return a vector of doubles containing the retrieved constants, its length is the same as the number of virtual axes of the servo system. + */ + static std::vector<double> getMotionConstant(SRTBaseMinorServoImpl& object, const std::string& constant); private: - SRTMinorServoSocketConfiguration* m_socket_configuration; + /** + * Resets both the user and the system offsets to 0. This is needed since the Leonardo servo system only tracks a single set of offsets. + * If we lose track of the offsets inside DISCOS (when restarting this component, for example), we need to reset the offsets in order to track them again. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void resetOffsets(); + /** + * Static function used to retrieve a table from the CDB DataBlock directory. Used inside the initialization list. + * @param object the instance of this class, used inside the function logic. + * @param properties_name the name of the block to retrieve as written inside the DataBlock file. + * @throw ComponentErrors::ComponentErrorsEx when the requested value cannot be read from the CDB. + * @return a vector of strings containing the retrieved table fields. + */ + static std::vector<std::string> getPropertiesTable(SRTBaseMinorServoImpl& object, const std::string& properties_name); + + /** + * Attributes. + * Keep the same order for the initialization list. + */ +protected: + /** + * Name of the component. + */ + const std::string m_component_name; + + /** + * Name of the servo system. + */ + const std::string m_servo_name; + + /** + * Dictionary containing the last status retrieved form the servo system. + */ SRTMinorServoAnswerMap m_status; - IRA::CSecureArea<SRTMinorServoAnswerMap>* m_status_securearea; + /** + * Number of virtual axes of the servo system. + */ + const size_t m_virtual_axes; +private: + + /** + * Number of physical axes of the servo system. + */ + const size_t m_physical_axes; + + /** + * Name of the virtual axes of the servo system. + */ + const std::vector<std::string> m_virtual_axes_names; + + /** + * Units of the virtual axes of the servo system. + */ + const std::vector<std::string> m_virtual_axes_units; +protected: + + /** + * Queue of positions assumed by the servo system in time. + */ + SRTMinorServoPositionsQueue m_positions_queue; + + /** + * Minimum ranges of the axes of the servo system. + */ + const std::vector<double> m_min; + + /** + * Maximum ranges of the axes of the servo system. + */ + const std::vector<double> m_max; +private: + /** + * Maximum speeds of the axes of the servo system. + */ + const std::vector<double> m_m_s; + + /** + * Accelerations of the axes of the servo system. + */ + const std::vector<double> m_a; + + /** + * Times to perform a full acceleration ramp from 0 to maximum speed, for each axis. + */ + const std::vector<double> m_r_t; + + /** + * Distances covered by a full acceleration ramp from 0 to maximum speed, for each axis. + */ + const std::vector<double> m_r_d; + + /** + * Current speed of the axes of the servo system. + */ + std::vector<double> m_c_s; + + /** + * Commanded user offsets for each axis of the servo system. + */ std::vector<double> m_user_offsets; - std::vector<double> m_system_offsets; - std::vector<std::string> m_virtual_axes_names; - std::vector<std::string> m_virtual_axes_units; - SRTMinorServoLookupTable m_current_lookup_table; + /** + * Commanded system offsets for each axis of the servo system. + */ + std::vector<double> m_system_offsets; + /** + * Boolean indicating whether the servo system is used in the current focal configuration. + */ std::atomic<Management::TBoolean> m_in_use; + + /** + * Current active setup name. + */ std::string m_current_setup; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_enabled_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus> > m_drive_cabinet_status_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_block_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode> > m_operative_mode_ptr; + /** + * Pointer to the enabled property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_enabled_ptr; + + /** + * Pointer to the drive_cabinet_status property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>> m_drive_cabinet_status_ptr; + + /** + * Pointer to the block property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_block_ptr; + + /** + * Pointer to the operative_mode property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>> m_operative_mode_ptr; + + /** + * Pointer to the physical_axes_enabled property. + */ baci::SmartPropertyPointer<baci::RObooleanSeq> m_physical_axes_enabled_ptr; + + /** + * Pointer to the physical_positions property. + */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_physical_positions_ptr; + + /** + * Pointer to the virtual_axes property. + */ baci::SmartPropertyPointer<baci::ROlong> m_virtual_axes_ptr; + + /** + * Pointer to the plain_virtual_positions property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_plain_virtual_positions_ptr; + + /** + * Pointer to the virtual_positions property. + */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; + + /** + * Pointer to the virtual_offsets property. + */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_offsets_ptr; + + /** + * Pointer to the virtual_user_offsets property. + */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_user_offsets_ptr; + + /** + * Pointer to the virtual_system_offsets property. + */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_system_offsets_ptr; - baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean> > m_in_use_ptr; + + /** + * Pointer to the in_use property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_in_use_ptr; + + /** + * Pointer to the current_setup property. + */ baci::SmartPropertyPointer<baci::ROstring> m_current_setup_ptr; - std::vector<std::string> getPropertiesTable(const std::string& properties_name); - void checkErrors(); + /** + * Table containing the coefficients for the positions calculations. + */ + SRTMinorServoLookupTable m_current_lookup_table; + + /** + * Configuration of the socket object. + */ + const SRTMinorServoSocketConfiguration& m_socket_configuration; +protected: + /** + * Socket object. + */ + SRTMinorServoSocket& m_socket; }; +/** + * MACRO definition of child classes methods. + * This simplifies the declaration since these methods' implementations are the same for both SRTGenericMinorServo and SRTProgramTrackMinorServo classes. + * This was necessary since these are pure virtual methods in POA_MinorServo::SRTGenericMinorServo and POA_MinorServo::SRTProgramTrackMinorServo, + * and even if they are inherited from the SRTBaseMinorServo class they are not seen by the compiler and they must be declared inside the respective classes. + * Take a look to the SRTBaseMinorServoImpl class for more information for each of these methods. + */ +#define METHODS_DECLARATION \ + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }\ + void stop() { SRTBaseMinorServoImpl::stop(); }\ + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }\ + ACS::doubleSeq* calcCoordinates(CORBA::Double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }\ + ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }\ + void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }\ + void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }\ + ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }\ + void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }\ + void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }\ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { SRTBaseMinorServoImpl::getAxesInfo(axes_names_out, axes_units_out); }\ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time) { return SRTBaseMinorServoImpl::getAxesPositions(acs_time); }\ + long getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest) { return SRTBaseMinorServoImpl::getTravelTime(start, dest); }\ + void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) { SRTBaseMinorServoImpl::getAxesRanges(min_ranges_out, max_ranges_out); } + +/** + * MACRO definition of child classes properties methods. + * This simplifies the declaration since these properties' methods implementations are the same for both SRTGenericMinorServo and SRTProgramTrackMinorServo classes. + * This was necessary since these are pure virtual methods in POA_MinorServo::SRTGenericMinorServo and POA_MinorServo::SRTProgramTrackMinorServo, + * and even if they are inherited from the SRTBaseMinorServo class they are not seen by the compiler and they must be declared inside the respective classes. + * Take a look to the SRTBaseMinorServoImpl class for more information for each of these properties methods. + */ +#define PROPERTIES_DECLARATION \ + virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }\ + virtual ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }\ + virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }\ + virtual ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }\ + virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }\ + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }\ + virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }\ + virtual ACS::ROdoubleSeq_ptr plain_virtual_positions() { return SRTBaseMinorServoImpl::plain_virtual_positions(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }\ + virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }\ + virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); } +/** + * This class implements the SRTGenericMinorServoImpl CORBA interface for a generic SRTMinorServo component. + * It inherits from the SRTBaseMinorServoImpl class. + * A SRTGenericMinorServo component does not need to implement any tracking feature. + */ class SRTGenericMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTGenericMinorServo { public: - SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + /** + * Constructor + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + */ + SRTGenericMinorServoImpl(const ACE_CString &component_name, maci::ContainerServices *container_services); + + /** + * Destructor. + */ ~SRTGenericMinorServoImpl(); - void status() { SRTBaseMinorServoImpl::status(); }; - void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; - void stop() { SRTBaseMinorServoImpl::stop(); }; - void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; - void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; - void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); }; - virtual ACS::doubleSeq* calcCoordinates(double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }; - virtual ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }; - virtual void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }; - virtual void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }; - virtual ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }; - virtual void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }; - virtual void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }; - virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) { SRTBaseMinorServoImpl::getAxesInfo(axes_names, axes_units); }; - - virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; - virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; - virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; - virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; - virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }; - virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; - virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }; - virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; - virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }; - virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }; - virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }; - virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); }; + /** + * Status method definition. It simply calls and returns the SRTBaseMinorServoImpl method. + */ + bool status() { return SRTBaseMinorServoImpl::status(); } + + /** + * Setup method definition. It simply calls the SRTBaseMinorServoImpl method. + */ + void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); } + + /** + * Declaration of all the other inherited methods. + */ + METHODS_DECLARATION; + + /** + * Declaration of all the other inherited properties methods. + */ + PROPERTIES_DECLARATION; }; +/** + * This class implements the SRTProgramTrackMinorServoImpl CORBA interface for a tracking-capable SRTMinorServo component. + * It inherits from the SRTBaseMinorServoImpl class. + * A SRTProgramTrackMinorServo component is capable of commanding a trajectory to track to its related minor servo system. + */ class SRTProgramTrackMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTProgramTrackMinorServo { public: - SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices); + /** + * Constructor. + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + * @throw ComponentErrors::ComponentErrorsEx when there has been an issue reading some value from the CDB. + */ + SRTProgramTrackMinorServoImpl(const ACE_CString &component_name, maci::ContainerServices *container_services); + + /** + * Destructor. + */ ~SRTProgramTrackMinorServoImpl(); - void status() { SRTBaseMinorServoImpl::status(); }; - void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }; - void stop() { SRTBaseMinorServoImpl::stop(); }; - void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }; - void offset(const ACS::doubleSeq& offsets) { SRTBaseMinorServoImpl::offset(offsets); }; - void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); }; - virtual ACS::doubleSeq* calcCoordinates(double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }; - virtual ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }; - virtual void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }; - virtual void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }; - virtual ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }; - virtual void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }; - virtual void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }; - virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) { SRTBaseMinorServoImpl::getAxesInfo(axes_names, axes_units); }; - - void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, CORBA::Double start_time, const ACS::doubleSeq& coordinates); - - virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }; - virtual MinorServo::ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }; - virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }; - virtual MinorServo::ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }; - virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }; - virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }; - virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }; - virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }; - virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }; - virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }; - virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }; - virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }; - virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); }; + /** + * Overloaded initialize method. It calls the SRTBaseMinorServoImpl initialize method and performs some other initialization routines. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ + void initialize(); + + /** + * Overloaded status method. It calls the SRTBaseMinorServoImpl status method and performs some other routines. + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware. + */ + bool status(); + + /** + * Overloaded setup method. It calls the SRTBaseMinorServoImpl status method and performs some other routines. + * @param configuration_name the configuration the servo system should assume. + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. + */ + void setup(const char* configuration_name = ""); + + /** + * Declaration of all the other inherited methods. + */ + METHODS_DECLARATION; + + /** + * Loads a set of tracking coordinates to the minor servo system. + * @param trajectory_id the ID of the trajectory. This defaults to UNIX Epoch * 1000 (milliseconds precision) of the starting time of the trajectory. + * @param point_id the ID of the point inside the current trajectory. + * @param point_time the timestamp associated with the given set of tracking coordinates. + * @coordinates the given set of tracking coordinates. + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted. + */ + void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& coordinates); + + /** + * Declaration of all the other inherited properties methods. + */ + PROPERTIES_DECLARATION; + + /** + * Returns a reference to the tracking property implementation of the IDL interface. + * @return pointer to read-only boolean property tracking. + */ + virtual Management::ROTBoolean_ptr tracking(); + + /** + * Returns a reference to the trajectory_id property implementation of the IDL interface. + * @return pointer to read-only long property trajectory_id. + */ + virtual ACS::ROlong_ptr trajectory_id(); + + /** + * Returns a reference to the total_trajectory_points property implementation of the IDL interface. + * @return pointer to read-only long property total_trajectory_points. + */ + virtual ACS::ROlong_ptr total_trajectory_points(); + + /** + * Returns a reference to the remaining_trajectory_points property implementation of the IDL interface. + * @return pointer to read-only long property remaining_trajectory_points. + */ + virtual ACS::ROlong_ptr remaining_trajectory_points(); + +private: + /** + * Queue of positions to be assumed by the servo system when tracking a trajectory. + */ + SRTMinorServoPositionsQueue m_tracking_queue; + + /** + * Tracking delta values for all minor servo system virtual axes. + */ + const std::vector<double> m_tracking_delta; + + /** + * Indicates if the servo system is tracking or not. It is tracking when the position error is lower than the tracking delta for all the virtual axes. + */ + std::atomic<Management::TBoolean> m_tracking; + + /** + * Current trajectory ID. + */ + std::atomic<unsigned int> m_trajectory_id; + + /** + * Total trajectory points of the current trajectory. + */ + std::atomic<unsigned int> m_total_trajectory_points; + + /** + * Remaining trajectory points of the current trajectory. + */ + std::atomic<unsigned int> m_remaining_trajectory_points; + + /** + * Pointer to the tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; + + /** + * Pointer to the trajectory_id property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_trajectory_id_ptr; + + /** + * Pointer to the total_trajectory_points property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_total_trajectory_points_ptr; + + /** + * Pointer to the remaining_trajectory_points property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_remaining_trajectory_points_ptr; }; #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h index 2add0a420..ea428d36b 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -1,49 +1,45 @@ #ifndef _SRTMINORSERVOPARKTHREAD_H_ #define _SRTMINORSERVOPARKTHREAD_H_ -/*************************************************************************************/ -/* OAC Osservatorio Astronomico di Cagliari */ -/* $Id: SRTMinorServoParkThread.h */ -/* */ -/* This code is under GNU General Public Licence (GPL). */ -/* */ -/* Who When What */ -/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ -/*************************************************************************************/ +/** + * SRTMinorServoParkThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ -#include "Common.h" -#include <IRA> +#include "SRTMinorServoCommon.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" +// TODO: fine-tune this with the real hardware. The correct procedure can easily exceed this timeout, it should be increased accordingly. #define PARK_TIMEOUT 60 class SRTMinorServoBossCore; /** - * This class implements a parking thread. This thread is in charge of checking the status of the minor servos parking procedure -*/ + * This class implements a parking thread. This thread is in charge of checking the status of the minor servos parking procedure. + */ class SRTMinorServoParkThread : public ACS::Thread { public: /** - * Constructor(). + * Constructor. * @param name thread name - * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. - * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. + * @param core a reference to the SRTMinorServoBossCore object. + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. */ - SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); /** * Destructor. - */ + */ ~SRTMinorServoParkThread(); - /** + /** * This method is executed once when the thread starts. - */ + */ virtual void onStart(); /** @@ -51,17 +47,31 @@ public: */ virtual void onStop(); - /** - * This method overrides the thread implementation class. - * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ virtual void runLoop(); + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoParkThread"; + private: - std::string m_thread_name; - SRTMinorServoBossCore* m_core; + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + /** + * The current status of the finite-state machine. + */ unsigned int m_status; + + /** + * The starting time of the park procedure. Used to check if we ran out of time. + */ double m_start_time; }; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h new file mode 100644 index 000000000..0a00a84b0 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h @@ -0,0 +1,96 @@ +#ifndef _SRTMINORSERVOSCANTHREAD_H_ +#define _SRTMINORSERVOSCANTHREAD_H_ + +/** + * SRTMinorServoScanThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SRTMinorServoCommon.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" +#include "SRTMinorServoContainers.h" + + +class SRTMinorServoBossCore; + + +/** + * This class implements a scan thread. This thread is in charge of positioning the minor servos during a scan operation. + */ +class SRTMinorServoScanThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoScanThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoScanThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoScanThread"; + +private: + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current trajectory ID. + */ + unsigned int m_trajectory_id; + + /** + * The current trajectory point ID. + */ + unsigned int m_point_id; + + /** + * The current trajectory point time. + */ + ACS::Time m_point_time; + + /** + * Boolean which indicates if the scan thread exited with an error or not. + */ + bool m_error; + + /** + * The queue of offsets to be added to the original tracking coordinates. + */ + MinorServo::SRTMinorServoPositionsQueue m_scan_offsets; + + /** + * The coordinates to which the minor servo involved in the scan was positioned before starting the scan itself. + */ + ACS::doubleSeq m_starting_coordinates; +}; + +#endif /*_SRTMINORSERVOSCANTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h index 476bdace8..3413fc565 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -1,49 +1,44 @@ #ifndef _SRTMINORSERVOSETUPTHREAD_H_ #define _SRTMINORSERVOSETUPTHREAD_H_ -/*************************************************************************************/ -/* OAC Osservatorio Astronomico di Cagliari */ -/* $Id: SRTMinorServoSetupThread.h */ -/* */ -/* This code is under GNU General Public Licence (GPL). */ -/* */ -/* Who When What */ -/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ -/*************************************************************************************/ - -#include "Common.h" -#include <IRA> +/** + * SRTMinorServoSetupThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SRTMinorServoCommon.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" +// TODO: fine-tune this with the real hardware. The correct procedure can easily exceed this timeout, it should be increased accordingly. #define SETUP_TIMEOUT 60 class SRTMinorServoBossCore; /** - * This class implements a setup thread. This thread is in charge of checking the status of the minor servos setup procedure -*/ + * This class implements a setup thread. This thread is in charge of checking the status of the minor servos setup procedure. + */ class SRTMinorServoSetupThread : public ACS::Thread { public: /** - * Constructor(). + * Constructor. * @param name thread name - * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. - * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. - */ - SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); /** * Destructor. - */ + */ ~SRTMinorServoSetupThread(); - /** + /** * This method is executed once when the thread starts. - */ + */ virtual void onStart(); /** @@ -51,19 +46,41 @@ public: */ virtual void onStop(); - /** - * This method overrides the thread implementation class. - * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ virtual void runLoop(); + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoSetupThread"; + private: - std::string m_thread_name; - SRTMinorServoBossCore* m_core; + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + /** + * The current status of the finite-state machine. + */ unsigned int m_status; + + /** + * The starting time of the park procedure. Used to check if we ran out of time. + */ double m_start_time; + + /** + * The requested Leonardo minor servo focal configuration. + */ std::string m_LDO_configuration; + + /** + * The gregorian cover position to be reached for the requested focal configuration. + */ MinorServo::SRTMinorServoGregorianCoverStatus m_gregorian_cover_position; }; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h deleted file mode 100644 index a25366e05..000000000 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSocket.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef __SRTMINORSERVOSOCKET_H__ -#define __SRTMINORSERVOSOCKET_H__ - -/** - * SRTMinorServoSocket.h - * 2023/02/23 - * Giuseppe Carboni (giuseppe.carboni@inaf.it) - */ - -#include "Common.h" -#include <IRA> -#include <mutex> -#include <ComponentErrors.h> -#include <optional> -#include <functional> -#include "SRTMinorServoCommandLibrary.h" - - -#define TIMEOUT 0.1 -#define CONFIG_DOMAIN "alma/" -#define CONFIG_DIRNAME "/MINORSERVO/Socket" - - -using namespace IRA; - -class SRTMinorServoSocket: public IRA::CSocket -{ -// Declare the SRTMinorServoSocketTest class as friend in order for it to have access to destroyInstance for testing purposes -friend class SRTMinorServoSocketTest; -friend class SRPProgramTrackTest; -friend class DerotatorProgramTrackTest; -friend class CombinedProgramTrackTest; -friend class ReadStatusOnlyTest; - -public: - /** - * Calls the constructor and returns the singleton socket instance - * @param ip_address the IP address to which the socket will connect - * @param port the port to which the socket will connect - * @param timeout the timeout, in seconds, for the communication to be considered failed - * @return the singleton socket instance, connected to the given IP address and port, by reference - * @throw ComponentErrors::SocketErrorExImpl when the user calls this method a second time with different IP address and port arguments - */ - static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=TIMEOUT); - - /** - * Returns the previously generated singleton socket instance - * @return the singleton socket instance, by reference - * @throw ComponentErrors::SocketErrorExImpl when the user calls this method when the instance has not been generated yet - */ - static SRTMinorServoSocket& getInstance(); - - /** - * Sends a command on the socket and returns the received answer, if any - * @param command the command to be sent over the socket - * @return the received answer to the given command - */ - SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); - - /** - * Copy constructor operator disabled by default - */ - SRTMinorServoSocket(SRTMinorServoSocket const&) = delete; - - /** - * Copy assignment operator disabled by default - */ - void operator=(SRTMinorServoSocket const&) = delete; - -protected: - /* - * Force the destruction of the singleton socket object. Only used in tests - */ - static void destroyInstance(); - -private: - /* - * Constructor method. Generates the singleton socket instance - * @param ip_address the IP address to which the socket will connect - * @param port the port to which the socket will connect - * @param timeout the timeout, in seconds, for the communication to be considered failed - */ - SRTMinorServoSocket(std::string ip_address, int port, double timeout); - - /* - * Destructor method. Closes the socket upon destruction - */ - ~SRTMinorServoSocket(); - - /* - * Instance of the socket. By default it gets initialized to a null pointer - */ - inline static SRTMinorServoSocket* m_instance = nullptr; - - /* - * IP address and port of the socket. Being object members their values only exist when a singleton socket object is created correctly - */ - std::string m_address; - int m_port; - - /* - * Timeout for communication operations - */ - double m_timeout; - - /* - * Mutex object used to syncronize communications and prevent collisions between multiple threads - */ - std::mutex m_mutex; - - /* - * Library mutex, used only to synchronize the getInstance methods - */ - static std::mutex c_mutex; - - /* - * Socket status enumerator - */ - enum socket_status { READY, NOTRDY, BROKEN, TOUT, BUSY } m_socket_status; - - /* - * Socket error variable. This stores an error condition in case it arises - */ - IRA::CError m_error; -}; - - -class SRTMinorServoSocketConfiguration -{ -public: - static SRTMinorServoSocketConfiguration& getInstance(maci::ContainerServices* containerServices); - - SRTMinorServoSocketConfiguration(SRTMinorServoSocketConfiguration const&) = delete; - void operator=(SRTMinorServoSocketConfiguration const&) = delete; - - std::string m_ip_address; - int m_port; - double m_timeout; - -private: - SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices); - ~SRTMinorServoSocketConfiguration(); - - inline static SRTMinorServoSocketConfiguration* m_instance = nullptr; -}; - -#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h index 546d9e603..b5e55b96a 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -1,48 +1,43 @@ #ifndef _SRTMINORSERVOSTATUSTHREAD_H_ #define _SRTMINORSERVOSTATUSTHREAD_H_ -/*************************************************************************************/ -/* OAC Osservatorio Astronomico di Cagliari */ -/* $Id: SRTMinorServoStatusThread.h */ -/* */ -/* This code is under GNU General Public Licence (GPL). */ -/* */ -/* Who When What */ -/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 14/09/2023 Creation */ -/*************************************************************************************/ +/** + * SRTMinorServoStatusThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ -#include "Common.h" -#include <IRA> +#include "SRTMinorServoCommon.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoSocket.h" #include "SRTMinorServoBossCore.h" +#include <acsncSimpleSupplier.h> class SRTMinorServoBossCore; /** - * This class implements a status thread. This thread is in charge of checking the status of -*/ + * This class implements a status thread. This thread is in charge of updating the status of the minor servo components. + */ class SRTMinorServoStatusThread : public ACS::Thread { public: /** - * Constructor(). + * Constructor. * @param name thread name - * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. - * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. - */ - SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); /** * Destructor. - */ + */ ~SRTMinorServoStatusThread(); - /** + /** * This method is executed once when the thread starts. - */ + */ virtual void onStart(); /** @@ -50,16 +45,38 @@ public: */ virtual void onStop(); - /** - * This method overrides the thread implementation class. - * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ virtual void runLoop(); + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoStatusThread"; + private: - std::string m_thread_name; - SRTMinorServoBossCore* m_core; - double m_sleep_time; + /** + * Method that publishes the status onto the ACS notification channel. + */ + void publish(); + + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The sleeping time of the thread. + * The thread should be cycling at a constant rate, therefore the inner sleeping time is always updated taking into account this and the thread execution time. + */ + ACS::TimeInterval m_sleep_time; + + /** + * The ACS notification channel simple supplier object. + */ + nc::SimpleSupplier* m_notification_channel; }; #endif /*_SRTMINORSERVOSTATUSTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h index 02a79f468..9684e0153 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h @@ -1,56 +1,42 @@ #ifndef _SRTMINORSERVOTRACKINGTHREAD_H_ #define _SRTMINORSERVOTRACKINGTHREAD_H_ -/*************************************************************************************/ -/* OAC Osservatorio Astronomico di Cagliari */ -/* $Id: SRTMinorServoTrackingThread.h */ -/* */ -/* This code is under GNU General Public Licence (GPL). */ -/* */ -/* Who When What */ -/* Giuseppe Carboni (giuseppe.carboni@inaf.it) 30/12/2023 Creation */ -/*************************************************************************************/ - -#include "Common.h" -#include <IRA> +/** + * SRTMinorServoTrackingThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SRTMinorServoCommon.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" -#include <AntennaBossC.h> -#include <LogFilter.h> -#include <slamac.h> - -_IRA_LOGFILTER_IMPORT; - -#define TRACKING_FUTURE_TIME 2 //2 seconds -#define TRACKING_TIMEGAP 0.2 //200 milliseconds class SRTMinorServoBossCore; /** * This class implements a tracking thread. This thread is in charge of positioning the minor servos in time. -*/ + */ class SRTMinorServoTrackingThread : public ACS::Thread { public: /** - * Constructor(). + * Constructor. * @param name thread name - * @param responseTime thread's heartbeat response time in 100ns unit. Default value is 1s. - * @param sleepTime thread's sleep time in 100ns unit. Default value is 100ms. - */ - SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleepTime=ThreadBase::defaultSleepTime); + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); /** * Destructor. - */ + */ ~SRTMinorServoTrackingThread(); - /** + /** * This method is executed once when the thread starts. - */ + */ virtual void onStart(); /** @@ -58,21 +44,42 @@ public: */ virtual void onStop(); - /** - * This method overrides the thread implementation class. - * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. */ virtual void runLoop(); + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoTrackingThread"; + private: - double getElevation(double time); - void resetTracking(); - - std::string m_thread_name; - SRTMinorServoBossCore* m_core; - Antenna::AntennaBoss_var m_antennaBoss; - unsigned int m_point_id, m_trajectory_id; - double m_point_time; + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current trajectory ID. + */ + unsigned int m_trajectory_id; + + /** + * The current trajectory point ID. + */ + unsigned int m_point_id; + + /** + * The current trajectory point time. + */ + ACS::Time m_point_time; + + /** + * Boolean which indicates if the tracking thread exited with an error or not. + */ + bool m_error; }; #endif /*_SRTMINORSERVOTRACKINGTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h index 1421fd156..0dc0dd252 100644 --- a/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h +++ b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h @@ -1,12 +1,13 @@ #ifndef __SUPPRESSWARNINGS_H__ #define __SUPPRESSWARNINGS_H__ +/** + * SuppressWarnings.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + #include <Cplusplus11Helper.h> C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wsequence-point") C11_IGNORE_WARNING("-Wdeprecated-declarations") -C11_IGNORE_WARNING("-Wmisleading-indentation") -C11_IGNORE_WARNING("-Wcatch-value=") -C11_IGNORE_WARNING_POP -#include <IRA> - #endif diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile index d32729457..c11de1645 100644 --- a/SRT/Servers/SRTMinorServo/src/Makefile +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -9,38 +9,36 @@ EXECUTABLES = EXECUTABLES_L = +PY_SCRIPTS = #_cover + # On-Line Database Files # ---------------------- -CDB_SCHEMAS = SRTMinorServoBoss SRTMinorServo SRTMinorServoSocket SRTMinorServoProperties SRTMinorServoLookupTable +CDB_SCHEMAS = SRTMinorServoBoss SRTMinorServo SRTMinorServoSocketConfiguration SRTMinorServoProperties SRTMinorServoLookupTable # ---------------------------- # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoSocket SRTGenericMinorServoImpl SRTProgramTrackMinorServoImpl SRTMinorServoBossImpl - -SRTMinorServoSocket_OBJECTS = SRTMinorServoSocket -SRTMinorServoSocket_LIBS = IRALibrary ComponentErrors SRTMinorServoCommandLibrary -SRTMinorServoSocket_CFLAGS = -std=c++17 - -SRTMinorServoBossImpl_OBJECTS = SRTMinorServoStatusThread SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoTrackingThread SRTMinorServoBossCore SRTMinorServoBossImpl -SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary AntennaBossStubs SRTMinorServoSocket ParserErrors DiscosVersion -SRTMinorServoBossImpl_CFLAGS = -std=c++17 -SRTMinorServoBossCore_CFLAGS = -std=c++17 -SRTMinorServoStatusThread_CFLAGS = -std=c++17 -SRTMinorServoSetupThread_CFLAGS = -std=c++17 -SRTMinorServoParkThread_CFLAGS = -std=c++17 -SRTMinorServoTrackingThread_CFLAGS = -std=c++17 -SRTMinorServoTrackingThread_LIBS = IRALibrary +LIBRARIES = SRTGenericMinorServoImpl SRTProgramTrackMinorServoImpl SRTMinorServoBossImpl -SRTGenericMinorServoImpl_OBJECTS = SRTGenericMinorServoImpl SRTBaseMinorServoImpl -SRTGenericMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion -SRTGenericMinorServoImpl_CFLAGS = -std=c++17 +USER_CFLAGS = -SRTProgramTrackMinorServoImpl_OBJECTS = SRTProgramTrackMinorServoImpl SRTBaseMinorServoImpl -SRTProgramTrackMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocket DiscosVersion -SRTProgramTrackMinorServoImpl_CFLAGS = -std=c++17 +SRTMinorServoBossImpl_OBJECTS = SRTMinorServoBossCore SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoTrackingThread SRTMinorServoScanThread SRTMinorServoBossImpl SRTMinorServoStatusThread +SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary AntennaBossStubs SRTMinorServoSocketLibrary ParserErrors DiscosVersion acsnc +SRTMinorServoBossImpl_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoBossCore_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoStatusThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoSetupThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoParkThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoTrackingThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoScanThread_CFLAGS = -std=c++17 -fconcepts -SRTBaseMinorServoImpl_CFLAGS = -std=c++17 +SRTBaseMinorServoImpl_CFLAGS = -std=c++17 -fconcepts +SRTGenericMinorServoImpl_OBJECTS = SRTGenericMinorServoImpl SRTBaseMinorServoImpl +SRTGenericMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary DiscosVersion +SRTGenericMinorServoImpl_CFLAGS = -std=c++17 -fconcepts +SRTProgramTrackMinorServoImpl_OBJECTS = SRTProgramTrackMinorServoImpl SRTBaseMinorServoImpl +SRTProgramTrackMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary DiscosVersion +SRTProgramTrackMinorServoImpl_CFLAGS = -std=c++17 -fconcepts # ---------------------------------------------------------------------- diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index 50ac89407..81c92b42a 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -1,9 +1,28 @@ #include "SRTMinorServoImpl.h" -using namespace maci; - -SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : - CharacteristicComponentImpl(componentName, containerServices), +using namespace MinorServo; + +SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, maci::ContainerServices* container_services): + CharacteristicComponentImpl(component_name, container_services), + m_component_name(std::string(component_name.c_str())), + m_servo_name(std::string(strchr(component_name.c_str(), '/') + 1)), + m_status(), + m_virtual_axes(getCDBValue<size_t>(container_services, "virtual_axes")), + m_physical_axes(getCDBValue<size_t>(container_services, "physical_axes")), + m_virtual_axes_names(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_positions")), + m_virtual_axes_units(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_axes_units")), + m_positions_queue(5 * 60 * int(1 / getCDBValue<double>(container_services, "status_thread_period", "/MINORSERVO/Boss")), m_virtual_axes), + m_min(SRTBaseMinorServoImpl::getMotionConstant(*this, "min_range")), + m_max(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_range")), + m_m_s(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_speed")), + m_a(SRTBaseMinorServoImpl::getMotionConstant(*this, "acceleration")), + m_r_t(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_times")), + m_r_d(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_distances")), + m_c_s(m_virtual_axes, 0.0), + m_user_offsets(m_virtual_axes, 0.0), + m_system_offsets(m_virtual_axes, 0.0), + m_in_use(Management::MNG_FALSE), + m_current_setup(""), m_enabled_ptr(this), m_drive_cabinet_status_ptr(this), m_block_ptr(this), @@ -11,16 +30,17 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString &componentName, m m_physical_axes_enabled_ptr(this), m_physical_positions_ptr(this), m_virtual_axes_ptr(this), + m_plain_virtual_positions_ptr(this), m_virtual_positions_ptr(this), m_virtual_offsets_ptr(this), m_virtual_user_offsets_ptr(this), m_virtual_system_offsets_ptr(this), m_in_use_ptr(this), - m_current_setup_ptr(this) + m_current_setup_ptr(this), + m_current_lookup_table(), + m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(container_services)), + m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)) { - std::string component_name(componentName.c_str()); - m_servo_name = component_name.substr(component_name.rfind('/') + 1); - AUTO_TRACE(m_servo_name + "::SRTBaseMinorServoImpl()"); } @@ -33,136 +53,55 @@ void SRTBaseMinorServoImpl::initialize() { AUTO_TRACE(m_servo_name + "::initialize()"); - unsigned int tempvar; - if(!IRA::CIRATools::getDBValue(getContainerServices(), "physical_axes", tempvar)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setFieldName("physical_axes"); - throw impl; - } - m_physical_axes = tempvar; - if(!IRA::CIRATools::getDBValue(getContainerServices(), "virtual_axes", tempvar)) + try { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setFieldName("virtual_axes"); - throw impl; - } - m_virtual_axes = tempvar; - - // Initialize offsets - m_user_offsets = std::vector<double>(m_virtual_axes, 0.0); - m_system_offsets = std::vector<double>(m_virtual_axes, 0.0); - - m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(getContainerServices()); - m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); - - m_status = SRTMinorServoAnswerMap(); - m_socket->sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); - m_status_securearea = new IRA::CSecureArea<SRTMinorServoAnswerMap>(&m_status); - + m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "enabled", "ENABLED", m_status), true); + m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoCabinetStatus>(m_servo_name, "drive_cabinet_status", "STATUS", m_status), true); + m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "block", "BLOCK", m_status), true); + m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((m_component_name + ":operative_mode").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoOperativeMode>(m_servo_name, "operative_mode", "OPERATIVE_MODE", m_status), true); + m_physical_axes_enabled_ptr = new baci::RObooleanSeq((m_component_name + ":physical_axes_enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::booleanSeq>(m_servo_name, "physical_axes_enabled", SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_axes_enabled"), m_status), true); + m_physical_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":physical_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "physical_positions", SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_positions"), m_status), true); + m_virtual_axes_ptr = new baci::ROlong((m_component_name + ":virtual_axes").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, const size_t>(m_virtual_axes), true); + m_plain_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":plain_virtual_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_positions", m_virtual_axes_names, m_status), true); + std::vector<std::string> virtual_offsets = SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets"); + m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), + new MSVirtualPositionsDevIO(m_servo_name, m_virtual_axes_names, virtual_offsets, m_status), true); + m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_offsets", virtual_offsets, m_status), true); + m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_user_offsets").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_user_offsets), true); + m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_system_offsets").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_system_offsets), true); + m_in_use_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":in_use").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_in_use), true); + m_current_setup_ptr = new baci::ROstring((m_component_name + ":current_setup").c_str(), getComponent(), + new MSGenericDevIO<ACE_CString, std::string>(m_current_setup), true); + } + catch(std::bad_alloc& ba) + { + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, (m_servo_name + "::initialize()").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + // Try to read the current status of the servo try { - std::string component_name = getContainerServices()->getName().c_str(); - - SRTMinorServoDevIOInfo dev_io_info; - dev_io_info.prefix = m_servo_name + "_"; - dev_io_info.secure_area = m_status_securearea; - - dev_io_info.property_name = "enabled"; - dev_io_info.property_fields = std::vector<std::string>{ "ENABLED" }; - m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":enabled").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); - - dev_io_info.property_name = "drive_cabinet_status"; - dev_io_info.property_fields = std::vector<std::string>{ "STATUS" }; - m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((component_name + ":drive_cabinet_status").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoCabinetStatus>(dev_io_info), true); - - dev_io_info.property_name = "block"; - dev_io_info.property_fields = std::vector<std::string>{ "BLOCK" }; - m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":block").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); - - dev_io_info.property_name = "operative_mode"; - dev_io_info.property_fields = std::vector<std::string>{ "OPERATIVE_MODE" }; - m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((component_name + ":operative_mode").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoOperativeMode>(dev_io_info), true); - - dev_io_info.property_name = "physical_axes_enabled"; - dev_io_info.property_fields = getPropertiesTable("physical_axes_enabled"); - if(dev_io_info.property_fields.size() != m_physical_axes) - { - // Wrong length for physical_axes_enabled property - _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setValueName(dev_io_info.property_name.c_str()); - impl.setValueLimit(m_physical_axes); - throw impl; - } - m_physical_axes_enabled_ptr = new baci::RObooleanSeq((component_name + ":physical_axes_enabled").c_str(), getComponent(), new MSDevIO<ACS::booleanSeq>(dev_io_info), true); - - dev_io_info.property_name = "physical_positions"; - dev_io_info.property_fields = getPropertiesTable("physical_positions"); - if(dev_io_info.property_fields.size() != m_physical_axes) - { - // Wrong length for physical_positions property - _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setValueName(dev_io_info.property_name.c_str()); - impl.setValueLimit(m_physical_axes); - throw impl; - } - m_physical_positions_ptr = new baci::ROdoubleSeq((component_name + ":physical_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); - - m_virtual_axes_ptr = new baci::ROlong((component_name + ":virtual_axes").c_str(), getComponent(), new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int> >(&m_virtual_axes), true); - - m_virtual_axes_names = getPropertiesTable("virtual_positions"); - for(const std::string& axis_name : m_virtual_axes_names) - { - if(axis_name.at(0) == 'T') - { - m_virtual_axes_units.push_back("mm"); - } - else if(axis_name.at(0) == 'R') - { - m_virtual_axes_units.push_back("degrees"); - } - else - { - m_virtual_axes_units.push_back("unknown"); - } - } - - dev_io_info.property_name = "virtual_positions"; - dev_io_info.property_fields = m_virtual_axes_names; - if(m_virtual_axes_names.size() != m_virtual_axes) - { - // Wrong length for virtual_axes property - _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setValueName(dev_io_info.property_name.c_str()); - impl.setValueLimit(m_virtual_axes); - throw impl; - } - m_virtual_positions_ptr = new baci::ROdoubleSeq((component_name + ":virtual_positions").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); - - dev_io_info.property_name = "virtual_offsets"; - dev_io_info.property_fields = getPropertiesTable("virtual_offsets"); - if(dev_io_info.property_fields.size() != m_virtual_axes) - { - // Wrong length for virtual_offsets property - _EXCPT(ComponentErrors::ValueOutofRangeExImpl, impl, (m_servo_name + "::initialize()").c_str()); - impl.setValueName(dev_io_info.property_name.c_str()); - impl.setValueLimit(m_virtual_axes); - throw impl; - } - m_virtual_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_offsets").c_str(), getComponent(), new MSDevIO<ACS::doubleSeq>(dev_io_info), true); - m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_user_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double> >(&m_user_offsets), true); - m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((component_name + ":virtual_system_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double> >(&m_system_offsets), true); - - m_in_use_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":in_use").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_in_use), true); - m_current_setup_ptr = new baci::ROstring((component_name + ":current_setup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(&m_current_setup), true); + status(); } - catch(std::bad_alloc& ex) + catch(...) { - _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl, std::string(m_servo_name + "::initialize()").c_str()); + // This block is necessary since the socket might not be connected yet. If the Leonardo system is not reachable the status(); call will fail, but we want to instantiate the component anyway + // A non connected socket will try to connect every time a new command is sent, therefore the status thread will establish the connection as soon as possible. } - - m_current_setup = ""; - m_in_use = Management::MNG_FALSE; } void SRTBaseMinorServoImpl::execute() @@ -180,89 +119,218 @@ void SRTBaseMinorServoImpl::aboutToAbort() AUTO_TRACE(m_servo_name + "::aboutToAbort()"); } -void SRTBaseMinorServoImpl::status() +/////////////////// PUBLIC methods +bool SRTBaseMinorServoImpl::status() { AUTO_TRACE(m_servo_name + "::status()"); - IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> area = m_status_securearea->Get(); - m_socket->sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), *area); + // We don't check if the socket is connected here since a status command will try to reconnect it automatically + try + { + m_socket.sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); + + // We need to call this here since we might just have established the connection, therefore we might not know how the Leonardo offsets are split between user and system + // This might eventually throw MinorServoErrorsEx + resetOffsets(); + + ACSErr::Completion_var comp; + ACS::doubleSeq current_point = *virtual_positions()->get_sync(comp.out()); + + // Calculate the current speed of the axes + try + { + std::pair<ACS::Time, const std::vector<double>> previous_point = m_positions_queue.get(m_status.getTimestamp()); + for(size_t i = 0; i < m_virtual_axes; i++) + { + m_c_s[i] = (current_point[i] - previous_point.second[i]) * ((double(m_status.getTimestamp() - previous_point.first)) / 10000000); + } + } + catch(...) + { + // Empty queue, first reading, skip the speed calculation + } + + m_positions_queue.put(m_status.getTimestamp(), current_point); + } + catch(...) + { + return false; + } + + return true; } void SRTBaseMinorServoImpl::stow(CORBA::Long stow_position) { AUTO_TRACE(m_servo_name + "::stow()"); - checkErrors(); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::stow(m_servo_name, (unsigned int)stow_position)); + checkLineStatus(); - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow(m_servo_name, (unsigned int)stow_position)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::stow()").c_str()); - impl.setReason("Received NAK in response to a STOW command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stow()").c_str()); + ex.setReason("Received NAK in response to a STOW command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } void SRTBaseMinorServoImpl::stop() { AUTO_TRACE(m_servo_name + "::stop()"); - checkErrors(); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::stop(m_servo_name)); + checkLineStatus(); - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stop(m_servo_name)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::stop()").c_str()); - impl.setReason("Received NAK in response to a STOP command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stop()").c_str()); + ex.setReason("Received NAK in response to a STOP command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) { AUTO_TRACE(m_servo_name + "::preset()"); - checkErrors(); + + checkLineStatus(); if(virtual_coordinates.length() != m_virtual_axes) { - _EXCPT(MinorServoErrors::PositioningErrorExImpl, impl, (m_servo_name + "::preset()").c_str()); - impl.addData("Reason", "Wrong number of values for this servo system!"); - throw impl; + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.addData("Reason", "Wrong number of values for this servo system."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - std::vector<double> coords(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::preset(m_servo_name, coords)); + // Read the current servo offsets + ACSErr::Completion_var comp; + ACS::doubleSeq offsets = *virtual_offsets()->get_sync(comp.out()); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + if(coordinates[i] + offsets[i] < m_min[i] || coordinates[i] + offsets[i] > m_max[i]) + { + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.addData("Reason", "Resulting position out of range, check the offsets."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::preset(m_servo_name, coordinates)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::preset()").c_str()); - impl.setReason("Received NAK in response to a PRESET command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.setReason("Received NAK in response to a PRESET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } -void SRTBaseMinorServoImpl::offset(const ACS::doubleSeq& virtual_offsets) +void SRTBaseMinorServoImpl::setup(const char* configuration_name) { - AUTO_TRACE(m_servo_name + "::offset()"); - checkErrors(); + AUTO_TRACE(m_servo_name + "::setup()"); + m_in_use.store(Management::MNG_FALSE); + m_current_lookup_table.clear(); - if(virtual_offsets.length() != m_virtual_axes) + m_current_setup = ""; + std::string setup_name(configuration_name); + std::transform(setup_name.begin(), setup_name.end(), setup_name.begin(), ::toupper); + + if(setup_name.empty()) + { + return; + } + + IRA::CDBTable table(getContainerServices(), setup_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "axis", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field axis", 0); + } + if(!table.addField(error, "coefficients", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field coefficients", 0); + } + if(!error.isNoError()) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::offset()").c_str()); - impl.addData("Reason", "Wrong number of values for this servo system!"); - throw impl; + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, ex, error); + ex.setCode(error.getErrorCode()); + ex.setDescription((const char *)error.getDescription()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, ex, error); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + std::string axis = std::string(table["axis"]->asString()); - std::vector<double> offsets(virtual_offsets.get_buffer(), virtual_offsets.get_buffer() + virtual_offsets.length()); + std::vector<double> coefficients; - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + std::string coefficient_str; + std::stringstream stream(std::string(table["coefficients"]->asString())); - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + while(std::getline(stream, coefficient_str, ',')) + { + coefficients.push_back(std::stod(std::regex_replace(coefficient_str, std::regex("\\s+"), ""))); + } + + m_current_lookup_table[axis] = coefficients; + } + table.closeTable(); + + if(m_current_lookup_table.size() > 0) + { + m_current_setup = setup_name; + clearUserOffsets(); + clearSystemOffsets(); + m_in_use.store(Management::MNG_TRUE); + } +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) +{ + AUTO_TRACE(m_servo_name + "::calcCoordinates()"); + + if(m_in_use.load() == Management::MNG_TRUE) + { + ACS::doubleSeq_var coordinates = new ACS::doubleSeq; + coordinates->length(m_virtual_axes); + + for(size_t axis = 0; axis < m_virtual_axes; axis++) + { + std::vector<double> coefficients = m_current_lookup_table.at(m_virtual_axes_names[axis]); + + double coordinate = 0; + + for(size_t index = 0; index < coefficients.size(); index++) + { + coordinate += coefficients[index] * pow(elevation, index); + } + + coordinates[axis] = coordinate; + } + + return coordinates._retn(); + } + else { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::offset()").c_str()); - impl.setReason("Received NAK in response to an OFFSET command!"); - throw impl; + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::calcCoordinates()").c_str()); + ex.setReason("Unable to calculate the coordinates since the servo system has not been configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } @@ -272,17 +340,15 @@ ACS::doubleSeq* SRTBaseMinorServoImpl::getUserOffsets() ACS::doubleSeq_var offsets = new ACS::doubleSeq; offsets->length(m_user_offsets.size()); - for(size_t i = 0; i < m_user_offsets.size(); i++) - { - offsets[i] = m_user_offsets[i]; - } + std::copy(m_user_offsets.begin(), m_user_offsets.end(), offsets->begin()); return offsets._retn(); } void SRTBaseMinorServoImpl::setUserOffset(const char* axis_name, CORBA::Double offset) { AUTO_TRACE(m_servo_name + "::setUserOffset()"); - checkErrors(); + + checkLineStatus(); std::string axis(axis_name); std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); @@ -292,51 +358,57 @@ void SRTBaseMinorServoImpl::setUserOffset(const char* axis_name, CORBA::Double o axis = "ROTATION"; } - unsigned int index = std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis) - m_virtual_axes_names.begin(); + unsigned int index = std::distance(m_virtual_axes_names.begin(), std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis)); - try + if(index == m_virtual_axes) { - m_user_offsets.at(index) = (double)offset; - } - catch(std::out_of_range const& ex) - { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::setUserOffset()").c_str()); - impl.addData("Reason", ("Unknown axis '" + axis + "'!").c_str()); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", ("Unknown axis '" + axis + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - // Update the offsets + // Calculate the new offsets std::vector<double> offsets(m_virtual_axes, 0); std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + offsets[index] = m_system_offsets[index] + offset; - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + if(offsets[index] < m_min[index] || offsets[index] > m_max[index]) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", "Sum of user and system offsets out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::setUserOffset()").c_str()); - impl.setReason("Received NAK in response to an OFFSET command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } + + m_user_offsets[index] = offset; } void SRTBaseMinorServoImpl::clearUserOffsets() { AUTO_TRACE(m_servo_name + "::clearUserOffsets()"); - checkErrors(); + + checkLineStatus(); m_user_offsets = std::vector<double>(m_virtual_axes, 0.0); - // Update the offsets std::vector<double> offsets(m_virtual_axes, 0); std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); - - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::clearUserOffset()").c_str()); - impl.setReason("Received NAK in response to an OFFSET command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearUserOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } @@ -346,17 +418,15 @@ ACS::doubleSeq* SRTBaseMinorServoImpl::getSystemOffsets() ACS::doubleSeq_var offsets = new ACS::doubleSeq; offsets->length(m_system_offsets.size()); - for(size_t i = 0; i < m_system_offsets.size(); i++) - { - offsets[i] = m_system_offsets[i]; - } + std::copy(m_system_offsets.begin(), m_system_offsets.end(), offsets->begin()); return offsets._retn(); } void SRTBaseMinorServoImpl::setSystemOffset(const char* axis_name, CORBA::Double offset) { AUTO_TRACE(m_servo_name + "::setSystemOffset()"); - checkErrors(); + + checkLineStatus(); std::string axis(axis_name); std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); @@ -366,37 +436,45 @@ void SRTBaseMinorServoImpl::setSystemOffset(const char* axis_name, CORBA::Double axis = "ROTATION"; } - unsigned int index = std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis) - m_virtual_axes_names.begin(); + unsigned int index = std::distance(m_virtual_axes_names.begin(), std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis)); - try + if(index == m_virtual_axes) { - m_system_offsets.at(index) = (double)offset; - } - catch(std::out_of_range const& ex) - { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, (m_servo_name + "::setSystemOffset()").c_str()); - impl.addData("Reason", ("Unknown axis '" + axis + "'!").c_str()); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setSystemOffset()").c_str()); + ex.addData("Reason", ("Unknown axis '" + axis + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - // Update the offsets + // Calculate the new offsets std::vector<double> offsets(m_virtual_axes, 0); std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + offsets[index] = m_user_offsets[index] + offset; - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); + if(offsets[index] < m_min[index] || offsets[index] > m_max[index]) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", "Sum of user and system offsets out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::setSystemOffset()").c_str()); - impl.setReason("Received NAK in response to an OFFSET command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setSystemOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } + + m_system_offsets[index] = offset; } void SRTBaseMinorServoImpl::clearSystemOffsets() { AUTO_TRACE(m_servo_name + "::clearSystemOffsets()"); - checkErrors(); + + checkLineStatus(); m_system_offsets = std::vector<double>(m_virtual_axes, 0.0); @@ -404,143 +482,263 @@ void SRTBaseMinorServoImpl::clearSystemOffsets() std::vector<double> offsets(m_virtual_axes, 0); std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)); - - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::clearSystemOffset()").c_str()); - impl.setReason("Received NAK in response to an OFFSET command!"); - throw impl; + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearSystemOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } -void SRTBaseMinorServoImpl::setup(const char* configuration_name) +void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { - AUTO_TRACE(m_servo_name + "::setup()"); - m_in_use = Management::MNG_FALSE; - m_current_lookup_table.clear(); + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesInfo()"); - m_current_setup = ""; - std::string setup_name(configuration_name); - std::transform(setup_name.begin(), setup_name.end(), setup_name.begin(), ::toupper); + ACS::stringSeq_var axes_names = new ACS::stringSeq; + ACS::stringSeq_var axes_units = new ACS::stringSeq; + axes_names->length(m_virtual_axes); + axes_units->length(m_virtual_axes); - if(setup_name.empty()) + for(size_t i = 0; i < m_virtual_axes; i++) { - return; + axes_names[i] = (m_servo_name + "_" + m_virtual_axes_names[i] == "ROTATION" ? "RZ" : m_virtual_axes_names[i]).c_str(); + axes_units[i] = m_virtual_axes_units[i].c_str(); } - IRA::CDBTable table(getContainerServices(), setup_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); - IRA::CError error; - error.Reset(); + axes_names_out = axes_names._retn(); + axes_units_out = axes_units._retn(); +} - if(!table.addField(error, "axis", IRA::CDataField::STRING)) +ACS::doubleSeq* SRTBaseMinorServoImpl::getAxesPositions(ACS::Time acs_time) +{ + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesPositions()"); + + try { - error.setExtra("Error adding field axis", 0); + std::vector<double> p = m_positions_queue.get(acs_time).second; + + ACS::doubleSeq_var positions = new ACS::doubleSeq; + positions->length(m_virtual_axes); + std::copy(p.begin(), p.end(), positions->begin()); + return positions._retn(); } - if(!table.addField(error, "coefficients", IRA::CDataField::STRING)) + catch(std::logic_error& le) { - error.setExtra("Error adding field coefficients", 0); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::getAxesPositions()").c_str()); + ex.setReason("Positions history is empty!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - if(!error.isNoError()) +} + +ACS::TimeInterval SRTBaseMinorServoImpl::getTravelTime(const ACS::doubleSeq& _s_p, const ACS::doubleSeq& d_p) +{ + AUTO_TRACE(m_servo_name + "::getTravelTime()"); + + std::vector<double> c_s = m_c_s; // Current speed + + ACS::doubleSeq s_p(_s_p); + + // No starting coordinates, it means we have to start from the current position taking into account the current speed + if(_s_p.length() == 0) { - _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, impl, error); - impl.setCode(error.getErrorCode()); - impl.setDescription((const char *)error.getDescription()); - throw impl; + ACSErr::Completion_var comp; + s_p = *virtual_positions()->get_sync(comp.out()); } - if(!table.openTable(error)) + else if(_s_p.length() != m_virtual_axes) { - _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, impl, error); - throw impl; + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "getTravelTime()").c_str()); + ex.setReason("Wrong number of axes for starting_position."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + if(d_p.length() != m_virtual_axes) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "getTravelTime()").c_str()); + ex.setReason("Wrong number of axes for destination_position."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - table.First(); - for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + // d = delta/distance + std::vector<double> d(m_virtual_axes); + for(size_t i = 0; i < m_virtual_axes; i++) { - std::string axis = std::string(table["axis"]->asString()); + d[i] = d_p[i] - s_p[i]; - std::vector<double> coefficients; + // If we sent a starting position, we are just checking the maximum time to get from the start to the desired position + // We take into account the worst case scenario for the speed, we assume we are moving away from the desired position at maximum speed for each axis + if(_s_p.length() != 0) + { + c_s[i] = m_m_s[i] * (d[i] < 0 ? 1 : (d[i] > 0 ? -1 : 0)); + } + } - std::string coefficient_str; - std::stringstream stream(std::string(table["coefficients"]->asString())); + double total_time = 0; - while(std::getline(stream, coefficient_str, ',')) + // Calculate the distance and time taken to get to the maximum speed towards the desired position + for(size_t i = 0; i < m_virtual_axes; i++) + { + double inversion_time = 0; + double inversion_distance = 0; + + // We are moving away from our desired position, this is the only case in which we need a deceleration ramp before even starting to move towards our destination + if(std::signbit(c_s[i]) != std::signbit(d[i]) && c_s[i] != 0) { - coefficients.push_back(std::stod(std::regex_replace(coefficient_str, std::regex("\\s+"), ""))); + inversion_time = std::abs(c_s[i]) / m_a[i]; + inversion_distance = std::abs(c_s[i]) * inversion_time + 0.5 * m_a[i] * std::pow(inversion_time, 2); + // In this case, we can calculate the next acceleration ramp using a starting speed of 0 + c_s = std::vector<double>(c_s.size(), 0.0); } - m_current_lookup_table[axis] = coefficients; - } - table.closeTable(); + double accel_ramp_time = (m_m_s[i] - std::abs(c_s[i])) / m_a[i]; + double accel_ramp_distance = std::abs(c_s[i]) * accel_ramp_time + 0.5 * m_a[i] * std::pow(accel_ramp_time, 2); - if(m_current_lookup_table.size() > 0) - { - m_current_setup = setup_name; - clearUserOffsets(); - clearSystemOffsets(); - m_in_use = Management::MNG_TRUE; + // Total time = eventual inversion time + calculated acceleration ramp time + full deceleration time + linear movement time + // Linear movement time = linear movement distance / maximum speed + // Linear movement distance = distance + eventual inversion distance - acceleration ramp distance - full deceleration ramp distance + double t = inversion_time + accel_ramp_time + m_r_t[i] + (std::abs(d[i]) + inversion_distance - accel_ramp_distance - m_r_d[i]) / m_m_s[i]; + + total_time = std::max(total_time, t); + + // This does not take into account any dead time but: + // we're going to use this only for PROGRAMTRACK purposes and + // in PROGRAMTRACK mode the SRP servos move faster than the nominal max_speed + // i.e., IIRC, the max physical speed should be around 12mm/s instead of 4mm/s + // Therefore we might not need to add any guard time } + + return ACS::TimeInterval(total_time * 10000000); } -void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +void SRTBaseMinorServoImpl::getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) { - AUTO_TRACE("SRTBaseMinorServoImpl::getAxesInfo()"); - - ACS::stringSeq_var axes_names_var = new ACS::stringSeq; - ACS::stringSeq_var axes_units_var = new ACS::stringSeq; - axes_names_var->length(m_virtual_axes); - axes_units_var->length(m_virtual_axes); + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesRanges()"); + + ACS::doubleSeq_var min_ranges = new ACS::doubleSeq; + ACS::doubleSeq_var max_ranges = new ACS::doubleSeq; + min_ranges->length(m_virtual_axes); + max_ranges->length(m_virtual_axes); + std::copy(m_min.begin(), m_min.end(), min_ranges->begin()); + std::copy(m_max.begin(), m_max.end(), max_ranges->begin()); + min_ranges_out = min_ranges._retn(); + max_ranges_out = max_ranges._retn(); +} - for(size_t i = 0; i < m_virtual_axes; i++) +/////////////////// PROTECTED methods +void SRTBaseMinorServoImpl::checkLineStatus() +{ + if(!m_socket.isConnected()) { - axes_names_var[i] = m_virtual_axes_names[i].c_str(); - axes_units_var[i] = m_virtual_axes_units[i].c_str(); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "checkLineStatus()").c_str()); + ex.setReason("Socket not connected."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - axes_names = axes_names_var._retn(); - axes_units = axes_units_var._retn(); + ACSErr::Completion_var comp; + if(block()->get_sync(comp.out()) == Management::MNG_TRUE || drive_cabinet_status()->get_sync(comp.out()) == DRIVE_CABINET_ERROR) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); + ex.setReason("Servo system blocked or drive cabinet error."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } -ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) +std::vector<double> SRTBaseMinorServoImpl::getMotionConstant(SRTBaseMinorServoImpl& object, const std::string& constant) { - AUTO_TRACE(m_servo_name + "::calcCoordinates()"); + AUTO_STATIC_TRACE(object.m_servo_name + "::getMotionConstant()"); - if(m_in_use == Management::MNG_TRUE) - { - ACS::doubleSeq_var coordinates = new ACS::doubleSeq; - coordinates->length(m_virtual_axes); + std::vector<double> values; - for(size_t axis = 0; axis < m_virtual_axes; axis++) + if(constant == "max_speed" || constant == "acceleration") + { + values = getCDBValue<std::vector<double>>(object.getContainerServices(), constant.c_str()); + if(values.size() != object.m_virtual_axes) { - std::vector<double> coefficients = m_current_lookup_table.at(m_virtual_axes_names[axis]); + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setFieldName(constant.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + else if(std::any_of(values.begin(), values.end(), [](double value) + { + return value == 0.0; + })) + { + _EXCPT(ComponentErrors::NotAllowedExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setReason(("A" + constant == "acceleration" ? "n " : " " + constant + " equals to 0 is not allowed.").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + } + else if(constant == "min_range" || constant == "max_range" || constant == "tracking_delta") + { + values = getCDBValue<std::vector<double>>(object.getContainerServices(), constant.c_str()); + if(values.size() != object.m_virtual_axes) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setFieldName(constant.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + } + else if(constant == "ramp_times") // Acceleration ramp times, 0 to max_speed and vice versa + { + values = std::vector<double>(object.m_virtual_axes); + std::transform(object.m_m_s.begin(), object.m_m_s.end(), object.m_a.begin(), values.begin(), std::divides<double>()); + } + else if(constant == "ramp_distances") // Acceleration ramp distances, 0 to max_speed and vice versa + { + values = std::vector<double>(object.m_virtual_axes); + std::transform(object.m_r_t.begin(), object.m_r_t.end(), object.m_a.begin(), values.begin(), [](double acceleration_ramp_time, double acceleration) + { + return 0.5 * acceleration * std::pow(acceleration_ramp_time, 2); + }); + } - double coordinate = 0; + return values; +} - for(size_t index = 0; index < coefficients.size(); index++) - { - coordinate += coefficients[index] * pow(elevation, index); - } +/////////////////// PRIVATE methods +void SRTBaseMinorServoImpl::resetOffsets() +{ + AUTO_TRACE(m_servo_name + "::resetOffsets()"); - coordinates[axis] = coordinate; - } + // Sum the user and system DISCOS offsets to check whether they correspond to the Leonardo offsets + std::vector<double> DISCOS_offsets(m_virtual_axes, 0.0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); - return coordinates._retn(); - } - else + // Read the Leonardo offsets + ACSErr::Completion_var comp; + ACS::doubleSeq sequence = *virtual_offsets()->get_sync(comp.out()); + std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); + + // Check if the offsets correspond or not + if(!std::equal(DISCOS_offsets.begin(), DISCOS_offsets.end(), LEONARDO_offsets.begin())) { - _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, (m_servo_name + "::calcCoordinates()").c_str()); - impl.setReason("Unable to calculate the coordinates since the servo system has not been configured yet!"); - throw impl; + // Offsets do not correspond, should reset them by sending a offset command + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, DISCOS_offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::resetOffsets()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, m_servo_name + "::resetOffsets()", (LM_INFO, "Offsets discrepancy, reset")); } } -std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(const std::string& properties_name) +std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(SRTBaseMinorServoImpl& object, const std::string& properties_name) { - AUTO_TRACE(m_servo_name + "::getPropertiesTable()"); + AUTO_STATIC_TRACE(object.m_servo_name + "::getPropertiesTable()"); std::vector<std::string> properties; - IRA::CDBTable table(getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CDBTable table(object.getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + object.m_servo_name).c_str()); IRA::CError error; error.Reset(); @@ -550,15 +748,18 @@ std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(const std::st } if(!error.isNoError()) { - _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, impl, error); - impl.setCode(error.getErrorCode()); - impl.setDescription((const char *)error.getDescription()); - throw impl; + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, ex, error); + ex.setCode(error.getErrorCode()); + ex.setDescription((const char *)error.getDescription()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } if(!table.openTable(error)) { - _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, impl, error); - throw impl; + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, ex, error); + ex.setFieldName(properties_name.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } table.First(); @@ -568,30 +769,40 @@ std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(const std::st } table.closeTable(); - return properties; -} + size_t expected_size = 0; -void SRTBaseMinorServoImpl::checkErrors() -{ - ACSErr::Completion_var comp; - if(block()->get_sync(comp.out()) == Management::MNG_TRUE || drive_cabinet_status()->get_sync(comp.out()) == MinorServo::DRIVE_CABINET_ERROR) + if(properties_name.find("virtual_") == 0) { - _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, (m_servo_name + "::checkErrors()").c_str()); - impl.setReason("Servo system blocked or drive cabinet error!"); - throw impl; + expected_size = object.m_virtual_axes; } + else if(properties_name.find("physical_") == 0) + { + expected_size = object.m_physical_axes; + } + + if(expected_size == 0 || properties.size() != expected_size) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::initialize()").c_str()); + ex.setFieldName(properties_name.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + return properties; } -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_enabled_ptr, enabled); -GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoCabinetStatus, m_drive_cabinet_status_ptr, drive_cabinet_status); -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_block_ptr, block); -GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoOperativeMode, m_operative_mode_ptr, operative_mode); -GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, m_physical_axes_enabled_ptr, physical_axes_enabled); -GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_physical_positions_ptr, physical_positions); -GET_PROPERTY_REFERENCE(ACS::ROlong, m_virtual_axes_ptr, virtual_axes); -GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_positions_ptr, virtual_positions); -GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_offsets_ptr, virtual_offsets); -GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_user_offsets_ptr, virtual_user_offsets); -GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, m_virtual_system_offsets_ptr, virtual_system_offsets); -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_in_use_ptr, in_use); -GET_PROPERTY_REFERENCE(ACS::ROstring, m_current_setup_ptr, current_setup) + +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_enabled_ptr, enabled); +GET_PROPERTY_REFERENCE(ROSRTMinorServoCabinetStatus, SRTBaseMinorServoImpl, m_drive_cabinet_status_ptr, drive_cabinet_status); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_block_ptr, block); +GET_PROPERTY_REFERENCE(ROSRTMinorServoOperativeMode, SRTBaseMinorServoImpl, m_operative_mode_ptr, operative_mode); +GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, SRTBaseMinorServoImpl, m_physical_axes_enabled_ptr, physical_axes_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_physical_positions_ptr, physical_positions); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTBaseMinorServoImpl, m_virtual_axes_ptr, virtual_axes); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_plain_virtual_positions_ptr, plain_virtual_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_positions_ptr, virtual_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_offsets_ptr, virtual_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_user_offsets_ptr, virtual_user_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_system_offsets_ptr, virtual_system_offsets); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_in_use_ptr, in_use); +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTBaseMinorServoImpl, m_current_setup_ptr, current_setup); diff --git a/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp index 1fe27bfc1..1b3dad9ec 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp @@ -1,7 +1,5 @@ #include "SRTMinorServoImpl.h" -using namespace maci; - SRTGenericMinorServoImpl::SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : SRTBaseMinorServoImpl(componentName, containerServices) { AUTO_TRACE(m_servo_name + "::SRTGenericMinorServoImpl()"); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index a824d15c7..efda46e6b 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -1,160 +1,266 @@ #include "SRTMinorServoBossCore.h" -using namespace maci; - -SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl* component) +using namespace MinorServo; + +SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : + m_component(component), + m_status_thread(nullptr), + m_setup_thread(nullptr), + m_park_thread(nullptr), + m_tracking_thread(nullptr), + m_scan_thread(nullptr), + m_antennaBoss(Antenna::AntennaBoss::_nil()), + m_status(), + m_motion_status(MOTION_STATUS_UNCONFIGURED), + m_commanded_setup("Unknown"), + m_commanded_configuration(CONFIGURATION_UNKNOWN), + m_subsystem_status(Management::MNG_WARNING), + m_actual_setup("Unknown"), + m_ready(Management::MNG_FALSE), + m_starting(Management::MNG_FALSE), + m_as_configuration(getCDBConfiguration("active_surface_configuration")), + m_elevation_tracking(Management::MNG_FALSE), + m_elevation_tracking_enabled(getCDBConfiguration("elevation_tracking_enabled")), + m_scan_active(Management::MNG_FALSE), + m_scanning(Management::MNG_FALSE), + m_tracking(Management::MNG_FALSE), + m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(m_component.getContainerServices())), + m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)), + m_socket_connected(m_socket.isConnected() ? Management::MNG_TRUE : Management::MNG_FALSE), + m_servos{ + { "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") }, + { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") }, + { "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } + }, + m_tracking_servos{ + { "PFP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/PFP") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/SRP") } + } { AUTO_TRACE("SRTMinorServoBossCore::SRTMinorServoBossCore()"); - m_component = component; - - m_motion_status = MinorServo::MOTION_STATUS_UNCONFIGURED; - m_actual_setup = "Unknown"; - m_commanded_setup = "Unknown"; - m_commanded_configuration = MinorServo::CONFIGURATION_UNKNOWN; - - m_subsystem_status = Management::MNG_WARNING; - m_ready = Management::MNG_FALSE; - m_starting = Management::MNG_FALSE; - m_as_configuration = Management::MNG_FALSE; - m_elevation_tracking = Management::MNG_FALSE; - m_elevation_tracking_enabled = Management::MNG_FALSE; - m_scan_active = Management::MNG_FALSE; - m_scanning = Management::MNG_FALSE; - m_tracking = Management::MNG_FALSE; - - m_socket_configuration = &SRTMinorServoSocketConfiguration::getInstance(m_component->getContainerServices()); - m_socket = &SRTMinorServoSocket::getInstance(m_socket_configuration->m_ip_address, m_socket_configuration->m_port, m_socket_configuration->m_timeout); - - m_status = SRTMinorServoAnswerMap(); - m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); - m_status_secure_area = new IRA::CSecureArea<SRTMinorServoAnswerMap>(&m_status); - - // Retrieve the minor servos components - m_tracking_servos["PFP"] = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/PFP"); - m_tracking_servos["SRP"] = m_component->getContainerServices()->getComponent<MinorServo::SRTProgramTrackMinorServo>("MINORSERVO/SRP"); - m_servos["PFP"] = (MinorServo::SRTBaseMinorServo_ptr)m_tracking_servos["PFP"]; - m_servos["SRP"] = (MinorServo::SRTBaseMinorServo_ptr)m_tracking_servos["SRP"]; - m_servos["GFR"] = (MinorServo::SRTBaseMinorServo_ptr)m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/GFR"); - m_servos["M3R"] = (MinorServo::SRTBaseMinorServo_ptr)m_component->getContainerServices()->getComponent<MinorServo::SRTGenericMinorServo>("MINORSERVO/M3R"); - - m_setup_thread = NULL; - m_park_thread = NULL; - m_tracking_thread = NULL; + startThread(m_status_thread, (ACS::TimeInterval)(getCDBValue<double>(m_component.getContainerServices(), "status_thread_period") * 10000000)); } SRTMinorServoBossCore::~SRTMinorServoBossCore() { AUTO_TRACE("SRTMinorServoBossCore::~SRTMinorServoBossCore()"); - if(m_setup_thread != NULL) + destroyThread(m_setup_thread); + destroyThread(m_park_thread); + destroyThread(m_tracking_thread); + destroyThread(m_scan_thread); + destroyThread(m_status_thread); +} + +bool SRTMinorServoBossCore::status() +{ + AUTO_TRACE("SRTMinorServoBossCore::status()"); + + try + { + // Attempt communication anyway + m_socket.sendCommand(SRTMinorServoCommandLibrary::status(), m_status); + + if(m_socket_connected.load() == Management::MNG_FALSE) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_INFO, "Socket connected.")); + m_socket_connected.store(Management::MNG_TRUE); + m_subsystem_status.store(Management::MNG_WARNING); + } + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + if(m_socket_connected.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_INFO, "Socket disconnected.")); + m_socket_connected.store(Management::MNG_FALSE); + + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + stopThread(m_scan_thread); + setFailure(); + } + + return false; + } + + try + { + checkLineStatus(); + } + catch(...) + { + setFailure(); + return false; + } + + // Call servo status + ACSErr::Completion_var comp; + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) { - m_setup_thread->suspend(); - m_setup_thread->terminate(); - m_component->getContainerServices()->getThreadManager()->destroy(m_setup_thread); + // We only get here if the system is configured, therefore we check the correct position of the gregorian cover + SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.current_configuration()->get_sync(comp.out()) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + if(m_component.gregorian_cover()->get_sync(comp.out()) != commanded_gregorian_cover_position) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_ERROR, "Gregorian cover in wrong position.")); + setFailure(); + return false; + } } - if(m_park_thread != NULL) + + for(const auto& [name, servo] : m_servos) { - m_park_thread->suspend(); - m_park_thread->terminate(); - m_component->getContainerServices()->getThreadManager()->destroy(m_park_thread); + if(!servo->status()) + { + setFailure(); + return false; + } } - if(m_tracking_thread != NULL) + + if(motion_status == MOTION_STATUS_TRACKING) { - m_tracking_thread->suspend(); - m_tracking_thread->terminate(); - m_component->getContainerServices()->getThreadManager()->destroy(m_tracking_thread); + if(std::all_of(m_tracking_servos.begin(), m_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_FALSE) + { + return true; + } + + return servo.second->tracking()->get_sync(comp.out()) == Management::MNG_TRUE ? true : false; + })) + { + m_tracking.store(Management::MNG_TRUE); + } + else + { + m_tracking.store(Management::MNG_FALSE); + } } + + return true; } void SRTMinorServoBossCore::setup(std::string commanded_setup) { AUTO_TRACE("SRTMinorServoBossCore::setup()"); - checkControl(); - checkEmergency(); + try + { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(getReasonFromEx(mse)); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } + + if(m_scan_active.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, "THE SYSTEM IS PERFORMING A SCAN, CANNOT SETUP NOW")); + _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } std::transform(commanded_setup.begin(), commanded_setup.end(), commanded_setup.begin(), ::toupper); - std::pair<MinorServo::SRTMinorServoFocalConfiguration, bool> cmd_configuration; - MinorServo::SRTMinorServoFocalConfiguration commanded_configuration; + std::pair<SRTMinorServoFocalConfiguration, bool> cmd_configuration; + SRTMinorServoFocalConfiguration commanded_configuration; try { - cmd_configuration = MinorServo::DiscosConfigurationNameTable.at(commanded_setup); + cmd_configuration = DiscosConfigurationNameTable.at(commanded_setup); commanded_configuration = cmd_configuration.first; - if(m_as_configuration == Management::MNG_TRUE && cmd_configuration.second) + if(m_as_configuration.load() == Management::MNG_TRUE && cmd_configuration.second) { commanded_setup += "_ASACTIVE"; } } - catch(std::out_of_range& ex) // Unknown configuration + catch(std::out_of_range& oor) { - _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setup()"); - throw impl; + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("UNKNOWN CONFIGURATION '" + commanded_setup + "'").c_str())); + _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Unknown configuration '" + commanded_setup + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); } // Exit if commanded setup is already in place or is about to be - if(commanded_configuration == m_commanded_configuration && commanded_setup == m_commanded_setup) + if(commanded_configuration == m_commanded_configuration.load() && commanded_setup == m_commanded_setup) { - if(m_motion_status == MinorServo::MOTION_STATUS_CONFIGURING || m_motion_status == MinorServo::MOTION_STATUS_CONFIGURED || m_motion_status == MinorServo::MOTION_STATUS_TRACKING) + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status == MOTION_STATUS_STARTING) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("ALREADY SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + return; + } + else if(motion_status == MOTION_STATUS_CONFIGURED || motion_status == MOTION_STATUS_TRACKING) { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("CONFIGURATION '" + commanded_setup + "' ALREADY IN PLACE").c_str())); return; } } - m_commanded_configuration = commanded_configuration; + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + + m_commanded_configuration.store(commanded_configuration); m_commanded_setup = commanded_setup; - // Stop the setup and park threads if running - if(m_setup_thread != NULL && m_setup_thread->isAlive()) - { - m_setup_thread->setStopped(); - } - if(m_park_thread != NULL && m_park_thread->isAlive()) - { - m_park_thread->setStopped(); - } - if(m_tracking_thread != NULL && m_tracking_thread->isAlive()) - { - m_tracking_thread->setStopped(); - } + // Stop the setup, park and tracking threads if running + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + m_subsystem_status.store(Management::MNG_WARNING); m_actual_setup = ""; - m_ready = Management::MNG_FALSE; - m_starting = Management::MNG_TRUE; - m_tracking = Management::MNG_FALSE; - m_motion_status = MinorServo::MOTION_STATUS_CONFIGURING; - m_subsystem_status = Management::MNG_WARNING; + m_ready.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_TRUE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_STARTING); - // Send the STOP command to each servo - for(const auto& [name, servo] : m_servos) + try + { + // Send the STOP command to each servo + for(const auto& [servo_name, servo] : m_servos) + { + servo->stop(); + } + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) { - servo->stop(); + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while sending the STOP command to a minor servo system."); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); } // Start the setup thread - if(m_setup_thread != NULL) + try { - m_setup_thread->restart(); + startThread(m_setup_thread); } - else + catch(ComponentErrors::ComponentErrorsEx& ce) { - try - { - m_setup_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoSetupThread, SRTMinorServoBossCore*>("SRTMinorServoBossCoreSetupThread", m_component->m_core); - } - catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) - { - m_starting = Management::MNG_FALSE; - m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_subsystem_status = Management::MNG_FAILURE; - _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::setup()"); - impl.setThreadName("SRTMinorServoSetupThread"); - throw impl; - } - - m_setup_thread->resume(); + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, ce, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while trying to start the setup_thread"); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); } } @@ -162,157 +268,266 @@ void SRTMinorServoBossCore::park() { AUTO_TRACE("SRTMinorServoBossCore::park()"); - checkControl(); - checkEmergency(); - - // Exit if the system is already parked or is about to be - if(m_commanded_configuration == MinorServo::CONFIGURATION_PARK) + try { - if(m_motion_status == MinorServo::MOTION_STATUS_CONFIGURING || m_motion_status == MinorServo::MOTION_STATUS_PARK) - { - return; - } + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason(getReasonFromEx(mse)); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); } - m_commanded_configuration = MinorServo::CONFIGURATION_PARK; - m_commanded_setup = "Park"; - - // Stop the setup and park threads if running - if(m_setup_thread != NULL && m_setup_thread->isAlive()) + if(m_scan_active.load() == Management::MNG_TRUE) { - m_setup_thread->setStopped(); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "THE SYSTEM IS PERFORMING A SCAN, CANNOT PARK NOW")); + _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); } - if(m_park_thread != NULL && m_park_thread->isAlive()) + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status == MOTION_STATUS_PARKING) { - m_park_thread->setStopped(); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "MINOR SERVOS ALREADY PARKING")); + return; } - if(m_tracking_thread != NULL && m_tracking_thread->isAlive()) + else if (motion_status == MOTION_STATUS_PARKED) { - m_tracking_thread->setStopped(); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "MINOR SERVOS ALREADY PARKED")); + return; } + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "PARKING")); + + m_commanded_configuration.store(CONFIGURATION_PARK); + m_commanded_setup = "Park"; + + // Stop the setup, park and tracking threads if running + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + + m_subsystem_status.store(Management::MNG_WARNING); m_actual_setup = ""; - m_ready = Management::MNG_FALSE; - m_starting = Management::MNG_TRUE; - m_tracking = Management::MNG_FALSE; - m_motion_status = MinorServo::MOTION_STATUS_CONFIGURING; - m_subsystem_status = Management::MNG_WARNING; + m_ready.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_TRUE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_PARKING); - // Send the STOW command to the gregorian cover - if(std::get<std::string>(m_socket->sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2))["OUTPUT"]) != "GOOD") + try { - m_starting = Management::MNG_FALSE; - m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_subsystem_status = Management::MNG_FAILURE; - _EXCPT(MinorServoErrors::SetupErrorExImpl, impl, "SRTMinorServoBossCore::park()"); - throw impl; - } + // Send the STOW command to the gregorian cover + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2)).checkOutput()) + { + _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } - // Send the STOP command to each servo - for(const auto& [name, servo] : m_servos) + // Send the STOP command to each servo + for(const auto& [servo_name, servo] : m_servos) + { + servo->stop(); + } + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) { - servo->stop(); + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while sending the STOP command to a minor servo system."); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); } // Start the park thread - if(m_park_thread != NULL) + try { - m_park_thread->restart(); + startThread(m_park_thread); } - else + catch(ComponentErrors::ComponentErrorsEx& ce) { - try - { - m_park_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoParkThread, SRTMinorServoBossCore*>("SRTMinorServoBossCoreParkThread", m_component->m_core); - } - catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) - { - m_starting = Management::MNG_FALSE; - m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_subsystem_status = Management::MNG_FAILURE; - _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::park()"); - impl.setThreadName("SRTMinorServoParkThread"); - throw impl; - } - - m_park_thread->resume(); + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, ce, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while trying to start the park_thread"); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); } } void SRTMinorServoBossCore::setElevationTracking(std::string configuration) { AUTO_TRACE("SRTMinorServoBossCore::setElevationTracking()"); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setElevationTracking()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); - if(configuration == "ON") + if(configuration != "ON" && configuration != "OFF") { - m_elevation_tracking_enabled = Management::MNG_TRUE; + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setElevationTracking()"); + ex.addData("Reason", ("Unknown setElevationTracking configuration '" + configuration + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - else if(configuration == "OFF") + + ACS_LOG(LM_FULL_INFO, "setServoElevationTracking", (LM_INFO, ("SETTING ELEVATION TRACKING TO " + configuration).c_str())); + + if(configuration == "ON" && m_elevation_tracking_enabled.load() != Management::MNG_TRUE) { - m_elevation_tracking_enabled = Management::MNG_FALSE; + m_elevation_tracking_enabled.store(Management::MNG_TRUE); + + if(m_motion_status.load() == MOTION_STATUS_CONFIGURED) + { + m_motion_status.store(MOTION_STATUS_TRACKING); + startThread(m_tracking_thread); + } } - else + else if(configuration == "OFF" && m_elevation_tracking_enabled.load() != Management::MNG_FALSE) { - _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setElevationTracking()"); - throw impl; + stopThread(m_tracking_thread); + m_elevation_tracking_enabled.store(Management::MNG_FALSE); + + if(m_motion_status.load() == MOTION_STATUS_TRACKING) + { + m_motion_status.store(MOTION_STATUS_CONFIGURED); + } } } void SRTMinorServoBossCore::setASConfiguration(std::string configuration) { AUTO_TRACE("SRTMinorServoBossCore::setASConfiguration()"); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setASConfiguration()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); - if(configuration == "ON") + if(configuration != "ON" && configuration != "OFF") + { + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setASConfiguration()"); + ex.addData("Reason", ("Unknown setASConfiguration configuration '" + configuration + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "setServoASConfiguration", (LM_INFO, ("SETTING ACTIVE SURFACE CONFIGURATION TO " + configuration).c_str())); + + if(configuration == "ON" && m_as_configuration.load() != Management::MNG_TRUE) { - m_as_configuration = Management::MNG_TRUE; + m_as_configuration.store(Management::MNG_TRUE); } - else if(configuration == "OFF") + else if(configuration == "OFF" && m_as_configuration.load() != Management::MNG_FALSE) { - m_as_configuration = Management::MNG_FALSE; + m_as_configuration.store(Management::MNG_FALSE); } else { - _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, impl, "SRTMinorServoBossCore::setASConfiguration()"); - throw impl; + // We asked for the same configuration, nothing else to do + return; } - // Should reload the correct setup if the system was already configured - if(!m_actual_setup.empty()) + // Should reload the correct setup if the system was already configured or was about to be + if(!m_commanded_setup.empty()) { - configuration = m_actual_setup.substr(0, m_actual_setup.find("_")); - setup(configuration); + configuration = m_commanded_setup.substr(0, m_commanded_setup.find("_")); + try + { + setup(configuration); + } + catch(ManagementErrors::ConfigurationErrorEx& ce) + { + _ADD_BACKTRACE(MinorServoErrors::ConfigurationErrorExImpl, ex, ce, "SRTMinorServoBossCore::setASConfiguration()"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } } -void SRTMinorServoBossCore::status() +void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) { - AUTO_TRACE("SRTMinorServoBossCore::status()"); + AUTO_TRACE("SRTMinorServoBossCore::setGregorianCoverPosition()"); + + checkLineStatus(); + + std::transform(position.begin(), position.end(), position.begin(), ::toupper); + + if(position != "OPEN" && position != "CLOSED") + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.addData("Reason", ("Unknown position '" + position + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_PARKING && motion_status != MOTION_STATUS_PARKED) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.setReason("You can set the gregorian cover position only when the system is parked or is parking."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_INFO, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); - IRA::CSecAreaResourceWrapper<SRTMinorServoAnswerMap> status = m_status_secure_area->Get(); - m_socket->sendCommand(SRTMinorServoCommandLibrary::status(), m_status); + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", position == "OPEN" ? 1 : 2)).checkOutput()) + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } -void SRTMinorServoBossCore::preset(double elevation) // Elevation is expressed in degrees +void SRTMinorServoBossCore::preset(double elevation) { + // Elevation is expressed in degrees AUTO_TRACE("SRTMinorServoBossCore::preset()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::preset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } - if(m_ready == Management::MNG_FALSE) + if(m_motion_status.load() != MOTION_STATUS_CONFIGURED) { - _EXCPT(MinorServoErrors::PositioningErrorExImpl, impl, "SRTMinorServoBossCore::preset()"); - throw impl; + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, "SRTMinorServoBossCore::preset()"); + ex.addData("Reason", "Minor servos are tracking, cannot send a global preset command now."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } ACSErr::Completion_var comp; - for(const auto& [name, servo] : m_servos) + for(const auto& [servo_name, servo] : m_servos) { - std::vector<double> coordinates; - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) { servo->preset(*servo->calcCoordinates(elevation)); @@ -324,28 +539,86 @@ void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) { AUTO_TRACE("SRTMinorServoBossCore::clearUserOffsets()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + ACSErr::Completion_var comp; + if(servo_name == "ALL") + { + for(const auto& [servo_name, servo] : m_servos) + { + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->clearUserOffsets(); + } + } + return; + } + try { - m_servos.at(servo_name)->clearUserOffsets(); + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->clearUserOffsets(); + } + else + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } - catch(std::out_of_range& ex) + catch(std::out_of_range& oor) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::clearUserOffsets()"); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } -void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double offset) +void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double offset, bool log) { AUTO_TRACE("SRTMinorServoBossCore::setUserOffset()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); @@ -356,53 +629,123 @@ void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double of try { - m_servos.at(servo_name)->setUserOffset(axis_name.c_str(), offset); + auto servo = m_servos.at(servo_name); + ACSErr::Completion_var comp; + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + if(log) + { + ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_INFO, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); + } + servo->setUserOffset(axis_name.c_str(), offset); + } + else + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } - catch(std::out_of_range& ex) + catch(std::out_of_range& oor) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::setUserOffsets()"); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } -std::vector<double> SRTMinorServoBossCore::getUserOffsets() +ACS::doubleSeq* SRTMinorServoBossCore::getUserOffsets() { AUTO_TRACE("SRTMinorServoBossCore::getUserOffsets()"); - std::vector<double> user_offsets; + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getUserOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + ACS::doubleSeq_var offsets = new ACS::doubleSeq; ACSErr::Completion_var comp; - for(const auto& servo_name : MinorServo::ServoOrder) + + for(const auto& servo_name : ServoOrder) { auto servo = m_servos.at(servo_name); if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) { - ACS::doubleSeq* servo_offsets = servo->getUserOffsets(); - std::vector<double> offsets(servo_offsets->get_buffer(), servo_offsets->get_buffer() + servo_offsets->length()); - user_offsets.insert(user_offsets.end(), offsets.begin(), offsets.end()); + ACS::doubleSeq servo_offsets = *servo->getUserOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); } } - return user_offsets; + return offsets._retn(); } void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) { AUTO_TRACE("SRTMinorServoBossCore::clearSystemOffsets()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + ACSErr::Completion_var comp; + if(servo_name == "ALL") + { + for(const auto& [servo_name, servo] : m_servos) + { + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->clearSystemOffsets(); + } + } + return; + } + try { - m_servos.at(servo_name)->clearSystemOffsets(); + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->clearSystemOffsets(); + } + else + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } - catch(std::out_of_range& ex) + catch(std::out_of_range& oor) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::clearSystemOffsets()"); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } @@ -410,8 +753,24 @@ void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double { AUTO_TRACE("SRTMinorServoBossCore::setSystemOffset()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); @@ -422,48 +781,80 @@ void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double try { - m_servos.at(servo_name)->setSystemOffset(axis_name.c_str(), offset); + auto servo = m_servos.at(servo_name); + ACSErr::Completion_var comp; + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + servo->setSystemOffset(axis_name.c_str(), offset); + } + else + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } - catch(std::out_of_range& ex) + catch(std::out_of_range& oor) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, impl, "SRTMinorServoBossCore::setSystemOffsets()"); - throw impl; + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } } -std::vector<double> SRTMinorServoBossCore::getSystemOffsets() +ACS::doubleSeq* SRTMinorServoBossCore::getSystemOffsets() { AUTO_TRACE("SRTMinorServoBossCore::getSystemOffsets()"); - std::vector<double> system_offsets; + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getSystemOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + ACS::doubleSeq_var offsets = new ACS::doubleSeq; ACSErr::Completion_var comp; - for(const auto& servo_name : MinorServo::ServoOrder) + + for(const auto& servo_name : ServoOrder) { auto servo = m_servos.at(servo_name); if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) { - ACS::doubleSeq* servo_offsets = servo->getSystemOffsets(); - std::vector<double> offsets(servo_offsets->get_buffer(), servo_offsets->get_buffer() + servo_offsets->length()); - system_offsets.insert(system_offsets.end(), offsets.begin(), offsets.end()); + ACS::doubleSeq servo_offsets = *servo->getSystemOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); } } - return system_offsets; + return offsets._retn(); } -void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { AUTO_TRACE("SRTMinorServoBossCore::getAxesInfo()"); + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getAxesInfo()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + std::vector<std::string> axes_names_vector, axes_units_vector; - unsigned int length = 0; - ACS::stringSeq_var axes_names_var = new ACS::stringSeq; - ACS::stringSeq_var axes_units_var = new ACS::stringSeq; + ACS::stringSeq_var axes_names = new ACS::stringSeq; + ACS::stringSeq_var axes_units = new ACS::stringSeq; ACSErr::Completion_var comp; - for(const auto& servo_name : MinorServo::ServoOrder) + for(const auto& servo_name : ServoOrder) { auto servo = m_servos.at(servo_name); if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) @@ -472,130 +863,490 @@ void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stri ACS::stringSeq_var servo_axes_units; servo->getAxesInfo(servo_axes_names, servo_axes_units); - unsigned int index = length; - unsigned int servo_length = (unsigned int)servo->virtual_axes()->get_sync(comp.out()); - length += servo_length; - axes_names_var->length(length); - axes_units_var->length(length); + size_t names_index = axes_names->length(); + size_t units_index = axes_units->length(); + axes_names->length(names_index + servo_axes_names->length()); + axes_units->length(units_index + servo_axes_units->length()); + std::copy(servo_axes_names->begin(), servo_axes_names->end(), axes_names->begin() + names_index); + std::copy(servo_axes_units->begin(), servo_axes_units->end(), axes_units->begin() + units_index); + } + } + + axes_names_out = axes_names._retn(); + axes_units_out = axes_units._retn(); +} - for(size_t i = 0; i < servo_length; i++, index++) - { - axes_names_var[index] = std::string(servo_name + "_" + (const char*)servo_axes_names[i]).c_str(); - axes_units_var[index] = servo_axes_units[i]; - } +ACS::doubleSeq* SRTMinorServoBossCore::getAxesPositions(ACS::Time acs_time) +{ + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getAxesPositions()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS::doubleSeq_var positions = new ACS::doubleSeq; + ACSErr::Completion_var comp; + + for(const auto& servo_name : ServoOrder) + { + auto servo = m_servos.at(servo_name); + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + ACS::doubleSeq servo_positions = *servo->getAxesPositions(acs_time); + size_t start_index = positions->length(); + positions->length(start_index + servo_positions.length()); + std::copy(servo_positions.begin(), servo_positions.end(), positions->begin() + start_index); } } - axes_names = axes_names_var._retn(); - axes_units = axes_units_var._retn(); + return positions._retn(); } -bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters) +SRTMinorServoScan SRTMinorServoBossCore::checkScanFeasibility(const ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +{ + // TODO: check whether to start from the left side or the right side, LOW priority + AUTO_TRACE("SRTMinorServoBossCore::checkScanFeasibility()"); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkScanFeasibility()"); + + SRTMinorServoScan new_scan; + new_scan.scan_range = scan_info.range; + new_scan.scan_duration = scan_info.total_time; + new_scan.starting_elevation = antenna_info.elevation * DR2D; + + std::string axis_code(scan_info.axis_code); + // Get the axis that will have to be moved during the scan + std::transform(axis_code.begin(), axis_code.end(), axis_code.begin(), ::toupper); + std::string servo_name = axis_code.substr(0, axis_code.find("_")); + std::string axis_name = axis_code.substr(axis_code.find("_") + 1); + + new_scan.servo_name = servo_name; + new_scan.axis_name = axis_name; + + ACS::stringSeq_var servo_axes_names, servo_axes_units; + + SRTBaseMinorServo_ptr servo; + + try + { + servo = m_tracking_servos.at(servo_name); + } + catch(std::out_of_range& oor) + { + ex.setReason(("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACSErr::Completion_var comp; + + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_FALSE) + { + ex.setReason(("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + servo->getAxesInfo(servo_axes_names, servo_axes_units); + + size_t axis_index; + for(axis_index = 0; axis_index < servo_axes_names->length(); axis_index++) + { + if(std::string(servo_axes_names[axis_index]) == axis_name) + { + break; + } + } + + if(axis_index == servo_axes_names->length()) + { + ex.setReason(("Axis '" + axis_code + "' not found.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + new_scan.axis_index = axis_index; + + ACS::doubleSeq starting_position = *servo->calcCoordinates(new_scan.starting_elevation); + ACS::doubleSeq final_position = *servo->calcCoordinates(new_scan.starting_elevation); + // Don't be fooled by the name, starting position now still holds the central scan position + new_scan.central_position = starting_position[axis_index]; + + starting_position[axis_index] -= scan_info.range / 2; + final_position[axis_index] += scan_info.range / 2; + + /** + * Note, we perform the calculations with some degree of approximation, + * we know the expected elevation at the start of the scan, + * but the true elevation value is going to be known only inside the startScan, + * depending on how much time the minor servos take to get to position + * TBH, I don't really know if this will really matter, since we will be starting + * the movement of the SRP far from the peak of the gaussian. + * We will check this behavior later. + * In any case, the scan will simply add an offset to the elevation tracking expected position, + * the offset value depends on the time elapsed since the start of the scan, which, + * in the case of the focusScan, it's probably always decided by the minor servo system + */ + ACS::doubleSeq_var min_ranges, max_ranges; + servo->getAxesRanges(min_ranges, max_ranges); + + // Read the servo offsets + ACS::doubleSeq offsets = *servo->virtual_offsets()->get_sync(comp.out()); + + // Check if starting or final positions are outside the axes range (considering offsets) + for(size_t i = 0; i < starting_position.length(); i++) + { + if(starting_position[i] + offsets[i] < min_ranges[i] || starting_position[i] + offsets[i] > max_ranges[i]) + { + ex.setReason("Starting position out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(final_position[i] + offsets[i] < min_ranges[i] || final_position[i] + offsets[i] > max_ranges[i]) + { + ex.setReason("Final position out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } + + // Time to reach the desired position if I were to start the movement now + ACS::Time min_starting_time = getTimeStamp() + servo->getTravelTime(ACS::doubleSeq(), starting_position) + PROGRAM_TRACK_FUTURE_TIME; + + if(start_time != 0 && min_starting_time > start_time) + { + ex.setReason("Not enough time to start the scan."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(servo->getTravelTime(starting_position, final_position) > scan_info.total_time) // Check scan total time + { + ex.setReason("Not enough time to perform the scan."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + new_scan.start_time = min_starting_time; + return new_scan; +} + +bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters) { AUTO_TRACE("SRTMinorServoBossCore::checkScan()"); - checkControl(); - checkEmergency(); - - std::cout << "checkScan" << std::endl << std::endl; - std::cout << "now: " << CIRATools::getUNIXEpoch() << std::endl; - - std::cout << "Scan info:" << std::endl; - std::cout << "start time: " << CIRATools::ACSTime2UNIXEpoch(start_time) << std::endl; - std::cout << "empty: " << std::boolalpha << scan_info.is_empty_scan << std::endl; - std::cout << "span: " << scan_info.range << std::endl; - std::cout << "total time: " << (int)scan_info.total_time << std::endl; - std::cout << "axis code: " << std::string(scan_info.axis_code) << std::endl << std::endl; - - std::cout << "Antenna info:" << std::endl; - std::cout << "target name: " << std::string(antenna_info.targetName) << std::endl; - std::cout << "azimuth: " << antenna_info.azimuth << std::endl; - std::cout << "elevation: " << antenna_info.elevation << std::endl; - std::cout << "right ascension: " << antenna_info.rightAscension << std::endl; - std::cout << "declination: " << antenna_info.declination << std::endl; - std::cout << "start time: " << CIRATools::ACSTime2UNIXEpoch(antenna_info.startEpoch) << std::endl; - std::cout << "on the fly: " << std::boolalpha << antenna_info.onTheFly << std::endl; - std::cout << "slewing time: " << antenna_info.slewingTime << std::endl; - std::cout << "azimuth section: " << antenna_info.section << std::endl; - std::cout << "scan axis: " << antenna_info.axis << std::endl; - std::cout << "stop time: " << CIRATools::ACSTime2UNIXEpoch(antenna_info.timeToStop) << std::endl; - - MinorServo::TRunTimeParameters_var ms_param_var = new MinorServo::TRunTimeParameters; - ms_param_var->onTheFly = false; + TRunTimeParameters_var ms_param_var = new TRunTimeParameters; + ms_param_var->onTheFly = !scan_info.is_empty_scan; + ms_param_var->scanAxis = CORBA::string_dup(scan_info.axis_code); ms_param_var->startEpoch = 0; ms_param_var->centerScan = 0; - ms_param_var->scanAxis = CORBA::string_dup(""); ms_param_var->timeToStop = 0; - ms_parameters = ms_param_var._retn(); - if(scan_info.is_empty_scan && m_ready == Management::MNG_FALSE) + try { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + // Something is not working, return ASAP + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + ms_parameters = ms_param_var._retn(); + return false; + } + + // Check if we are already performing another scan + if(m_scan_active.load() == Management::MNG_TRUE) + { + ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossCore::checkScan(): The system is waiting for a scan to be completed.")); + ms_parameters = ms_param_var._retn(); + return false; + } + + /** + * Empty scan, the old implementation always returned true + * Given the fact that we start the elevation tracking thread automatically + * and considering we will not have to move any axis because of the empty scan + * it is safe to return true in any situation. + * If the system is not configured this will not stop the antenna from starting to track a source + * If the system is about to be configured we will start tracking soon anyway + * The tracking flag will be set to true only when we are inside the tracking delta + * The change in status will be notified via the NotificationChannel + */ + if(scan_info.is_empty_scan) + { + ms_parameters = ms_param_var._retn(); return true; } + // We need to be ready here, we cannot wait for a setup procedure to complete + // Check if the system is now configured and/or tracking + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_TRACKING && motion_status != MOTION_STATUS_CONFIGURED) + { + ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossCore::checkScan(): The system is not ready yet.")); + ms_parameters = ms_param_var._retn(); + return false; + } + + SRTMinorServoScan scan; + try + { + scan = checkScanFeasibility(start_time, scan_info, antenna_info); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + ms_parameters = ms_param_var._retn(); + return false; + } + + ms_param_var->startEpoch = scan.start_time; + ms_param_var->centerScan = scan.central_position; + ms_param_var->timeToStop = ms_param_var->startEpoch + scan_info.total_time; + ms_parameters = ms_param_var._retn(); return true; } -void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) { AUTO_TRACE("SRTMinorServoBossCore::startScan()"); - checkControl(); - checkEmergency(); - - std::cout << "startScan" << std::endl; + // This will throw if anything is not working, no need to catch it since we will throw it again anyway + checkLineStatus(); - // Start the tracking thread - if(m_tracking_thread != NULL) + // Check if we are already performing another scan + if(m_scan_active.load() == Management::MNG_TRUE) { - m_tracking_thread->restart(); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::startScan()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - else + + // Empty scan, OK in any case + if(scan_info.is_empty_scan) { - try - { - m_tracking_thread = m_component->getContainerServices()->getThreadManager()->create<SRTMinorServoTrackingThread, SRTMinorServoBossCore*>("SRTMinorServoTrackingThread", m_component->m_core); - } - catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) - { - m_subsystem_status = Management::MNG_FAILURE; - _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossCore::startScan()"); - impl.setThreadName("SRTMinorServoTrackingThread"); - throw impl; - } + start_time = getTimeStamp(); + return; + } - m_tracking_thread->resume(); + // Check again, this should never block, otherwise something weird is happening + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_TRACKING && motion_status != MOTION_STATUS_CONFIGURED) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::startScan()"); + ex.setReason("The system is not ready yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } + + // This will throw if anything is not working, no need to catch it since we will throw it again anyway + SRTMinorServoScan scan = checkScanFeasibility(start_time, scan_info, antenna_info); + + stopThread(m_tracking_thread); + + // If we got here we are safe to start the scan + m_current_scan = scan; + start_time = scan.start_time; + m_scan_active.store(Management::MNG_TRUE); + startThread(m_scan_thread); } void SRTMinorServoBossCore::closeScan(ACS::Time& close_time) { AUTO_TRACE("SRTMinorServoBossCore::closeScan()"); - checkControl(); - checkEmergency(); + checkLineStatus(); + + if(m_scan_active.load() != Management::MNG_TRUE) + { + // Not scanning, or scan just stopped and the servo is still going back to the initial position + close_time = std::max(getTimeStamp(), m_last_scan.close_time); + return; + } + + // If we got here the scan was not complete, we need to update some values + // Update the scan_duration value. The scan thread will read the value and update the scan center point accordingly. + m_current_scan.scan_duration = getTimeStamp() - m_current_scan.start_time; + + // The thread might have already stopped, but we don't care + stopThread(m_scan_thread); + + // At this point the thread must have stopped, we waited at most 200ms for it to finish its execution, so we can safely assume it's done + // The thread also have updated m_last_scan with the final values - std::cout << "closeScan" << std::endl; + // Set the close_time + close_time = std::max(getTimeStamp(), m_last_scan.close_time); } -void SRTMinorServoBossCore::checkControl() +double SRTMinorServoBossCore::getElevation(const ACS::Time& acs_time) { - ACSErr::Completion_var comp; - if(m_component->control()->get_sync(comp.out()) != MinorServo::CONTROL_DISCOS) + AUTO_TRACE("SRTMinorServoBossCore::getElevation()"); + // TODO automatically try to get a new reference if the AntennaBoss component were to be deallocated + // What happens if we lose the reference? m_antennaBoss will not be _nil but getRawCoordinates will behave unexpectedly + + // Retrieve the AntennaBoss component if it was not initialized yet + try { - _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, "SRTMinorServoBossCore::checkControl()"); - impl.setReason("MinorServo system is not controlled by DISCOS!"); - throw impl; + if(CORBA::is_nil(m_antennaBoss)) + { + m_antennaBoss = m_component.getContainerServices()->getComponent<Antenna::AntennaBoss>("ANTENNA/Boss"); + } + + double azimuth, elevation; + m_antennaBoss->getRawCoordinates(acs_time, azimuth, elevation); + elevation *= DR2D; + // If the antennaBoss didn't command any movement to the telescope yet we get an elevation of 0° + // We don't want to track an elevation of 0°, especially when DISCOS just started + // There is a high chance the antenna is still at around 90° of elevation + // We "initialize" the tracking to an elevation of 45° + return elevation == 0.0 ? 45.0 : elevation; + } + catch(maciErrType::CannotGetComponentExImpl& impl) + { + m_antennaBoss = Antenna::AntennaBoss::_nil(); + _EXCPT(ComponentErrors::CouldntGetComponentExImpl, ex, "SRTMinorServoBossCore::getElevation()"); + ex.setComponentName("ANTENNA/Boss"); + ex.addData("Reason", "Cannot get the ANTENNA/Boss component"); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } } -void SRTMinorServoBossCore::checkEmergency() +void SRTMinorServoBossCore::checkLineStatus() { + AUTO_TRACE("SRTMinorServoBossCore::checkLineStatus()"); + + if(!m_socket.isConnected()) + { + setFailure(); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("Socket not connected."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + ACSErr::Completion_var comp; - if(m_component->emergency()->get_sync(comp.out()) == Management::MNG_TRUE) + if(m_component.control()->get_sync(comp.out()) != CONTROL_DISCOS) + { + setFailure(); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("MinorServo system is not controlled by DISCOS."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + if(m_component.emergency()->get_sync(comp.out()) == Management::MNG_TRUE) + { + setFailure(); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("MinorServo system in emergency status."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sleep_time) +{ + AUTO_TRACE("SRTMinorServoBossCore::startThread()"); + + try + { + if(thread != nullptr) + { + // We don't want to restart already active threads + if(!thread->isAlive()) + { + if(sleep_time != 0) + { + thread->setSleepTime(sleep_time); + } + thread->restart(); + } + } + else + { + thread = m_component.getContainerServices()->getThreadManager()->create<T, SRTMinorServoBossCore&>(T::c_thread_name, *this); + if(sleep_time != 0) + { + thread->setSleepTime(sleep_time); + } + thread->resume(); + } + } + catch(acsthreadErrType::CanNotSpawnThreadExImpl& impl) { - _EXCPT(MinorServoErrors::StatusErrorExImpl, impl, "SRTMinorServoBossCore::checkEmergency()"); - impl.setReason("MinorServo system in emergency status!"); - throw impl; + // The thread failed to start for some reason + setFailure(); + _ADD_BACKTRACE(ComponentErrors::CanNotStartThreadExImpl, ex, impl, "SRTMinorServoBossCore::startThread()"); + ex.setThreadName(T::c_thread_name); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startThread()", (LM_INFO, (std::string(T::c_thread_name) + " STARTED").c_str())); +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::stopThread(T*& thread) +{ + AUTO_TRACE("SRTMinorServoBossCore::stopThread()"); + + if(thread != nullptr && thread->isAlive()) + { + thread->stop(); + // We might not need this block, but if the previous call is blocking we won't get here anyway, better keep it + while(thread->isAlive()) + { + // TODO: remove this if found unnecessary + std::cout << "waiting thread" << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } + } +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::destroyThread(T*& thread) +{ + AUTO_TRACE("SRTMinorServoBossCore::destroyThread()"); + + if(thread != nullptr) + { + thread->terminate(); + m_component.getContainerServices()->getThreadManager()->destroy(thread); + } +} + +void SRTMinorServoBossCore::setFailure() +{ + AUTO_TRACE("SRTMinorServoBossCore::setFailure()"); + + m_subsystem_status.store(Management::MNG_FAILURE); + m_ready.store(Management::MNG_FALSE); + m_elevation_tracking.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_FALSE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_ERROR); +} + +Management::TBoolean SRTMinorServoBossCore::getCDBConfiguration(std::string which_configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::getCDBConfiguration()"); + std::string configuration = getCDBValue<std::string>(m_component.getContainerServices(), which_configuration); + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration != "ON" && configuration != "OFF") + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoBossCore::getCDBConfiguration()"); + ex.setFieldName(which_configuration.c_str()); + ex.addData("Reason", "Value should be 'ON' or 'OFF'"); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + return configuration == "ON" ? Management::MNG_TRUE : Management::MNG_FALSE; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 2725aec94..34d92da5a 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -1,14 +1,17 @@ #include "SRTMinorServoBossImpl.h" -using namespace maci; -using namespace SimpleParser; +using namespace MinorServo; +namespace SP = SimpleParser; _IRA_LOGFILTER_DECLARE; -SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : - CharacteristicComponentImpl(componentName, containerServices), - m_core(NULL), - m_parser(NULL), +SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, maci::ContainerServices* container_services) : + CharacteristicComponentImpl(component_name, container_services), + m_component_name(std::string(component_name.c_str())), + m_core_ptr(std::make_shared<SRTMinorServoBossCore>(*this)), + m_core(*m_core_ptr), + m_parser(SP::CParser<SRTMinorServoBossImpl>(this, 2)), + m_connected_ptr(this), m_status_ptr(this), m_ready_ptr(this), m_actual_setup_ptr(this), @@ -35,172 +38,74 @@ SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString &componentName, m SRTMinorServoBossImpl::~SRTMinorServoBossImpl() { AUTO_TRACE("SRTMinorServoBossImpl::~SRTMinorServoBossImpl()"); - - if(m_parser != NULL) - { - delete m_parser; - } - if(m_core != NULL) - { - delete m_core; - } } void SRTMinorServoBossImpl::initialize() { AUTO_TRACE("SRTMinorServoBossImpl::initialize()"); - _IRA_LOGFILTER_ACTIVATE(200000000, 500000000); - - m_core = new SRTMinorServoBossCore(this); - - IRA::CString string_buffer; - if(!IRA::CIRATools::getDBValue(getContainerServices(), "active_surface_configuration", string_buffer)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setFieldName("active_surface_configuration"); - throw impl; - } - else - { - std::string active_surface_configuration(string_buffer); - - if(active_surface_configuration == "ON") - { - m_core->m_as_configuration = Management::MNG_TRUE; - } - else if(active_surface_configuration == "OFF") - { - m_core->m_as_configuration = Management::MNG_FALSE; - } - else - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setFieldName("active_surface_configuration"); - impl.addData("Reason", "Value should be 'ON' or 'OFF'"); - throw impl; - } - } - - if(!IRA::CIRATools::getDBValue(getContainerServices(), "elevation_tracking_enabled", string_buffer)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setFieldName("elevation_tracking_enabled"); - throw impl; - } - else - { - std::string elevation_tracking_enabled(string_buffer); - - if(elevation_tracking_enabled == "ON") - { - m_core->m_elevation_tracking_enabled = Management::MNG_TRUE; - } - else if(elevation_tracking_enabled == "OFF") - { - m_core->m_elevation_tracking_enabled = Management::MNG_FALSE; - } - else - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setFieldName("elevation_tracking_enabled"); - impl.addData("Reason", "Value should be 'ON' or 'OFF'"); - throw impl; - } - } + _IRA_LOGFILTER_ACTIVATE(10000000, 20000000); try { - std::string component_name = getContainerServices()->getName().c_str(); - - m_status_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>((component_name + ":status").c_str(), getComponent(), new MSGenericDevIO<Management::TSystemStatus, std::atomic<Management::TSystemStatus> >(&m_core->m_subsystem_status), true); - m_ready_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":ready").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_ready), true); - m_actual_setup_ptr = new baci::ROstring((component_name + ":actualSetup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(&m_core->m_actual_setup), true); - m_motion_info_ptr = new baci::ROstring((component_name + ":motionInfo").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::atomic<MinorServo::SRTMinorServoMotionStatus> >(&m_core->m_motion_status), true); - m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":starting").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_starting), true); - m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":asConfiguration").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_as_configuration), true); - m_elevation_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":elevationTrack").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_elevation_tracking_enabled), true); - m_scan_active_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":scanActive").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_scan_active), true); - m_scanning_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":scanning").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_scanning), true); - m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":tracking").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean> >(&m_core->m_tracking), true); - - SRTMinorServoDevIOInfo dev_io_info; - dev_io_info.secure_area = m_core->m_status_secure_area; - - dev_io_info.property_name = "current_configuration"; - dev_io_info.property_fields = std::vector<std::string>{ "CURRENT_CONFIG" }; - m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((component_name + ":current_configuration").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoFocalConfiguration>(dev_io_info), true); - - dev_io_info.property_name = "simulation_enabled"; - dev_io_info.property_fields = std::vector<std::string>{ "SIMULATION_ENABLED" }; - m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":simulation_enabled").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); - - dev_io_info.property_name = "plc_time"; - dev_io_info.property_fields = std::vector<std::string>{ "PLC_TIME" }; - m_plc_time_ptr = new baci::ROdouble((component_name + ":plc_time").c_str(), getComponent(), new MSDevIO<CORBA::Double>(dev_io_info), true); - - dev_io_info.property_name = "plc_version"; - dev_io_info.property_fields = std::vector<std::string>{ "PLC_VERSION" }; - m_plc_version_ptr = new baci::ROstring((component_name + ":plc_version").c_str(), getComponent(), new MSDevIO<ACE_CString>(dev_io_info), true); - - dev_io_info.property_name = "control"; - dev_io_info.property_fields = std::vector<std::string>{ "CONTROL" }; - m_control_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((component_name + ":control").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoControlStatus>(dev_io_info), true); - - dev_io_info.property_name = "power"; - dev_io_info.property_fields = std::vector<std::string>{ "POWER" }; - m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":power").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); - - dev_io_info.property_name = "emergency"; - dev_io_info.property_fields = std::vector<std::string>{ "EMERGENCY" }; - m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((component_name + ":emergency").c_str(), getComponent(), new MSDevIO<Management::TBoolean>(dev_io_info), true); - - dev_io_info.property_name = "gregorian_cover"; - dev_io_info.property_fields = std::vector<std::string>{ "GREGORIAN_CAP" }; - m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(MinorServo::SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((component_name + ":gregorian_cover").c_str(), getComponent(), new MSDevIO<MinorServo::SRTMinorServoGregorianCoverStatus>(dev_io_info), true); - - dev_io_info.property_name = "last_executed_command"; - dev_io_info.property_fields = std::vector<std::string>{ "LAST_EXECUTED_COMMAND" }; - m_last_executed_command_ptr = new baci::ROdouble((component_name + ":last_executed_command").c_str(), getComponent(), new MSDevIO<CORBA::Double>(dev_io_info), true); + m_connected_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":connected").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_socket_connected), true); + m_status_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>((m_component_name + ":status").c_str(), getComponent(), + new MSGenericDevIO<Management::TSystemStatus, std::atomic<Management::TSystemStatus>>(m_core.m_subsystem_status), true); + m_ready_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":ready").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_ready), true); + m_actual_setup_ptr = new baci::ROstring((m_component_name + ":actualSetup").c_str(), getComponent(), + new MSGenericDevIO<ACE_CString, std::string>(m_core.m_actual_setup), true); + m_motion_info_ptr = new baci::ROstring((m_component_name + ":motionInfo").c_str(), getComponent(), + new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status), true); + m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":starting").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_starting), true); + m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":asConfiguration").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_as_configuration), true); + m_elevation_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":elevationTrack").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_elevation_tracking_enabled), true); + m_scan_active_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":scanActive").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scan_active), true); + m_scanning_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":scanning").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scanning), true); + m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_tracking), true); + m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>("current_configuration", "CURRENT_CONFIG", m_core.m_status), true); + m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":simulation_enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean>("simulation_enabled", "SIMULATION_ENABLED", m_core.m_status), true); + m_plc_time_ptr = new baci::ROdouble((m_component_name + ":plc_time").c_str(), getComponent(), + new MSAnswerMapDevIO<CORBA::Double>("plc_time", "PLC_TIME", m_core.m_status), true); + m_plc_version_ptr = new baci::ROstring((m_component_name + ":plc_version").c_str(), getComponent(), + new MSAnswerMapDevIO<ACE_CString>("plc_version", "PLC_VERSION", m_core.m_status), true); + m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoControlStatus>("control", "CONTROL", m_core.m_status), true); + m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":power").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean>("power", "POWER", m_core.m_status), true); + m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean>("emergency", "EMERGENCY", m_core.m_status), true); + m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>("gregorian_cover", "GREGORIAN_CAP", m_core.m_status), true); + m_last_executed_command_ptr = new baci::ROdouble((m_component_name + ":last_executed_command").c_str(), getComponent(), + new MSAnswerMapDevIO<CORBA::Double>("last_executed_command", "LAST_EXECUTED_COMMAND", m_core.m_status), true); } - catch(std::bad_alloc& ex) + catch(std::bad_alloc& ba) { - _THROW_EXCPT(ComponentErrors::MemoryAllocationExImpl, "SRTMinorServoBossImpl::initialize()"); + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, "SRTMinorServoBossImpl::initialize()"); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); } - m_parser = new SimpleParser::CParser<SRTMinorServoBossImpl>(this, 10); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_INFO, "PROPERTIES INITIALIZED")); - m_parser->add("servoSetup", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setup), 1); - m_parser->add("servoPark", new function0<SRTMinorServoBossImpl, non_constant, void_type>(this, &SRTMinorServoBossImpl::park), 0); - m_parser->add("setServoElevationTracking", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setElevationTracking), 1); - m_parser->add("setServoASConfiguration", new function1<SRTMinorServoBossImpl, non_constant, void_type, I<string_type> >(this, &SRTMinorServoBossImpl::setASConfiguration), 1); - m_parser->add("setServoOffset", new function2<SRTMinorServoBossImpl, non_constant, void_type, I<string_type>, I<double_type> >(this, &SRTMinorServoBossImpl::setOffsets), 2); - m_parser->add("clearServoOffsets", new function0<SRTMinorServoBossImpl, non_constant, void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); + m_parser.add("servoSetup", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setup), 1); + m_parser.add("servoPark", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::park), 0); + m_parser.add("setServoElevationTracking", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setElevationTracking), 1); + m_parser.add("setServoASConfiguration", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setASConfiguration), 1); + m_parser.add("setServoOffset", new SP::function2<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>, SP::I<SP::double_type>>(this, &SRTMinorServoBossImpl::setUserOffset), 2); + m_parser.add("clearServoOffsets", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); + m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); - try - { - double status_thread_period; - if(!IRA::CIRATools::getDBValue(getContainerServices(), "status_thread_period", status_thread_period)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setFieldName("status_thread_period"); - throw impl; - } - m_status_thread = getContainerServices()->getThreadManager()->create<SRTMinorServoStatusThread, SRTMinorServoBossCore*>("SRTMinorServoStatusThread", m_core); - m_status_thread->setSleepTime(status_thread_period * 10000000); - m_status_thread->resume(); - } - catch(acsthreadErrType::acsthreadErrTypeExImpl& ex) - { - _EXCPT(ComponentErrors::CanNotStartThreadExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.setThreadName("SRTMinorServoStatusThread"); - throw impl; - } - catch(...) - { - _EXCPT(ComponentErrors::UnexpectedExImpl, impl, "SRTMinorServoBossImpl::initialize()"); - impl.addData("Reason", "Encountered an unexpected error when starting the SRTMinorServoStatusThread!"); - throw impl; - } + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_INFO, "PARSER INITIALIZED")); } void SRTMinorServoBossImpl::execute() @@ -212,13 +117,6 @@ void SRTMinorServoBossImpl::cleanUp() { AUTO_TRACE("SRTMinorServoBossImpl::cleanUp()"); stopPropertiesMonitoring(); - - if(m_status_thread != NULL) - { - m_status_thread->suspend(); - m_status_thread->terminate(); - } - _IRA_LOGFILTER_FLUSH; _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::cleanUp(); @@ -228,13 +126,6 @@ void SRTMinorServoBossImpl::aboutToAbort() { AUTO_TRACE("SRTMinorServoBossImpl::aboutToAbort()"); stopPropertiesMonitoring(); - - if(m_status_thread != NULL) - { - m_status_thread->suspend(); - m_status_thread->terminate(); - } - _IRA_LOGFILTER_FLUSH; _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::aboutToAbort(); @@ -243,152 +134,168 @@ void SRTMinorServoBossImpl::aboutToAbort() void SRTMinorServoBossImpl::setup(const char* configuration) { AUTO_TRACE("SRTMinorServoBossImpl::setup()"); - m_core->setup(std::string(configuration)); + m_core.setup(std::string(configuration)); } void SRTMinorServoBossImpl::park() { AUTO_TRACE("SRTMinorServoBossImpl::park()"); - m_core->park(); + m_core.park(); } CORBA::Boolean SRTMinorServoBossImpl::isElevationTrackingEn() { AUTO_TRACE("SRTMinorServoBossImpl::isElevationTrackingEn()"); - return m_core->m_elevation_tracking_enabled == Management::MNG_TRUE ? true : false; + return m_core.m_elevation_tracking_enabled.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isElevationTracking() { AUTO_TRACE("SRTMinorServoBossImpl::isElevationTracking()"); - return m_core->m_elevation_tracking == Management::MNG_TRUE ? true : false; + return m_core.m_elevation_tracking.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isTracking() { AUTO_TRACE("SRTMinorServoBossImpl::isTracking()"); - return m_core->m_tracking == Management::MNG_TRUE ? true : false; + return m_core.m_tracking.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isStarting() { AUTO_TRACE("SRTMinorServoBossImpl::isStarting()"); - return m_core->m_starting == Management::MNG_TRUE ? true : false; + return m_core.m_starting.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isASConfiguration() { AUTO_TRACE("SRTMinorServoBossImpl::isASConfiguration()"); - return m_core->m_as_configuration == Management::MNG_TRUE ? true : false; + return m_core.m_as_configuration.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isParking() { AUTO_TRACE("SRTMinorServoBossImpl::isParking()"); - return (m_core->m_starting == Management::MNG_TRUE && m_core->m_commanded_configuration == MinorServo::CONFIGURATION_PARK); + return (m_core.m_starting.load() == Management::MNG_TRUE && m_core.m_commanded_configuration.load() == CONFIGURATION_PARK); } CORBA::Boolean SRTMinorServoBossImpl::isReady() { AUTO_TRACE("SRTMinorServoBossImpl::isReady()"); - return m_core->m_ready == Management::MNG_TRUE ? true : false; + return m_core.m_ready.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isScanning() { AUTO_TRACE("SRTMinorServoBossImpl::isScanning()"); - return m_core->m_scanning == Management::MNG_TRUE ? true : false; + return m_core.m_scanning.load() == Management::MNG_TRUE ? true : false; } CORBA::Boolean SRTMinorServoBossImpl::isScanActive() { AUTO_TRACE("SRTMinorServoBossImpl::isScanActive()"); - return m_core->m_scan_active == Management::MNG_TRUE ? true : false; + return m_core.m_scan_active.load() == Management::MNG_TRUE ? true : false; } char* SRTMinorServoBossImpl::getActualSetup() { AUTO_TRACE("SRTMinorServoBossImpl::getActualSetup()"); - return CORBA::string_dup(m_core->m_actual_setup.c_str()); + return CORBA::string_dup(m_core.m_actual_setup.c_str()); } char* SRTMinorServoBossImpl::getCommandedSetup() { AUTO_TRACE("SRTMinorServoBossImpl::getCommandedSetup()"); - return CORBA::string_dup(m_core->m_commanded_setup.c_str()); + return CORBA::string_dup(m_core.m_commanded_setup.c_str()); } CORBA::Double SRTMinorServoBossImpl::getCentralScanPosition() { AUTO_TRACE("SRTMinorServoBossImpl::getCentralScanPosition()"); - return 0.0; + + if(m_core.m_scan_active.load() == Management::MNG_TRUE) + { + return CORBA::Double(m_core.m_current_scan.central_position); + } + else if(m_core.m_last_scan.servo_name != "") // We are not scanning now, but we performed a scan previously + { + return CORBA::Double(m_core.m_last_scan.central_position); + } + else + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossImpl::getCentralPosition()"); + ex.setReason("No scan has been performed yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTMinorServoBossImpl::clearOffsets() +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); + ACS_LOG(LM_FULL_INFO, "clearServoOffsets", (LM_INFO, "CLEARING ALL USER OFFSETS")); + m_core.clearUserOffsets("ALL"); } void SRTMinorServoBossImpl::clearUserOffset(const char* servo_name) { AUTO_TRACE("SRTMinorServoBossImpl::clearUserOffset()"); - m_core->clearUserOffsets(std::string(servo_name)); + m_core.clearUserOffsets(std::string(servo_name)); } void SRTMinorServoBossImpl::setUserOffset(const char* servo_axis_name, CORBA::Double offset) { AUTO_TRACE("SRTMinorServoBossImpl::setUserOffset()"); - m_core->setUserOffset(std::string(servo_axis_name), (double)offset); + m_core.setUserOffset(std::string(servo_axis_name), (double)offset); +} + +void SRTMinorServoBossImpl::setUserOffset(const char* servo_axis_name, const double& offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setUserOffset()"); + m_core.setUserOffset(std::string(servo_axis_name), (double)offset, true); } ACS::doubleSeq* SRTMinorServoBossImpl::getUserOffset() { AUTO_TRACE("SRTMinorServoBossImpl::getUserOffset()"); - - std::vector<double> userOffsets = m_core->getUserOffsets(); - ACS::doubleSeq_var offsets = new ACS::doubleSeq; - offsets->length(userOffsets.size()); - for(size_t i = 0; i < userOffsets.size(); i++) - { - offsets[i] = userOffsets[i]; - } - return offsets._retn(); + return m_core.getUserOffsets(); } void SRTMinorServoBossImpl::clearSystemOffset(const char* servo_name) { AUTO_TRACE("SRTMinorServoBossImpl::clearSystemOffset()"); - m_core->clearSystemOffsets(std::string(servo_name)); + m_core.clearSystemOffsets(std::string(servo_name)); } void SRTMinorServoBossImpl::setSystemOffset(const char* servo_axis_name, CORBA::Double offset) { AUTO_TRACE("SRTMinorServoBossImpl::setSystemOffset()"); - m_core->setSystemOffset(std::string(servo_axis_name), (double)offset); + m_core.setSystemOffset(std::string(servo_axis_name), (double)offset); } ACS::doubleSeq* SRTMinorServoBossImpl::getSystemOffset() { AUTO_TRACE("SRTMinorServoBossImpl::getSystemOffset()"); - - std::vector<double> systemOffsets = m_core->getSystemOffsets(); - ACS::doubleSeq_var offsets = new ACS::doubleSeq; - offsets->length(systemOffsets.size()); - for(size_t i = 0; i < systemOffsets.size(); i++) - { - offsets[i] = systemOffsets[i]; - } - return offsets._retn(); + return m_core.getSystemOffsets(); } void SRTMinorServoBossImpl::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) { AUTO_TRACE("SRTMinorServoBossImpl::getAxesInfo()"); - m_core->getAxesInfo(axes_names, axes_units); + m_core.getAxesInfo(axes_names, axes_units); } char* SRTMinorServoBossImpl::getScanAxis() { AUTO_TRACE("SRTMinorServoBossImpl::getScanAxis()"); - if(isScanActive()) + if(m_core.m_scan_active.load() == Management::MNG_TRUE) { - return CORBA::string_dup(""); + return CORBA::string_dup((m_core.m_current_scan.servo_name + "_" + m_core.m_current_scan.axis_name).c_str()); + } + else if(!m_core.m_last_scan.servo_name.empty()) + { + return CORBA::string_dup((m_core.m_last_scan.servo_name + "_" + m_core.m_last_scan.axis_name).c_str()); } else { @@ -396,70 +303,52 @@ char* SRTMinorServoBossImpl::getScanAxis() } } -ACS::doubleSeq* SRTMinorServoBossImpl::getAxesPosition(ACS::Time) +ACS::doubleSeq* SRTMinorServoBossImpl::getAxesPosition(ACS::Time acs_time) { - AUTO_TRACE("SRTMinorServoBossImpl::getAxesPosition()"); - - ACS::doubleSeq_var positions = new ACS::doubleSeq; - positions->length(3); - for(size_t i = 0; i < 3; i++) - { - positions[i] = 0; - } - return positions._retn(); + AUTO_TRACE("SRTMinorServoBossImpl::getAxesPositions()"); + return m_core.getAxesPositions(acs_time == 0 ? getTimeStamp() : acs_time); } void SRTMinorServoBossImpl::setElevationTracking(const char* configuration) { AUTO_TRACE("SRTMinorServoBossImpl::setElevationTracking()"); - m_core->setElevationTracking(std::string(configuration)); + m_core.setElevationTracking(std::string(configuration)); } void SRTMinorServoBossImpl::setASConfiguration(const char* configuration) { AUTO_TRACE("SRTMinorServoBossImpl::setASConfiguration()"); - m_core->setASConfiguration(std::string(configuration)); + m_core.setASConfiguration(std::string(configuration)); } -void SRTMinorServoBossImpl::setOffsets(const char* axis_code, const double& offset) -{ - AUTO_TRACE("SRTMinorServoBossImpl::setOffset()"); -} - -void SRTMinorServoBossImpl::clearOffsets() +void SRTMinorServoBossImpl::setGregorianCoverPosition(const char* position) { - AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); - - for(const auto& [name, servo] : m_core->m_servos) - { - m_core->clearUserOffsets(name); - // Not sure about the following - //m_core->clearSystemOffsets(name); - } + AUTO_TRACE("SRTMinorServoBossImpl::setGregorianCoverPosition()"); + m_core.setGregorianCoverPosition(std::string(position)); } -CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, MinorServo::TRunTimeParameters_out ms_parameters) +CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters) { AUTO_TRACE("SRTMinorServoBossImpl::checkScan()"); - return m_core->checkScan(start_time, scan_info, antenna_info, ms_parameters); + return m_core.checkScan(start_time, scan_info, antenna_info, ms_parameters); } -void SRTMinorServoBossImpl::startScan(ACS::Time& start_time, const MinorServo::MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +void SRTMinorServoBossImpl::startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) { AUTO_TRACE("SRTMinorServoBossImpl::startScan()"); - m_core->startScan(start_time, scan_info, antenna_info); + m_core.startScan(start_time, scan_info, antenna_info); } void SRTMinorServoBossImpl::closeScan(ACS::Time& close_time) { AUTO_TRACE("SRTMinorServoBossImpl::closeScan()"); - m_core->closeScan(close_time); + m_core.closeScan(close_time); } void SRTMinorServoBossImpl::preset(double elevation) { AUTO_TRACE("SRTMinorServoBossImpl::preset()"); - m_core->preset(elevation); + m_core.preset(elevation); } CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out answer) @@ -467,55 +356,60 @@ CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out AUTO_TRACE("SRTMinorServoBossImpl::command()"); IRA::CString out; - bool res; + bool res = false; + try { - m_parser->run(cmd, out); + m_parser.run(cmd, out); res = true; } - catch(ParserErrors::ParserErrorsExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - res = false; + // Only print the routine, the reason is automatically provided in the message inside the jlog. + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); } - catch(ManagementErrors::ConfigurationErrorExImpl& ex) + catch(ComponentErrors::ComponentErrorsEx& ex) { - ex.log(LM_ERROR); - res = false; + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); } - catch(ACSErr::ACSbaseExImpl& ex) + catch(ManagementErrors::ConfigurationErrorEx& ex) { - ex.log(LM_ERROR); - res = false; + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); } - catch(...) + catch(ManagementErrors::ParkingErrorEx& ex) { - ACS_SHORT_LOG((LM_WARNING, "SRTMinorServoBossImpl::command(): unknown exception.")); - res = false; + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); } + catch(...) // Unknown exception. If the above catch blocks are written correctly we should never get here. + { + ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossImpl::command()")); + } + answer = CORBA::string_dup((const char *)out); return res; } -GET_PROPERTY_REFERENCE(Management::ROTSystemStatus, m_status_ptr, status) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_ready_ptr, ready) -GET_PROPERTY_REFERENCE(ACS::ROstring, m_actual_setup_ptr, actualSetup) -GET_PROPERTY_REFERENCE(ACS::ROstring, m_motion_info_ptr, motionInfo) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_starting_ptr, starting) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_as_configuration_ptr, asConfiguration) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_elevation_tracking_ptr, elevationTrack) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_scan_active_ptr, scanActive) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_scanning_ptr, scanning) -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_tracking_ptr, tracking) - -GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoFocalConfiguration, m_current_configuration_ptr, current_configuration); -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_simulation_enabled_ptr, simulation_enabled); -GET_PROPERTY_REFERENCE(ACS::ROdouble, m_plc_time_ptr, plc_time); -GET_PROPERTY_REFERENCE(ACS::ROstring, m_plc_version_ptr, plc_version); -GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoControlStatus, m_control_ptr, control); -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_power_ptr, power); -GET_PROPERTY_REFERENCE(Management::ROTBoolean, m_emergency_ptr, emergency); -GET_PROPERTY_REFERENCE(MinorServo::ROSRTMinorServoGregorianCoverStatus, m_gregorian_cover_ptr, gregorian_cover); -GET_PROPERTY_REFERENCE(ACS::ROdouble, m_last_executed_command_ptr, last_executed_command); + +GET_PROPERTY_REFERENCE(Management::ROTSystemStatus, SRTMinorServoBossImpl, m_status_ptr, status) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_ready_ptr, ready) +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_actual_setup_ptr, actualSetup) +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_motion_info_ptr, motionInfo) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_starting_ptr, starting) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_as_configuration_ptr, asConfiguration) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_elevation_tracking_ptr, elevationTrack) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_scan_active_ptr, scanActive) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_scanning_ptr, scanning) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_tracking_ptr, tracking) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_connected_ptr, connected) +GET_PROPERTY_REFERENCE(ROSRTMinorServoFocalConfiguration, SRTMinorServoBossImpl, m_current_configuration_ptr, current_configuration); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_simulation_enabled_ptr, simulation_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdouble, SRTMinorServoBossImpl, m_plc_time_ptr, plc_time); +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_plc_version_ptr, plc_version); +GET_PROPERTY_REFERENCE(ROSRTMinorServoControlStatus, SRTMinorServoBossImpl, m_control_ptr, control); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_power_ptr, power); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_emergency_ptr, emergency); +GET_PROPERTY_REFERENCE(ROSRTMinorServoGregorianCoverStatus, SRTMinorServoBossImpl, m_gregorian_cover_ptr, gregorian_cover); +GET_PROPERTY_REFERENCE(ACS::ROdouble, SRTMinorServoBossImpl, m_last_executed_command_ptr, last_executed_command); #include <maciACSComponentDefines.h> MACI_DLL_SUPPORT_FUNCTIONS(SRTMinorServoBossImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index 747c59c93..63177b410 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -1,55 +1,59 @@ #include "SRTMinorServoParkThread.h" -SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): - ACS::Thread(name, responseTime, sleepTime), +using namespace MinorServo; + +SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), m_core(core) { - m_thread_name = std::string(name.c_str()); - AUTO_TRACE(m_thread_name + "::SRTMinorServoParkThread()"); + AUTO_TRACE("SRTMinorServoParkThread::SRTMinorServoParkThread()"); } SRTMinorServoParkThread::~SRTMinorServoParkThread() { - AUTO_TRACE(m_thread_name + "::~SRTMinorServoParkThread()"); + AUTO_TRACE("SRTMinorServoParkThread::~SRTMinorServoParkThread()"); } void SRTMinorServoParkThread::onStart() { - AUTO_TRACE(m_thread_name + "::onStart()"); + AUTO_TRACE("SRTMinorServoParkThread::onStart()"); this->setSleepTime(500000); // 50 milliseconds - m_start_time = CIRATools::getUNIXEpoch(); + m_start_time = IRA::CIRATools::getUNIXEpoch(); m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStart()", (LM_INFO, "PARK THREAD STARTED")); } void SRTMinorServoParkThread::onStop() { - AUTO_TRACE(m_thread_name + "::onStop()"); + AUTO_TRACE("SRTMinorServoParkThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStop()", (LM_INFO, "PARK THREAD STOPPED")); } void SRTMinorServoParkThread::runLoop() { - AUTO_TRACE(m_thread_name + "::runLoop()"); + AUTO_TRACE("SRTMinorServoParkThread::runLoop()"); try { - m_core->checkControl(); - m_core->checkEmergency(); + m_core.checkLineStatus(); } - catch(MinorServoErrors::StatusErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); this->setStopped(); return; } - if(CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) + if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) { - m_core->m_starting = Management::MNG_FALSE; - m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_core->m_subsystem_status = Management::MNG_FAILURE; - ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, "Timeout while performing a park operation.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::runLoop()", (LM_ERROR, "Timeout while performing a park operation.")); + m_core.setFailure(); this->setStopped(); + return; } ACSErr::Completion_var comp; @@ -59,13 +63,13 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == MinorServo::COVER_STATUS_CLOSED ? true : false; + bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == COVER_STATUS_CLOSED? true : false; // 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, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; })) { m_status = 1; @@ -75,16 +79,15 @@ void SRTMinorServoParkThread::runLoop() } case 1: { - for(const auto& [name, servo] : m_core->m_servos) + for(const auto& [name, servo] : m_core.m_servos) { servo->setup(""); } - m_core->m_actual_setup = m_core->m_commanded_setup; - m_core->m_starting = Management::MNG_FALSE; - - m_core->m_subsystem_status = Management::MNG_OK; - m_core->m_motion_status = MinorServo::MOTION_STATUS_PARK; + m_core.m_actual_setup = m_core.m_commanded_setup; + m_core.m_starting.store(Management::MNG_FALSE); + m_core.m_motion_status.store(MOTION_STATUS_PARKED); + m_core.m_subsystem_status.store(Management::MNG_OK); this->setStopped(); break; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp new file mode 100644 index 000000000..bfec79cf9 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -0,0 +1,247 @@ +#include "SRTMinorServoScanThread.h" + +using namespace MinorServo; + +SRTMinorServoScanThread::SRTMinorServoScanThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time): + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_error(false) +{ + AUTO_TRACE("SRTMinorServoScanThread::SRTMinorServoScanThread()"); +} + +SRTMinorServoScanThread::~SRTMinorServoScanThread() +{ + AUTO_TRACE("SRTMinorServoScanThread::~SRTMinorServoScanThread()"); +} + +void SRTMinorServoScanThread::onStart() +{ + AUTO_TRACE("SRTMinorServoScanThread::onStart()"); + + // We want to start moving the scan servo ASAP and bring its scan axis to the start position. + // The other servos will keep tracking normally. + // The general implementation accounts for derotators which will be integrated in the future. + // The requested scan will start at start_time by adding the correct scan offset to each point. + + // This will find the first useful time to send a point synchronized with the scan start time: m_core.m_current_scan.start_time - (PROGRAM_TRACK_TIMEGAP * N) > now + PROGRAM_TRACK_FUTURE_TIME + size_t pre_scan_points = std::floor((m_core.m_current_scan.start_time - (getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME)) / PROGRAM_TRACK_TIMEGAP); + m_point_time = m_core.m_current_scan.start_time - pre_scan_points * PROGRAM_TRACK_TIMEGAP; + m_point_id = 0; + m_trajectory_id = (unsigned int)(m_point_time / 1000); + + // How many points in the scan trajectory? + // We don't check the modulo of the division, we assume all the scans duration is always expressed in seconds, therefore the modulo should always be 0 + size_t scan_points = m_core.m_current_scan.scan_duration / PROGRAM_TRACK_TIMEGAP + 1; + // How big is each offset step? We have N points but N-1 segments + double scan_delta = m_core.m_current_scan.scan_range / (scan_points - 1); + + m_scan_offsets = SRTMinorServoPositionsQueue(pre_scan_points + scan_points, 1); + for(size_t i = 0; i < pre_scan_points; i++) + { + m_scan_offsets.put(m_point_time + i * PROGRAM_TRACK_TIMEGAP, { -m_core.m_current_scan.scan_range / 2 }); + } + for(size_t i = 0; i < scan_points; i++) + { + m_scan_offsets.put(m_core.m_current_scan.start_time + i * PROGRAM_TRACK_TIMEGAP, {-m_core.m_current_scan.scan_range / 2 + i * scan_delta}); + } + + // We save the starting coordinates to return to them when the scan is finished + ACSErr::Completion_var comp; + auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); + m_starting_coordinates = *servo->virtual_positions()->get_sync(comp.out()); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_INFO, "SCAN THREAD STARTED")); +} + +void SRTMinorServoScanThread::onStop() +{ + AUTO_TRACE("SRTMinorServoScanThread::onStop()"); + + m_core.m_scanning.store(Management::MNG_FALSE); + + if(m_error) // We didn't reach the end of the scan because of some error + { + // Should we set everything to failure? + m_core.setFailure(); + return; + } + + m_core.m_scanning.store(Management::MNG_FALSE); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + + // Reset m_point_time + m_point_time -= PROGRAM_TRACK_FUTURE_TIME; + + auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); + + // Update the central scan position using the correct elevation (from the past) + m_core.m_current_scan.central_position = (*servo->calcCoordinates(m_core.getElevation((m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration) / 2)))[m_core.m_current_scan.axis_index]; + + ACS::doubleSeq return_coordinates; + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + // Restart the tracking + m_core.startThread(m_core.m_tracking_thread); + return_coordinates = *servo->calcCoordinates(m_core.getElevation(getTimeStamp())); + } + else + { + // We were not tracking, send the servo to the starting position + servo->preset(m_starting_coordinates); + return_coordinates = m_starting_coordinates; + } + + // Calculate the close_time again now that the servos are already moving back to their original position + m_core.m_current_scan.close_time = getTimeStamp() + servo->getTravelTime(ACS::doubleSeq(), return_coordinates); + + // Copy current_scan into last_scan + m_core.m_last_scan = m_core.m_current_scan; + + // Finally unlock the scan capabilities + m_core.m_scan_active.store(Management::MNG_FALSE); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_INFO, "SCAN THREAD STOPPED")); +} + +void SRTMinorServoScanThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoScanThread::runLoop()"); + + if(m_point_time == m_core.m_current_scan.start_time + PROGRAM_TRACK_FUTURE_TIME) // The system should be starting to scan right now + { + m_core.m_scanning.store(Management::MNG_TRUE); + } + else if(m_point_time == m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration + PROGRAM_TRACK_FUTURE_TIME) // The system should have finished to scan right now + { + this->setStopped(); + return; + } + else if(m_point_time > m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration) // All points were sent, we can stop sending but we'll wait for the scan to finish + { + m_point_time += PROGRAM_TRACK_TIMEGAP; + + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((m_point_time - PROGRAM_TRACK_FUTURE_TIME) - getTimeStamp()); + return; + } + + try + { + m_core.checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + + Management::TBoolean elevation_tracking = Management::MNG_FALSE; + + if(m_point_id > 0) + { + if(std::all_of(m_core.m_tracking_servos.begin(), m_core.m_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo.first != m_core.m_current_scan.servo_name) + { + // Not tracking the elevation and this servo is not involved in the current scan + return true; + } + + bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; + if(!return_value) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_ERROR, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + } + return return_value; + } + else + { + return true; + } + })) + { + // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation + elevation_tracking = Management::MNG_TRUE; + } + else + { + m_error = true; + this->setStopped(); + return; + } + } + + double elevation = m_core.m_current_scan.starting_elevation; + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) // We are in elevation tracking mode + { + try + { + elevation = m_core.getElevation(m_point_time); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getErrorFromEx(ex)) + " Using a fixed elevation of " + std::to_string(elevation) + "° as scan central coordinate!").c_str()); + elevation_tracking = Management::MNG_FALSE; + } + } + + ACSErr::Completion_var comp; + for(const auto& [servo_name, servo] : m_core.m_tracking_servos) + { + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo_name != m_core.m_current_scan.servo_name) + { + // Not tracking the elevation and this servo is not involved in the current scan + continue; + } + + ACS::doubleSeq coordinates = m_starting_coordinates; + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + coordinates = *servo->calcCoordinates(elevation); + } + + if(servo_name == m_core.m_current_scan.servo_name) + { + try + { + // Ask for the offset in the exact m_point_time (we don't want to interpolate or retrieve any value before or after the scan time span) + coordinates[m_core.m_current_scan.axis_index] += m_scan_offsets.get(m_point_time, true).second[0]; + } + catch(...) + { + // No offset found for this point_time, ignore + } + } + + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, coordinates); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + } + } + + m_core.m_elevation_tracking.store(elevation_tracking); + + m_point_id++; + m_point_time += PROGRAM_TRACK_TIMEGAP; + + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((m_point_time - PROGRAM_TRACK_FUTURE_TIME) - getTimeStamp()); +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 21fc71927..70bc288d7 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -1,58 +1,63 @@ #include "SRTMinorServoSetupThread.h" -SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): - ACS::Thread(name, responseTime, sleepTime), +using namespace MinorServo; + +SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), m_core(core) { - m_thread_name = std::string(name.c_str()); - AUTO_TRACE(m_thread_name + "::SRTMinorServoSetupThread()"); + AUTO_TRACE("SRTMinorServoSetupThread::SRTMinorServoSetupThread()"); } SRTMinorServoSetupThread::~SRTMinorServoSetupThread() { - AUTO_TRACE(m_thread_name + "::~SRTMinorServoSetupThread()"); + AUTO_TRACE("SRTMinorServoSetupThread::~SRTMinorServoSetupThread()"); } void SRTMinorServoSetupThread::onStart() { - AUTO_TRACE(m_thread_name + "::onStart()"); + AUTO_TRACE("SRTMinorServoSetupThread::onStart()"); + this->setSleepTime(500000); // 50 milliseconds - m_start_time = CIRATools::getUNIXEpoch(); + m_start_time = IRA::CIRATools::getUNIXEpoch(); - MinorServo::SRTMinorServoFocalConfiguration commanded_configuration = m_core->m_commanded_configuration; - m_LDO_configuration = MinorServo::LDOConfigurationNameTable.left.at(commanded_configuration); - m_gregorian_cover_position = commanded_configuration == MinorServo::CONFIGURATION_PRIMARY ? MinorServo::COVER_STATUS_CLOSED : MinorServo::COVER_STATUS_OPEN; + SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); + m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); + m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_INFO, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); } void SRTMinorServoSetupThread::onStop() { - AUTO_TRACE(m_thread_name + "::onStop()"); + AUTO_TRACE("SRTMinorServoSetupThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStop()", (LM_INFO, "SETUP THREAD STOPPED")); } void SRTMinorServoSetupThread::runLoop() { - AUTO_TRACE(m_thread_name + "::runLoop()"); + AUTO_TRACE("SRTMinorServoSetupThread::runLoop()"); try { - m_core->checkControl(); - m_core->checkEmergency(); + m_core.checkLineStatus(); } - catch(MinorServoErrors::StatusErrorExImpl& ex) + catch(MinorServoErrors::StatusErrorEx& ex) { - ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); this->setStopped(); return; } - if(CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) + if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) { - m_core->m_starting = Management::MNG_FALSE; - m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_core->m_subsystem_status = Management::MNG_FAILURE; - ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, "Timeout while performing a setup operation.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Timeout while performing a setup operation.")); + m_core.setFailure(); this->setStopped(); + return; } ACSErr::Completion_var comp; @@ -61,73 +66,165 @@ void SRTMinorServoSetupThread::runLoop() { case 0: // Check if all the servos stopped { - if(std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_STOP ? true : false; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; })) { - // Move to phase 1 m_status = 1; } break; } - case 1: // Send the SETUP command + case 1: // Set all the servo offsets to 0 { - if(std::get<std::string>(m_core->m_socket->sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration))["OUTPUT"]) != "GOOD") + for(const auto& [name, servo] : m_core.m_servos) { - m_core->m_starting = Management::MNG_FALSE; - m_core->m_motion_status = MinorServo::MOTION_STATUS_ERROR; - m_core->m_subsystem_status = Management::MNG_FAILURE; - this->setStopped(); + // Not sure about this + servo->clearSystemOffsets(); + servo->clearUserOffsets(); } - else + + m_status = 2; + break; + } + case 2: // Send the SETUP command + { + try + { + if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration)).checkOutput()) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Received NAK in response to a SETUP command.")); + m_core.setFailure(); + this->setStopped(); + return; + } + else + { + m_status = 3; + } + } + catch(...) { - m_status = 2; + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Communication error while sending a SETUP command.")); + m_core.setFailure(); + this->setStopped(); + return; } break; } - case 2: // Wait for the system to show the commanded configuration + case 3: // Wait for the system to show the commanded configuration { - if(m_core->m_component->current_configuration()->get_sync(comp.out()) == m_core->m_commanded_configuration) + if(m_core.m_component.current_configuration()->get_sync(comp.out()) == m_core.m_commanded_configuration.load()) { - m_status = 3; + m_status = 4; } break; } - case 3: // Wait for the whole system to reach the desired configuration + case 4: // Wait for the whole system to reach the desired configuration { // First we check the status of the gregorian cover - bool completed = m_core->m_component->gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; // Then we cycle through all the servos and make sure their operative mode is SETUP - if(completed && std::all_of(m_core->m_servos.begin(), m_core->m_servos.end(), [](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_SETUP ? true : false; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_SETUP ? true : false; })) { - m_status = 4; + m_status = 5; + } + + break; + } + case 5: // Load the servos coefficients and send a PRESET command + { + for(const auto& [servo_name, servo] : m_core.m_servos) + { + try + { + servo->setup(m_core.m_commanded_setup.c_str()); + } + catch(...) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, ("Error while loading a SETUP to servo'" + servo_name + "'.").c_str())); + m_core.setFailure(); + this->setStopped(); + return; + } + + // This step is necessary because we have _ASACTIVE configurations that have a slightly different position from the commanded one + // Unfortunately, the Leonardo implementation accepts a fixed number of configurations, therefore we share the _ASACTIVE and AS not active configurations for each focal position + if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + try + { + servo->preset(*servo->calcCoordinates(45)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; + } + } } + m_status = 6; break; } - case 4: // Finally load the servos coefficients + case 6: // Wait for the whole system to reach the PRESET configuration { - m_core->m_actual_setup = m_core->m_commanded_setup; + if(std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + { + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PRESET ? true : false; + } + else + { + return true; + } + })) + { + m_status = 7; + } + + break; + } + case 7: // Finally set all the variables values and eventually start the elevation tracking thread + { + m_core.m_actual_setup = m_core.m_commanded_setup; + m_core.m_starting.store(Management::MNG_FALSE); + m_core.m_ready.store(Management::MNG_TRUE); + m_core.m_subsystem_status.store(Management::MNG_OK); - for(const auto& [name, servo] : m_core->m_servos) + if(m_core.m_elevation_tracking_enabled.load() == Management::MNG_TRUE) + { + m_core.m_motion_status.store(MOTION_STATUS_TRACKING); + try + { + m_core.startThread(m_core.m_tracking_thread); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; + } + } + else { - servo->setup(m_core->m_actual_setup.c_str()); + m_core.m_motion_status.store(MOTION_STATUS_CONFIGURED); } - m_core->m_starting = Management::MNG_FALSE; - m_core->m_ready = Management::MNG_TRUE; - m_core->m_subsystem_status = Management::MNG_OK; - m_core->m_motion_status = m_core->m_elevation_tracking_enabled == Management::MNG_TRUE ? MinorServo::MOTION_STATUS_TRACKING : MinorServo::MOTION_STATUS_CONFIGURED; this->setStopped(); break; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp deleted file mode 100644 index d68f74ed6..000000000 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSocket.cpp +++ /dev/null @@ -1,192 +0,0 @@ -#include "SRTMinorServoSocket.h" - -std::mutex SRTMinorServoSocket::c_mutex; - -SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port, double timeout) -{ - std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); - - if(m_instance != nullptr) - { - if(m_instance->m_address != ip_address && m_instance->m_port != port) - { - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); - impl.addData("Reason", "Socket already open on '" + m_instance->m_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object."); - throw impl; - } - } - else - { - m_instance = new SRTMinorServoSocket(ip_address, port, timeout); - } - return *m_instance; -} - -SRTMinorServoSocket& SRTMinorServoSocket::getInstance() -{ - std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); - - if(m_instance == nullptr) - { - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); - impl.addData("Reason", "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); - throw impl; - } - return *m_instance; -} - -void SRTMinorServoSocket::destroyInstance() -{ - if(m_instance != nullptr) - { - delete m_instance; - m_instance = nullptr; - } -} - -SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, double timeout) -{ - if(Create(m_error, STREAM) == FAIL) - { - Close(m_error); - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); - impl.addData("Reason", "Cannot create the socket."); - throw impl; - } - - if(Connect(m_error, ip_address.c_str(), port) == FAIL) - { - m_socket_status = TOUT; - Close(m_error); - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); - impl.addData("Reason", "Cannot connect the socket."); - throw impl; - } - - if(setSockMode(m_error, NONBLOCKING) != SUCCESS) - { - m_socket_status = NOTRDY; - Close(m_error); - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); - impl.addData("Reason", "Cannot set the socket to non-blocking."); - throw impl; - } - - m_address = ip_address; - m_port = port; - m_timeout = timeout; -} - -SRTMinorServoSocket::~SRTMinorServoSocket() -{ - std::lock_guard<std::mutex> guard(m_mutex); - Close(m_error); -} - -SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) -{ - std::lock_guard<std::mutex> guard(m_mutex); - - double start_time = CIRATools::getUNIXEpoch(); - size_t sent_bytes = 0; - - while(sent_bytes < command.size()) - { - size_t sent_now = Send(m_error, command.substr(sent_bytes, command.size() - sent_bytes).c_str(), command.size() - sent_bytes); - sent_bytes += sent_now; - - if(sent_now > 0) - { - // Reset the timer - start_time = CIRATools::getUNIXEpoch(); - } - else if(CIRATools::getUNIXEpoch() - start_time >= m_timeout) - { - m_socket_status = TOUT; - Close(m_error); - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); - impl.addData("Reason", "Timeout when sending command."); - throw impl; - } - } - - start_time = CIRATools::getUNIXEpoch(); - std::string answer; - - while(answer.size() < 2 || !(answer.rfind(CLOSER) == answer.size() - CLOSER.size())) - { - char buf; - if(Receive(m_error, &buf, 1) == 1) - { - answer += buf; - - // Reset the timer - start_time = CIRATools::getUNIXEpoch(); - } - else if(CIRATools::getUNIXEpoch() - start_time >= m_timeout) - { - m_socket_status = TOUT; - Close(m_error); - _EXCPT(ComponentErrors::SocketErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); - impl.addData("Reason", "Timeout when receiving answer."); - throw impl; - } - } - SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); - if(map) - { - map->get() = map_answer; - } - - return map_answer; -} - -SRTMinorServoSocketConfiguration& SRTMinorServoSocketConfiguration::getInstance(maci::ContainerServices* containerServices) -{ - if(m_instance == nullptr) - { - m_instance = new SRTMinorServoSocketConfiguration(containerServices); - } - - return *m_instance; -} - -SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices) -{ - AUTO_TRACE("SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); - - IRA::CString _ip_address; - if(!IRA::CIRATools::getDBValue(containerServices, "IPAddress", _ip_address, CONFIG_DOMAIN, CONFIG_DIRNAME)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); - impl.setFieldName("IPAddress"); - throw impl; - } - m_ip_address = (std::string)_ip_address; - - DWORD port; - if(!IRA::CIRATools::getDBValue(containerServices, "Port", port, CONFIG_DOMAIN, CONFIG_DIRNAME)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); - impl.setFieldName("Port"); - throw impl; - } - else - { - m_port = port; - } - - if(!IRA::CIRATools::getDBValue(containerServices, "SocketTimeout", m_timeout, CONFIG_DOMAIN, CONFIG_DIRNAME)) - { - _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); - impl.setFieldName("SocketTimeout"); - throw impl; - } -} - -SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration() -{ - AUTO_TRACE("SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration()"); - - delete m_instance; -} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp index 6c734306d..86dd1dda4 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -1,47 +1,89 @@ #include "SRTMinorServoStatusThread.h" -SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): - ACS::Thread(name, responseTime, sleepTime), - m_core(core) +using namespace MinorServo; + +SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_sleep_time(this->getSleepTime()), + m_notification_channel(NULL) { - m_thread_name = std::string(name.c_str()); - AUTO_TRACE(m_thread_name + "::SRTMinorServoStatusThread()"); + AUTO_TRACE("SRTMinorServoStatusThread::SRTMinorServoStatusThread()"); } SRTMinorServoStatusThread::~SRTMinorServoStatusThread() { - AUTO_TRACE(m_thread_name + "::~SRTMinorServoStatusThread()"); + AUTO_TRACE("SRTMinorServoStatusThread::~SRTMinorServoStatusThread()"); } void SRTMinorServoStatusThread::onStart() { - AUTO_TRACE(m_thread_name + "::onStart()"); - m_sleep_time = this->getSleepTime(); + AUTO_TRACE("SRTMinorServoStatusThread::onStart()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStart()", (LM_INFO, "STATUS THREAD STARTED")); } void SRTMinorServoStatusThread::onStop() { - AUTO_TRACE(m_thread_name + "::onStop()"); + AUTO_TRACE("SRTMinorServoStatusThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStop()", (LM_INFO, "STATUS THREAD STOPPED")); } void SRTMinorServoStatusThread::runLoop() { - AUTO_TRACE(m_thread_name + "::runLoop()"); + AUTO_TRACE("SRTMinorServoStatusThread::runLoop()"); + + ACS::Time t0 = getTimeStamp(); + unsigned long sleep_time; + + // Update the sleep time in order to not drift away by adding latency + if(m_core.status()) + { + sleep_time = std::max(m_sleep_time - (getTimeStamp() - t0), (long unsigned int)0); + } + else + { + sleep_time = 10000000; + } + + publish(); + this->setSleepTime(sleep_time); +} + +void SRTMinorServoStatusThread::publish() +{ + // TODO: maybe update only when anything changed + MinorServoDataBlock data; TIMEVALUE now; IRA::CIRATools::getTime(now); - ACS::Time time = now.value().value; - ACS::Time next = time + m_sleep_time; + data.timeMark = now.value().value; + data.tracking = m_core.m_tracking.load() == Management::MNG_TRUE; + data.starting = m_core.m_starting.load() == Management::MNG_TRUE; + data.parking = m_core.m_motion_status.load() == MOTION_STATUS_PARKING; + data.parked = m_core.m_motion_status.load() == MOTION_STATUS_PARKED; + data.status = m_core.m_subsystem_status.load(); - m_core->status(); - - for(const auto& [name, servo] : m_core->m_servos) + if(m_notification_channel == NULL) { - servo->status(); + try + { + m_notification_channel = new nc::SimpleSupplier(MINORSERVO_DATA_CHANNEL, &m_core.m_component); + } + catch(...) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoStatusThread::publish()", "cannot access the MinorServoData notification channel!"); + return; + } } - IRA::CIRATools::getTime(now); - time = now.value().value; - ACS::TimeInterval sleep_time = next - time; - this->setSleepTime(std::max(long(sleep_time), long(0))); + try + { + m_notification_channel->publishData<MinorServoDataBlock>(data); + } + catch(ComponentErrors::CORBAProblemEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoStatusThread::publish()", "cannot send MinorServoData over the notification channel!"); + } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 179800db3..0dc91881c 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -1,90 +1,85 @@ #include "SRTMinorServoTrackingThread.h" -SRTMinorServoTrackingThread::SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore* core, const ACS::TimeInterval& responseTime, const ACS::TimeInterval& sleepTime): - ACS::Thread(name, responseTime, sleepTime), - m_core(core) +using namespace MinorServo; + +SRTMinorServoTrackingThread::SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time): + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_error(false) { - m_thread_name = std::string(name.c_str()); - AUTO_TRACE(m_thread_name + "::SRTMinorServoTrackingThread()"); + AUTO_TRACE("SRTMinorServoTrackingThread::SRTMinorServoTrackingThread()"); } SRTMinorServoTrackingThread::~SRTMinorServoTrackingThread() { - AUTO_TRACE(m_thread_name + "::~SRTMinorServoTrackingThread()"); + AUTO_TRACE("SRTMinorServoTrackingThread::~SRTMinorServoTrackingThread()"); } void SRTMinorServoTrackingThread::onStart() { - AUTO_TRACE(m_thread_name + "::onStart()"); - resetTracking(); - m_antennaBoss = Antenna::AntennaBoss::_nil(); + AUTO_TRACE("SRTMinorServoTrackingThread::onStart()"); + + this->setSleepTime(500000); // 50 milliseconds + m_point_id = 0; + m_point_time = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStart()", (LM_INFO, "TRACKING THREAD STARTED")); } void SRTMinorServoTrackingThread::onStop() { - AUTO_TRACE(m_thread_name + "::onStop()"); + AUTO_TRACE("SRTMinorServoTrackingThread::onStop()"); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + if(m_error) + { + m_core.setFailure(); + } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_INFO, "TRACKING THREAD STOPPED")); } void SRTMinorServoTrackingThread::runLoop() { - AUTO_TRACE(m_thread_name + "::runLoop()"); + AUTO_TRACE("SRTMinorServoTrackingThread::runLoop()"); try { - m_core->checkControl(); - m_core->checkEmergency(); + m_core.checkLineStatus(); } - catch(MinorServoErrors::StatusErrorExImpl& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - ACS_LOG(LM_FULL_INFO, m_thread_name + "::runLoop()", (LM_ERROR, ex.getData("Reason").c_str())); + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; this->setStopped(); return; } - if(m_core->m_elevation_tracking_enabled == Management::MNG_FALSE) + if(m_core.m_motion_status.load() != MOTION_STATUS_TRACKING) { - // We get here if the tracking was disabled while already tracking, we stop - this->setStopped(); + // System is not ready or is not configured for tracking yet, we wait, even though we should never get here + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", "Waiting for the system to be configured for tracking!"); return; } - if(m_core->m_motion_status != MinorServo::MOTION_STATUS_TRACKING || m_core->m_subsystem_status != Management::MNG_OK) - { - // System is not ready or configured for tracking, reset the tracking - resetTracking(); - return; - } - - if(CORBA::is_nil(m_antennaBoss)) - { - try - { - m_antennaBoss = m_core->m_component->getContainerServices()->getComponent<Antenna::AntennaBoss>("ANTENNA/Boss"); - } - catch(maciErrType::CannotGetComponentExImpl& ex) - { - _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoTrackingThread::runLoop()", "cannot get the AntennaBoss component!"); - resetTracking(); - return; - } - } + // All checks passed, we have to track + Management::TBoolean elevation_tracking = Management::MNG_FALSE; if(m_point_id == 0) { - m_point_time = CIRATools::getUNIXEpoch() + TRACKING_FUTURE_TIME; - m_trajectory_id = int(m_point_time); + m_point_time = getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME; + m_trajectory_id = (unsigned int)(m_point_time / 1000); } else { - if(std::all_of(m_core->m_tracking_servos.begin(), m_core->m_tracking_servos.end(), [this](const std::pair<std::string, MinorServo::SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_tracking_servos.begin(), m_core.m_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) { - bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == MinorServo::OPERATIVE_MODE_PROGRAMTRACK ? true : false; + bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; if(!return_value) { - _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str()); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_ERROR, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); } return return_value; } @@ -94,66 +89,53 @@ void SRTMinorServoTrackingThread::runLoop() } })) { - m_core->m_tracking = Management::MNG_TRUE; + // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation + elevation_tracking = Management::MNG_TRUE; } else { - resetTracking(); + m_error = true; + this->setStopped(); return; } } ACSErr::Completion_var comp; - - bool tracking_error = false; - - for(const auto& [servo_name, servo] : m_core->m_tracking_servos) + for(const auto& [servo_name, servo] : m_core.m_tracking_servos) { if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) { + double elevation = 45.0; + try { - servo->programTrack(m_trajectory_id, m_point_id, m_point_id == 0 ? m_point_time : 0, *servo->calcCoordinates(getElevation(m_point_time))); + elevation = m_core.getElevation(m_point_time); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); + elevation_tracking = Management::MNG_FALSE; } - catch(MinorServoErrors::CommunicationErrorExImpl& ex) + + try { - _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo_name + ": received NAK while sending the tracking point!").c_str()); - tracking_error = true; + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, *servo->calcCoordinates(elevation)); } - catch(ComponentErrors::SocketErrorEx& ex) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { - _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoTrackingThread::runLoop()", (servo_name + ": error encountered while sending the tracking point!").c_str()); - tracking_error = true; + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; } } } - if(tracking_error) - { - resetTracking(); - return; - } + m_core.m_elevation_tracking.store(elevation_tracking); m_point_id++; - m_point_time += TRACKING_TIMEGAP; - - unsigned long time_to_sleep = ((m_point_time - TRACKING_FUTURE_TIME) - CIRATools::getUNIXEpoch()) * 10000000; - this->setSleepTime(time_to_sleep); -} - -void SRTMinorServoTrackingThread::resetTracking() -{ - this->setSleepTime(500000); // 50 milliseconds - m_point_id = 0; - m_point_time = 0; - m_core->m_tracking = Management::MNG_FALSE; -} - -double SRTMinorServoTrackingThread::getElevation(double time) -{ - AUTO_TRACE(m_thread_name + "::getElevation()"); + m_point_time += PROGRAM_TRACK_TIMEGAP; - double azimuth, elevation; - m_antennaBoss->getRawCoordinates(CIRATools::UNIXEpoch2ACSTime(time), azimuth, elevation); - return elevation * DR2D; + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((unsigned long)(m_point_time - PROGRAM_TRACK_FUTURE_TIME - getTimeStamp())); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index 4f07f339d..1cd3c98cc 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -1,8 +1,19 @@ #include "SRTMinorServoImpl.h" -using namespace maci; +using namespace MinorServo; -SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : SRTBaseMinorServoImpl(componentName, containerServices) +SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : + SRTBaseMinorServoImpl(componentName, containerServices), + m_tracking_queue(1500, m_virtual_axes), + m_tracking_delta(SRTBaseMinorServoImpl::getMotionConstant(*this, "tracking_delta")), + m_tracking(Management::MNG_FALSE), + m_trajectory_id(0), + m_total_trajectory_points(0), + m_remaining_trajectory_points(0), + m_tracking_ptr(this), + m_trajectory_id_ptr(this), + m_total_trajectory_points_ptr(this), + m_remaining_trajectory_points_ptr(this) { AUTO_TRACE(m_servo_name + "::SRTProgramTrackMinorServoImpl()"); } @@ -12,27 +23,139 @@ SRTProgramTrackMinorServoImpl::~SRTProgramTrackMinorServoImpl() AUTO_TRACE(m_servo_name + "::~SRTProgramTrackMinorServoImpl()"); } -void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, CORBA::Double start_time, const ACS::doubleSeq& virtual_coordinates) +void SRTProgramTrackMinorServoImpl::initialize() +{ + SRTBaseMinorServoImpl::initialize(); + + try + { + m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_tracking), true); + m_trajectory_id_ptr = new baci::ROlong((m_component_name + ":trajectory_id").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_trajectory_id), true); + m_total_trajectory_points_ptr = new baci::ROlong((m_component_name + ":total_trajectory_points").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_total_trajectory_points), true); + m_remaining_trajectory_points_ptr = new baci::ROlong((m_component_name + ":remaining_trajectory_points").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_remaining_trajectory_points), true); + } + catch(std::bad_alloc& ba) + { + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, (m_servo_name + "::initialize()").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } +} + +/////////////////// PUBLIC methods +bool SRTProgramTrackMinorServoImpl::status() +{ + bool status = SRTBaseMinorServoImpl::status(); + + try + { + ACS::Time last_timestamp = m_status.getTimestamp(); + + // The timestamp of the read positions always corresponds to the one we're asking since they both belong to the same STATUS command answer + // The tracking timestamp is interpolated instead + std::vector<double> virtual_positions = m_positions_queue.get(last_timestamp).second; + std::pair<ACS::Time, std::vector<double>> tracking_point = m_tracking_queue.get(last_timestamp); + + m_remaining_trajectory_points.store(m_tracking_queue.getRemainingPoints(last_timestamp)); + + if(tracking_point.first < last_timestamp) + { + // We are past the last point of the trajectory, we concluded it + m_tracking.store(Management::MNG_FALSE); + m_tracking_queue.clear(); + } + else + { + bool is_tracking = true; + + for(size_t i = 0; i < virtual_positions.size(); i++) + { + if(std::fabs(virtual_positions[i] - tracking_point.second[i]) > m_tracking_delta[i]) + { + is_tracking = false; + break; + } + } + + m_tracking.store(is_tracking ? Management::MNG_TRUE : Management::MNG_FALSE); + } + } + catch(...) + { + // We might get here if m_tracking_queue is empty + // So whenever we just got a new setup or if we are past the last point inside the trajectory + m_tracking.store(Management::MNG_FALSE); // May be redundant but who cares? + } + + return status; +} + +void SRTProgramTrackMinorServoImpl::setup(const char* configuration_name) +{ + SRTBaseMinorServoImpl::setup(configuration_name); + + m_tracking_queue.clear(); + m_total_trajectory_points.store(0); + m_remaining_trajectory_points.store(0); +} + +void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& virtual_coordinates) { AUTO_TRACE("SRTProgramTrackMinorServoImpl::programTrack()"); + checkLineStatus(); + if(virtual_coordinates.length() != m_virtual_axes) { - _EXCPT(MinorServoErrors::TrackingErrorExImpl, impl, (m_servo_name + "::programTrack()").c_str()); - impl.addData("Reason", "Wrong number of values for this servo system!"); - throw impl; + _EXCPT(MinorServoErrors::TrackingErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.addData("Reason", "Wrong number of values for this servo system!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - SRTMinorServoAnswerMap answer = m_socket->sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coordinates, start_time)); + // Read the current servo offsets + ACSErr::Completion_var comp; + ACS::doubleSeq offsets = *virtual_offsets()->get_sync(comp.out()); - if(std::get<std::string>(answer["OUTPUT"]) != "GOOD") + for(size_t i = 0; i < m_virtual_axes; i++) { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, (m_servo_name + "::programTrack()").c_str()); - impl.setReason("Received NAK in response to a PRESET command!"); - throw impl; + if(coordinates[i] + offsets[i] < m_min[i] || coordinates[i] + offsets[i] > m_max[i]) + { + _EXCPT(MinorServoErrors::TrackingErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.addData("Reason", "Resulting position out of range, check the offsets!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } } + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coordinates, point_id > 0 ? 0 : IRA::CIRATools::ACSTime2UNIXEpoch(point_time))).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.setReason("Received NAK in response to a PROGRAMTRACK command!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + m_trajectory_id.store(trajectory_id); + m_total_trajectory_points.store(point_id + 1); + if(point_id == 0) + { + // Clear the tracking queue to avoid interpolation between 2 different trajectories + m_tracking_queue.clear(); + } + m_tracking_queue.put(point_time, coordinates); } + +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTProgramTrackMinorServoImpl, m_tracking_ptr, tracking); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_trajectory_id_ptr, trajectory_id); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_total_trajectory_points_ptr, total_trajectory_points); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_remaining_trajectory_points_ptr, remaining_trajectory_points); + MACI_DLL_SUPPORT_FUNCTIONS(SRTProgramTrackMinorServoImpl) -- GitLab From c9ab0235b3deb048aad0af8c49c80228eb2f880c Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 14:20:38 +0100 Subject: [PATCH 061/150] Fix #832, added include guard to the file. (#833) Common/Interfaces/AntennaInterface/idl/EphemGeneratorMACRO_include.idl --- .../AntennaInterface/idl/EphemGeneratorMACRO_include.idl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Common/Interfaces/AntennaInterface/idl/EphemGeneratorMACRO_include.idl b/Common/Interfaces/AntennaInterface/idl/EphemGeneratorMACRO_include.idl index 467c4f932..15c6332ec 100644 --- a/Common/Interfaces/AntennaInterface/idl/EphemGeneratorMACRO_include.idl +++ b/Common/Interfaces/AntennaInterface/idl/EphemGeneratorMACRO_include.idl @@ -1,3 +1,6 @@ +#ifndef _EPHEMGENERATORMACRO_IDL_ +#define _EPHEMGENERATORMACRO_IDL_ + #include <ManagmentDefinitions.idl> /** @def DEFATTRIBUTES(NAME) @@ -43,3 +46,4 @@ #define ENDDEFATTRIBUTES } +#endif -- GitLab From 31ea9ae3fda174eae8f1a5ff993367f661e26977 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 13:59:45 +0000 Subject: [PATCH 062/150] Fixed CLow configuration for test CDB --- .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 20 +- .../DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml | 15 + .../SRT5GHzReceiver/NoiseMark/NoiseMark.xml | 16 + .../NormalModeSetup/NormalModeSetup.xml | 25 ++ .../Synthesizer/Synthesizer.xml | 10 + .../DataBlock/SRT5GHzReceiver/Taper/Taper.xml | 14 + .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 276 +++++++++--------- .../SRT5GHzReceiver/SRT5GHzReceiver.xml | 10 +- 8 files changed, 231 insertions(+), 155 deletions(-) create mode 100644 SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml create mode 100644 SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml create mode 100644 SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml create mode 100644 SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml create mode 100644 SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml diff --git a/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index b17f717e8..4f36f2fca 100644 --- a/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -1,18 +1,14 @@ <?xml version='1.0' encoding='ISO-8859-1'?> -<!-- - - History: - - ---> -<Component xmlns="urn:schemas-cosylab-com:Component:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - - Name="SRT5GHzReceiver" +<Component xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="5GHzReceiver" Code="SRT5GHzImpl" - Type="IDL:alma/Receivers/SRT5GHz:1.0" + Type="IDL:alma/Receivers/SRT5GHz:1.0" Container="SRT5GHzContainer" KeepAliveTime="-1" Default="false" - ImplLang="cpp" + ImplLang="cpp" /> diff --git a/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml new file mode 100644 index 000000000..9bc79d702 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Feeds/Feeds.xml @@ -0,0 +1,15 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<Feeds xmlns="urn:schemas-cosylab-com:Feeds:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<Feed> + <feedCode>0</feedCode> + <xOffset>0.0</xOffset> + <yOffset>0.0</yOffset> + <relativePower>1.0</relativePower> +</Feed> + +</Feeds> \ No newline at end of file diff --git a/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml new file mode 100644 index 000000000..d4e46f443 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NoiseMark/NoiseMark.xml @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<NoiseMarkLookUpTable xmlns="urn:schemas-cosylab-com:NoiseMarkLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>4200.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>4900.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> +<MarkEntry><Polarization>LEFT</Polarization><SkyFrequency>5600.0</SkyFrequency><NoiseMark>0.93</NoiseMark></MarkEntry> + +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>4200.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>4900.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> +<MarkEntry><Polarization>RIGHT</Polarization><SkyFrequency>5600.0</SkyFrequency><NoiseMark>1.02</NoiseMark></MarkEntry> + +</NoiseMarkLookUpTable> \ No newline at end of file diff --git a/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml new file mode 100644 index 000000000..195fc2d65 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/NormalModeSetup/NormalModeSetup.xml @@ -0,0 +1,25 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Andrea Orlati + - History: + - 14-08-23 Created +--> + +<ReceiversModeSetup xmlns="urn:schemas-cosylab-com:ReceiversModeSetup:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Mode="NORMAL" + RFMin="4200.0 4200.0" + RFMax="5600.0 5600.0" + IFMin="100.0 100.0" + IFBandwidth="1400.0 1400.0" + Feeds="1" + IFs="2" + Polarization="L R" + DefaultLO="4100.0 4100.0" + FixedLO2="4100.0 4100.0" + LOMin="4100.0 4100.0" + LOMax="5400.0 5400.0" +/> diff --git a/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml new file mode 100644 index 000000000..b336a520a --- /dev/null +++ b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Synthesizer/Synthesizer.xml @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<LocalOscillatorLookUpTable xmlns="urn:schemas-cosylab-com:LocalOscillatorLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<SynthesizerEntry><Frequency>8200.0</Frequency><OutputPower>16</OutputPower></SynthesizerEntry> + +</LocalOscillatorLookUpTable> diff --git a/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml new file mode 100644 index 000000000..5e9edf53c --- /dev/null +++ b/SRT/CDB/alma/DataBlock/SRT5GHzReceiver/Taper/Taper.xml @@ -0,0 +1,14 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<TaperLookUpTable xmlns="urn:schemas-cosylab-com:TaperLookUpTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<TaperEntry><Frequency>4200</Frequency><Taper>-8.5</Taper></TaperEntry> + +<TaperEntry><Frequency>4900</Frequency><Taper>-12</Taper></TaperEntry> + +<TaperEntry><Frequency>5600</Frequency><Taper>-17</Taper></TaperEntry> + +</TaperLookUpTable> diff --git a/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index 0e1d3c572..8d78a172f 100644 --- a/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/CDB/alma/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -4,14 +4,14 @@ - 02 - 08 -2011 created Andrea Orlati (a.orlati@ira.inaf.it) --> - <SRT5GHzReceiver xmlns="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" + <SRT5GHzReceiver xmlns="urn:schemas-cosylab-com:SRT5GHzReceiver:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" DewarIPAddress="127.0.0.1" - DewarPort="12900" + DewarPort="12912" LNAIPAddress="127.0.0.1" - LNAPort="12901" + LNAPort="12913" WatchDogResponseTime="400000" WatchDogSleepTime="500000" LNASamplingTime="250000" @@ -22,166 +22,166 @@ <LO description="Sequence of local oscillator values for each IF chain"/> <feeds description="Number of feeds of the receiver"/> <IFs description="Number of Intermediate Frequencies chains coming from each feed" /> - <polarization description="Sequence of values that identifies the polarization of each IF chains" /> - <initialFrequency description="Sequence of the start frequencies for each IF chain (MHz)" - units="MHz" - format="%6.2f" - /> - <bandWidth description="Sequence of the band width values for each IF chain (MHz)" - units="MHz" - format="%6.2f" + <polarization description="Sequence of values that identifies the polarization of each IF chains" /> + <initialFrequency description="Sequence of the start frequencies for each IF chain (MHz)" + units="MHz" + format="%6.2f" + /> + <bandWidth description="Sequence of the band width values for each IF chain (MHz)" + units="MHz" + format="%6.2f" /> <mode description="Mnemonic code that defines a special working mode of the receiver (MHz)" /> <vacuum description="measure of the vacuum" - alarm_high_on="5e-3" - default_value="5.4e-7" - alarm_high_off="5e-6" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="1e-7" - units="mBar" - format="%e" + alarm_high_on="5e-3" + default_value="5.4e-7" + alarm_high_off="5e-6" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="1e-7" + units="mBar" + format="%e" /> <status description="Bit fields that provide the status word of the receiver and component" - alarm_mask="777" - alarm_trigger="1" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - /> + alarm_mask="777" + alarm_trigger="1" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + /> <Vd_1 description="drain voltage for IF1 LNA" - alarm_high_on="0.6" - alarm_low_on="0.4" - default_value="0.5" - alarm_high_off="0.55" - alarm_low_off="0.45" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.05" - units="Volts" - format="%5.2f" + alarm_high_on="0.6" + alarm_low_on="0.4" + default_value="0.5" + alarm_high_off="0.55" + alarm_low_off="0.45" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" /> <Vd_2 description="drain voltage for IF2 LNA" - alarm_high_on="0.54" - alarm_low_on="0.36" - default_value="0.45" - alarm_high_off="0.495" - alarm_low_off="0.405" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.05" - units="Volts" - format="%5.2f" + alarm_high_on="0.54" + alarm_low_on="0.36" + default_value="0.45" + alarm_high_off="0.495" + alarm_low_off="0.405" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.05" + units="Volts" + format="%5.2f" /> <Id_1 description="drain current for IF1 LNA" - alarm_high_on="6.36" - alarm_low_on="4.24" - default_value="5.3" - alarm_high_off="5.83" - alarm_low_off="4.77" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.1" - units="mA" - format="%5.1f" + alarm_high_on="6.36" + alarm_low_on="4.24" + default_value="5.3" + alarm_high_off="5.83" + alarm_low_off="4.77" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" /> <Id_2 description="drain current for IF2 LNA" - alarm_high_on="11.88" - alarm_low_on="7.92" - default_value="9.9" - alarm_high_off="10.89" - alarm_low_off="8.91" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.1" - units="mA" - format="%5.1f" + alarm_high_on="11.88" + alarm_low_on="7.92" + default_value="9.9" + alarm_high_off="10.89" + alarm_low_off="8.91" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.1" + units="mA" + format="%5.1f" /> <Vg_1 description="gate voltage for IF1 LNA" - alarm_high_on="-1.664" - alarm_low_on="-2.496" - default_value="-2.08" - alarm_high_off="-1.872" - alarm_low_off="-2.288" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.01" - units="Volts" - format="%6.3f" + alarm_high_on="-1.664" + alarm_low_on="-2.496" + default_value="-2.08" + alarm_high_off="-1.872" + alarm_low_off="-2.288" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" /> <Vg_2 description="gate voltage for IF2 LNA" - alarm_high_on="-1.488" - alarm_low_on="-2.232" - default_value="-1.86" - alarm_high_off="-1.624" - alarm_low_off="-2.046" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.01" - units="Volts" - format="%6.3f" + alarm_high_on="-1.488" + alarm_low_on="-2.232" + default_value="-1.86" + alarm_high_off="-1.624" + alarm_low_off="-2.046" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.01" + units="Volts" + format="%6.3f" /> <cryoTemperatureCoolHead description="Cryogenic temperature measured near the cool head" - alarm_high_on="91.0" - alarm_high_off="75.0" - default_value="65.0" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.5" - units="Kelvin" - format="%5.1f" + alarm_high_on="91.0" + alarm_high_off="75.0" + default_value="65.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" /> <cryoTemperatureCoolHeadWindow description="Cryogenic temperature measured at cool head window" - alarm_high_on="130.0" - alarm_high_off="110.0" - default_value="100.0" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.5" - units="Kelvin" - format="%5.1f" + alarm_high_on="130.0" + alarm_high_off="110.0" + default_value="100.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" /> <cryoTemperatureLNA description="Cryogenic temperature measured at the LNA" - alarm_high_on="40.0" - alarm_high_off="28.0" - default_value="20.0" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.5" - units="Kelvin" - format="%5.1f" + alarm_high_on="40.0" + alarm_high_off="28.0" + default_value="20.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" /> <cryoTemperatureLNAWindow description="Cryogenic temperature measured at the LNA window" - alarm_high_on="63.0" - alarm_high_off="44.0" - default_value="35.0" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.5" - units="Kelvin" - format="%5.1f" + alarm_high_on="63.0" + alarm_high_off="44.0" + default_value="35.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Kelvin" + format="%5.1f" /> <environmentTemperature description="temperature of the room in which the receiver is installed" - alarm_high_on="35.0" - alarm_high_off="30.0" - default_value="25.0" - alarm_timer_trig="10" - default_timer_trig="10" - min_timer_trig="1" - min_delta_trig="0.5" - units="Celsius degree" - format="%4.1f" + alarm_high_on="35.0" + alarm_high_off="30.0" + default_value="25.0" + alarm_timer_trig="10" + default_timer_trig="10" + min_timer_trig="1" + min_delta_trig="0.5" + units="Celsius degree" + format="%4.1f" /> <receiverStatus description="Overall status of the receiver"/> </SRT5GHzReceiver> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml index 8fc0f3bb6..46ecf969d 100644 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/SRT5GHzReceiver/SRT5GHzReceiver.xml @@ -4,15 +4,15 @@ - --> <Component xmlns="urn:schemas-cosylab-com:Component:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + Name="5GHzReceiver" Code="SRT5GHzImpl" Type="IDL:alma/Receivers/SRT5GHz:1.0" Container="SRT5GHzContainer" KeepAliveTime="-1" Default="false" - ImplLang="cpp" + ImplLang="cpp" /> -- GitLab From 3cd63bef3a30e72340e38020e8653094b1b7bf07 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 14:00:48 +0000 Subject: [PATCH 063/150] Fixed a couple bugs in SRTMinorServoBoss component --- .../include/SRTMinorServoUtils.h | 17 ++++++----------- .../src/SRTMinorServoStatusThread.cpp | 12 +++++------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h index f3ff3be96..5df5c9eb1 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h @@ -5,6 +5,7 @@ #include <Cplusplus11Helper.h> #include <IRA> #include <ComponentErrors.h> +#include <iostream> /** * The following templates are useful if you want to check if a given type for the SRTMinorServoAnswerMap is accepted @@ -43,18 +44,12 @@ struct DB_type }; template <typename T> -T getCDBValue(maci::ContainerServices* container_services, const std::string& field, const std::string& component="") -{ - return getCDBValue<T>(container_services, field.c_str(), component.c_str()); -} - -template <typename T> -T getCDBValue(maci::ContainerServices* container_services, const char* field, const char* component="") +T getCDBValue(maci::ContainerServices* container_services, const std::string& field, const std::string component = "") { using C = typename DB_type<T>::type; C temp; - if(IRA::CIRATools::getDBValue(container_services, field, temp, "alma/", component)) + if(IRA::CIRATools::getDBValue(container_services, field.c_str(), temp, "alma/", component.c_str())) { if constexpr(std::is_same_v<T, std::vector<double>>) { @@ -71,13 +66,13 @@ T getCDBValue(maci::ContainerServices* container_services, const char* field, co catch(std::invalid_argument& ia) { _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); - ex.setFieldName(field); + ex.setFieldName(field.c_str()); throw ex.getComponentErrorsEx(); } catch(std::out_of_range& oor) { _EXCPT(ComponentErrors::ValueOutofRangeExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); - ex.setValueName(field); + ex.setValueName(field.c_str()); ex.setValueLimit(token.find('-') == std::string::npos ? std::numeric_limits<double>::max() : std::numeric_limits<double>::min()); throw ex.getComponentErrorsEx(); } @@ -98,7 +93,7 @@ T getCDBValue(maci::ContainerServices* container_services, const char* field, co else { _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); - ex.setFieldName(field); + ex.setFieldName(field.c_str()); throw ex.getComponentErrorsEx(); // Maybe throw the plain ex } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp index 86dd1dda4..07a9437c9 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -35,17 +35,15 @@ void SRTMinorServoStatusThread::runLoop() AUTO_TRACE("SRTMinorServoStatusThread::runLoop()"); ACS::Time t0 = getTimeStamp(); - unsigned long sleep_time; + unsigned long sleep_time = 10000000; - // Update the sleep time in order to not drift away by adding latency - if(m_core.status()) + // Check the status only if the properties are already being monitored by the Boss component. + // This is necessary since this thread might start before the start of the properties monitoring. + if(m_core.m_component.isPropertiesMonitoringActive() && m_core.status()) { + // Update the sleep time in order to not drift away by adding latency sleep_time = std::max(m_sleep_time - (getTimeStamp() - t0), (long unsigned int)0); } - else - { - sleep_time = 10000000; - } publish(); -- GitLab From c01c966f755e70257fec4e4efb07118a9ae2306e Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 14:04:13 +0000 Subject: [PATCH 064/150] Updated procedures in order to use new minor servos --- .../StationProcedures/StationProcedures.xml | 38 +++++++++++-------- .../StationProcedures/StationProcedures.xml | 35 ++++++++--------- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index b6d47acd7..4d86ea178 100644 --- a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -6,7 +6,7 @@ <Procedure name="setupCCB" args="0"> <body> antennaSetup=CCB - servoSetup=CCB + servoSetup=CCB receiversSetup=CCB chooseBackend=TotalPower initialize=CCB @@ -19,16 +19,22 @@ <Procedure name="setupCCG" args="0"> <body> + antennaSetup=CCG + servoSetup=CCG receiversSetup=CCG chooseBackend=TotalPower + initialize=CCG + device=0 calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG - servoSetup=KKG + servoSetup=KKG receiversSetup=KKG receiversMode=SINGLEDISH chooseBackend=TotalPower @@ -43,7 +49,7 @@ <Procedure name="setupLLP" args="0"> <body> antennaSetup=LP - servoSetup=LLP + servoSetup=LLP receiversSetup=LLP receiversMode=XXC4 chooseBackend=TotalPower @@ -58,7 +64,7 @@ <Procedure name="setupPPP" args="0"> <body> antennaSetup=LP - servoSetup=PPP + servoSetup=PPP receiversSetup=PPP receiversMode=C3XX chooseBackend=TotalPower @@ -73,7 +79,7 @@ <Procedure name="setupPLP" args="0"> <body> antennaSetup=LP - servoSetup=PLP + servoSetup=PLP receiversSetup=PLP receiversMode=C3C4 chooseBackend=TotalPower @@ -88,28 +94,28 @@ <Procedure name="setupXB" args="0"> <body> antennaSetup=XB - servoSetup=XB + servoSetup=XB receiversSetup=CCB chooseBackend=TotalPower initialize=XB device=0 restFrequency=0 - setLO=7500 + setLO=7500 azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupSSP" args="0"> <body> - antennaSetup=LP - servoSetup=SSP - receiversSetup=CCB - chooseBackend=TotalPower - initialize=PPP - device=0 - calOff - restFrequency=0 - azelOffsets=0d,0d + antennaSetup=LP + servoSetup=SSP + receiversSetup=CCB + chooseBackend=TotalPower + initialize=PPP + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 39b02cfa4..4d86ea178 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -6,7 +6,7 @@ <Procedure name="setupCCB" args="0"> <body> antennaSetup=CCB - servoSetup=CCB + servoSetup=CCB receiversSetup=CCB chooseBackend=TotalPower initialize=CCB @@ -19,8 +19,9 @@ <Procedure name="setupCCG" args="0"> <body> - receiversSetup=CCG antennaSetup=CCG + servoSetup=CCG + receiversSetup=CCG chooseBackend=TotalPower initialize=CCG device=0 @@ -33,7 +34,7 @@ <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG - servoSetup=KKG + servoSetup=KKG receiversSetup=KKG receiversMode=SINGLEDISH chooseBackend=TotalPower @@ -48,7 +49,7 @@ <Procedure name="setupLLP" args="0"> <body> antennaSetup=LP - servoSetup=LLP + servoSetup=LLP receiversSetup=LLP receiversMode=XXC4 chooseBackend=TotalPower @@ -63,7 +64,7 @@ <Procedure name="setupPPP" args="0"> <body> antennaSetup=LP - servoSetup=PPP + servoSetup=PPP receiversSetup=PPP receiversMode=C3XX chooseBackend=TotalPower @@ -78,7 +79,7 @@ <Procedure name="setupPLP" args="0"> <body> antennaSetup=LP - servoSetup=PLP + servoSetup=PLP receiversSetup=PLP receiversMode=C3C4 chooseBackend=TotalPower @@ -93,28 +94,28 @@ <Procedure name="setupXB" args="0"> <body> antennaSetup=XB - servoSetup=XB + servoSetup=XB receiversSetup=CCB chooseBackend=TotalPower initialize=XB device=0 restFrequency=0 - setLO=7500 + setLO=7500 azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupSSP" args="0"> <body> - antennaSetup=LP - servoSetup=SSP - receiversSetup=CCB - chooseBackend=TotalPower - initialize=PPP - device=0 - calOff - restFrequency=0 - azelOffsets=0d,0d + antennaSetup=LP + servoSetup=SSP + receiversSetup=CCB + chooseBackend=TotalPower + initialize=PPP + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> -- GitLab From e86bcc0db1d6c145af678f515da13d2b7ecf565e Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 19:28:03 +0000 Subject: [PATCH 065/150] Added missing CCG PointModel for SRT test CDB. --- .../DataBlock/PointingModel/PointingModel.xml | 148 ++++++++++-------- 1 file changed, 87 insertions(+), 61 deletions(-) diff --git a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml index f05570265..b1cf45978 100644 --- a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -1,30 +1,22 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<!-- - MEDICINA POINTING MODEL TABLE RECEIVERS ---> -<PointingModel xmlns="urn:schemas-cosylab-com:PointingModel:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - - +<?xml version = '1.0' encoding = 'ISO-8859-1'?> +<PointingModel xmlns = "urn:schemas-cosylab-com:PointingModel:1.0" > <Receiver> <receiverCode>CCB</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.3029563427 </coefficientVal00> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2957174778 </coefficientVal00> <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0102762356 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0050985431 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008867322 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0019946923 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0873332769 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0871561393</coefficientVal07> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0068070539 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0016828823 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0009974039 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0006166724 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0852021798 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925736725 </coefficientVal07> <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0115426397 </coefficientVal10> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0148610147 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0020223276 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0008122203 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0005418550 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> -0.0000714987 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0 </coefficientVal16> @@ -45,37 +37,37 @@ <Receiver> <receiverCode>KKG</receiverCode> - <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> - <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> - <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> - <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> - <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> - <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> - <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> - <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> - <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> - <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> - <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> - <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> - <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> - <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> - <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> - <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> - <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> - <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> - <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> - <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> - <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> + <phi>90.0</phi> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> + <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> + <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> + <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> + <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> + <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> + <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> + <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> + <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> </Receiver> <Receiver> @@ -115,21 +107,55 @@ <Receiver> <receiverCode>XB</receiverCode> + <phi>90.0000</phi> + <coefficientNum00>1</coefficientNum00> <coefficientVal00>-2.2955527306</coefficientVal00> + <coefficientNum01>0</coefficientNum01> <coefficientVal01>0.0000000000</coefficientVal01> + <coefficientNum02>1</coefficientNum02> <coefficientVal02>-0.0027078437</coefficientVal02> + <coefficientNum03>1</coefficientNum03> <coefficientVal03>0.0173532944</coefficientVal03> + <coefficientNum04>1</coefficientNum04> <coefficientVal04>-0.0008693041</coefficientVal04> + <coefficientNum05>1</coefficientNum05> <coefficientVal05>-0.0019183123</coefficientVal05> + <coefficientNum06>1</coefficientNum06> <coefficientVal06>0.1030814573</coefficientVal06> + <coefficientNum07>1</coefficientNum07> <coefficientVal07>0.0856014490</coefficientVal07> + <coefficientNum08>0</coefficientNum08> <coefficientVal08>0.0000000000</coefficientVal08> + <coefficientNum09>0</coefficientNum09> <coefficientVal09>0.0000000000</coefficientVal09> + <coefficientNum10>1</coefficientNum10> <coefficientVal10>0.0087973252</coefficientVal10> + <coefficientNum11>0</coefficientNum11> <coefficientVal11>0.0000000000</coefficientVal11> + <coefficientNum12>1</coefficientNum12> <coefficientVal12>0.0003481323</coefficientVal12> + <coefficientNum13>1</coefficientNum13> <coefficientVal13>0.0001999680</coefficientVal13> + <coefficientNum14>0</coefficientNum14> <coefficientVal14>0.0000000000</coefficientVal14> + <coefficientNum15>0</coefficientNum15> <coefficientVal15>0.0000000000</coefficientVal15> + <coefficientNum16>0</coefficientNum16> <coefficientVal16>0.0000000000</coefficientVal16> + <coefficientNum17>0</coefficientNum17> <coefficientVal17>0.0000000000</coefficientVal17> + <coefficientNum18>0</coefficientNum18> <coefficientVal18>0.0000000000</coefficientVal18> + <coefficientNum19>0</coefficientNum19> <coefficientVal19>0.0000000000</coefficientVal19> + <coefficientNum20>0</coefficientNum20> <coefficientVal20>0.0000000000</coefficientVal20> + <coefficientNum21>0</coefficientNum21> <coefficientVal21>0.0000000000</coefficientVal21> + <coefficientNum22>0</coefficientNum22> <coefficientVal22>0.0000000000</coefficientVal22> + <coefficientNum23>0</coefficientNum23> <coefficientVal23>0.0000000000</coefficientVal23> + <coefficientNum24>0</coefficientNum24> <coefficientVal24>0.0000000000</coefficientVal24> + <coefficientNum25>0</coefficientNum25> <coefficientVal25>0.0000000000</coefficientVal25> + <coefficientNum26>0</coefficientNum26> <coefficientVal26>0.0000000000</coefficientVal26> + <coefficientNum27>0</coefficientNum27> <coefficientVal27>0.0000000000</coefficientVal27> + <coefficientNum28>0</coefficientNum28> <coefficientVal28>0.0000000000</coefficientVal28> + <coefficientNum29>0</coefficientNum29> <coefficientVal29>0.0000000000</coefficientVal29> +</Receiver> +<Receiver> + <receiverCode>CCG</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.3029563427 </coefficientVal00> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00>-2.2881932258 </coefficientVal00> <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0102762356 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0050985431 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008867322 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0019946923 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0873332769 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0871561393</coefficientVal07> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0040601296</coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> 0.0014384996 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0003379379 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015144897</coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.2964673936 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> -0.1382924467 </coefficientVal07> <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0115426397 </coefficientVal10> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0023407035 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0020223276 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0008122203 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002931280 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> -0.0004088043 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0 </coefficientVal16> -- GitLab From 03a424b11792c7cfee40e62a9be2011293013374 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 19:50:06 +0000 Subject: [PATCH 066/150] Fixes STOW command for the gregorian cover --- SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index efda46e6b..cb1752543 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -324,8 +324,8 @@ void SRTMinorServoBossCore::park() try { - // Send the STOW command to the gregorian cover - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2)).checkOutput()) + // Send the STOW command to close the gregorian cover + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 1)).checkOutput()) { _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); -- GitLab From a71887f3d9ace6b2a674cdac52f1b7a279fe5f32 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 14 Feb 2024 21:03:29 +0000 Subject: [PATCH 067/150] Minor improvement on the MS motion status DevIO --- SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 31 +++++++++++++++++-- .../src/SRTMinorServoBossImpl.cpp | 2 +- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index a554c6357..a5fb819e5 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -7,6 +7,7 @@ */ #include "SRTMinorServoCommon.h" +#include "SRTMinorServoContainers.h" #include <type_traits> #include <baciDevIO.h> #include <ComponentErrors.h> @@ -64,9 +65,16 @@ namespace MinorServo /** * Constructor. * @param motion_status the atomic status of the motion of the minor servo system. - * @param answer_map the SRTMinorServoAnswerMap containing the status of the system. It is used to read the position of the gregorian cover. + * @param answer_map a reference to the SRTMinorServoAnswerMap object containing the status of the system. It is used to read the position of the gregorian cover. + * @param scanning a reference to the TBoolean indicating whether the system is scanning or not. + * @param current_scan a reference to the SRTMinorServoScan object containing the parameters for the current scan. It is used to read the servo name and axis involved in the scan. */ - MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoAnswerMap& answer_map) : m_motion_status(motion_status), m_answer_map(answer_map) {} + MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoAnswerMap& answer_map, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : + m_motion_status(motion_status), + m_answer_map(answer_map), + m_scanning(scanning), + m_current_scan(current_scan) + {} /** * Returns the property value. @@ -97,7 +105,14 @@ namespace MinorServo } case MOTION_STATUS_TRACKING: { - motion_status = "Elevation Track Mode"; + if(m_scanning.load() == Management::MNG_FALSE) + { + motion_status = "Elevation Track Mode"; + } + else + { + motion_status = "Scanning along " + m_current_scan.servo_name + " " + m_current_scan.axis_name + " axis"; + } break; } case MOTION_STATUS_PARKING: @@ -149,6 +164,16 @@ namespace MinorServo * Reference to the SRTMinorServoAnswerMap object of the Boss. */ const SRTMinorServoAnswerMap& m_answer_map; + + /** + * Reference to the boolean telling if the system is scanning. + */ + const std::atomic<Management::TBoolean>& m_scanning; + + /** + * Reference to the SRTMinorServoScan object of the Boss. + */ + const SRTMinorServoScan& m_current_scan; }; /** diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 34d92da5a..3cf8143be 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -56,7 +56,7 @@ void SRTMinorServoBossImpl::initialize() m_actual_setup_ptr = new baci::ROstring((m_component_name + ":actualSetup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(m_core.m_actual_setup), true); m_motion_info_ptr = new baci::ROstring((m_component_name + ":motionInfo").c_str(), getComponent(), - new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status), true); + new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status, m_core.m_scanning, m_core.m_current_scan), true); m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":starting").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_starting), true); m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":asConfiguration").c_str(), getComponent(), -- GitLab From fca2b4a366d87f44b5ff2079f7851c7f1b68fb9c Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 15 Feb 2024 19:35:18 +0000 Subject: [PATCH 068/150] Fix #834, avoided Leonardo Minor Servo SETUP command --- .../src/SRTMinorServoBossCore.cpp | 2 +- .../src/SRTMinorServoSetupThread.cpp | 25 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index cb1752543..1c9ca5eee 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -492,7 +492,7 @@ void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_INFO, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", position == "OPEN" ? 1 : 2)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) { _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 70bc288d7..4a2354755 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -86,10 +86,24 @@ void SRTMinorServoSetupThread::runLoop() servo->clearUserOffsets(); } - m_status = 2; + //m_status = 2; + m_status = 100; break; } - case 2: // Send the SETUP command + case 100: // Send the STOW command to the gregorian cover + { + if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", m_gregorian_cover_position)).checkOutput()) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Received NAK when setting the gregorian cover position.")); + m_core.setFailure(); + this->setStopped(); + return; + } + + m_status = 5; + break; + } + /*case 2: // Send the SETUP command { try { @@ -140,7 +154,7 @@ void SRTMinorServoSetupThread::runLoop() } break; - } + }*/ case 5: // Load the servos coefficients and send a PRESET command { for(const auto& [servo_name, servo] : m_core.m_servos) @@ -180,7 +194,10 @@ void SRTMinorServoSetupThread::runLoop() } case 6: // Wait for the whole system to reach the PRESET configuration { - if(std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + // First we check the status of the gregorian cover + bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + + if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) -- GitLab From 67561bd14420fb3efa16ee8c1144bf7255425a44 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 15 Feb 2024 19:44:42 +0000 Subject: [PATCH 069/150] Updated CDBs, getting ready for production --- .../MinorServoBossContainer.xml | 27 -- .../CalibrationTool/CalibrationTool.xml | 2 +- .../alma/MANAGEMENT/FitsZilla/FitsZilla.xml | 2 +- SRT/CDB/alma/MANAGEMENT/Point/Point.xml | 2 +- .../MACI/Components/MINORSERVO/Boss/Boss.xml | 9 +- .../MACI/Components/MINORSERVO/GFR/GFR.xml | 7 +- .../MACI/Components/MINORSERVO/M3R/M3R.xml | 5 +- .../MACI/Components/MINORSERVO/PFP/PFP.xml | 4 +- .../MACI/Components/MINORSERVO/SRP/SRP.xml | 8 +- .../MinorServoBossContainer.xml | 31 -- .../GFR/LookupTables/LookupTables.xml | 32 ++ .../MinorServo/GFR/Properties/Properties.xml | 24 ++ .../M3R/LookupTables/LookupTables.xml | 18 + .../MinorServo/M3R/Properties/Properties.xml | 24 ++ .../PFP/LookupTables/LookupTables.xml | 33 ++ .../MinorServo/PFP/Properties/Properties.xml | 36 ++ .../SRP/LookupTables/LookupTables.xml | 125 ++++++ .../MinorServo/SRP/Properties/Properties.xml | 47 +++ .../CalibrationTool/CalibrationTool.xml | 2 +- .../alma/MANAGEMENT/FitsZilla/FitsZilla.xml | 2 +- .../CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- .../CDB/alma/MANAGEMENT/Point/Point.xml | 2 +- .../CDB/alma/MINORSERVO/Boss/Boss.xml | 206 ++-------- .../CDB/alma/MINORSERVO/GFR/GFR.xml | 373 ++--------------- .../CDB/alma/MINORSERVO/M3R/M3R.xml | 374 ++--------------- .../CDB/alma/MINORSERVO/PFP/PFP.xml | 380 ++--------------- .../CDB/alma/MINORSERVO/SRP/SRP.xml | 381 ++---------------- .../CDB/alma/MINORSERVO/Socket/Socket.xml | 12 + 28 files changed, 506 insertions(+), 1664 deletions(-) delete mode 100644 SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml delete mode 100644 SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml diff --git a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml deleted file mode 100644 index 508635633..000000000 --- a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<Container xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - ImplLang="cpp" - Recovery="false"> - - <Autoload> - <cdb:e string="baci" /> - </Autoload> - - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1"> - </LoggingConfig> - -</Container> diff --git a/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml b/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml index 221b861fd..c4ab33015 100644 --- a/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml +++ b/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="1" diff --git a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml index a40bd6376..df04e8a0e 100644 --- a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +++ b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml @@ -20,7 +20,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > diff --git a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml index b067e56eb..02eb3b0a2 100644 --- a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml +++ b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/SRTMinorServo/SRTMinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="0" diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml index 2705230c3..b7a0bfd41 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Boss" - Code="MinorServoBossImpl" + Code="SRTMinorServoBossImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/MinorServoBoss:1.0" - Container="MinorServoBossContainer" - Default="true" - + Type="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" + Container="MinorServoContainer" + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml index ed2c44f77..23da6db86 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="GFR" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" - Default="true" - + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml index 8a01ba209..94efe94c9 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="M3R" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" Default="true" - /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml index d75a83d75..a5801b66d 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml @@ -6,9 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="PFP" - Code="WPServoImpl" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" Default="true" diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml index 4534c3d82..b957480d6 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml @@ -5,11 +5,11 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Name="SRP" - Code="WPServoImpl" + Name="SRP" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" - Default="true" + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml deleted file mode 100644 index 64fcda240..000000000 --- a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<Container xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - ImplLang="cpp" - Recovery="false"> - - <Autoload> - <cdb:e string="baci" /> - </Autoload> - - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> - -</Container> - - - diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml new file mode 100644 index 000000000..00e681dfa --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -0,0 +1,32 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG> + <CCG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG_ASACTIVE> + <KKG> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG> + <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG_ASACTIVE> + <WWG> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG> + <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG_ASACTIVE> + <QQG> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG> + <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG_ASACTIVE> + <TRI> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI> + <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI_ASACTIVE> + <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> + <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> + + <!-- BWG - GFR open --> + <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml new file mode 100644 index 000000000..fccec0b0f --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCB> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0</coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..086b3785b --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <LLP> <axis>TX</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>TZ</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></LLP> + + <PPP> <axis>TX</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>TZ</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PPP> + + <PLP> <axis>TX</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>TZ</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PLP> + + <HHP> <axis>TX</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>TZ</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>RTHETA</axis> <coefficients>0 </coefficients></HHP> + + <XKP> <axis>TX</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>TZ</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>RTHETA</axis> <coefficients>0 </coefficients></XKP> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml new file mode 100644 index 000000000..688491e30 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -0,0 +1,36 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>X_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_X</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_SLAVE</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_SLAVE</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RTHETA</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..6869a5c77 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -0,0 +1,125 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG> + <CCG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCG> + <CCG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCG> + <CCG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCG> + <CCG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCG> + <CCG> <axis>RZ</axis><coefficients>0 </coefficients></CCG> + + <CCG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCG_ASACTIVE> + + <KKG> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG> + <KKG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></KKG> + <KKG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></KKG> + <KKG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></KKG> + <KKG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></KKG> + <KKG> <axis>RZ</axis><coefficients>0 </coefficients></KKG> + + <KKG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></KKG_ASACTIVE> + + <WWG> <axis>TX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TZ</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RZ</axis><coefficients>0 </coefficients></WWG> + + <WWG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + + <QQG> <axis>TX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TZ</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RZ</axis><coefficients>0 </coefficients></QQG> + + <QQG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + + <TRI> <axis>TX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TZ</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RZ</axis><coefficients>0 </coefficients></TRI> + + <TRI_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + + <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> + <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> + + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> + + <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> + <CCB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCB> + <CCB> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCB> + <CCB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCB> + <CCB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCB> + <CCB> <axis>RZ</axis><coefficients>0 </coefficients></CCB> + + <CCB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TZ</axis><coefficients>91.5590595452,-16.4202062811,1.16941963489,-0.040640240455,0.000733782714288,-6.62393455442e-06,2.36410838911e-08 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCB_ASACTIVE> + + <XB> <axis>TX</axis><coefficients>-1.5 </coefficients></XB> + <XB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></XB> + <XB> <axis>TZ</axis><coefficients>7.92754535681,-1.73279985542,0.147346047014,-0.00516934108597,7.69094654954e-05,-4.0697957632e-07 </coefficients></XB> + <XB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></XB> + <XB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></XB> + <XB> <axis>RZ</axis><coefficients>0 </coefficients></XB> + + <XB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TZ</axis><coefficients>-38.3143893309,4.30888128547,-0.18265795755,0.00350049382452,-3.17057523513e-05,1.11006707448e-07 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml new file mode 100644 index 000000000..165d5198f --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>Z1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z3_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>X1_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_Z1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z2</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z3</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y2</property_name></physical_positions> + <physical_positions><property_name>ELONG_X1</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TY</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RX</property_name></virtual_positions> + <virtual_positions><property_name>RY</property_name></virtual_positions> + <virtual_positions><property_name>RZ</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RZ</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml index d18bf0948..43a777280 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="1" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml index 66f145487..f139a84fc 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml @@ -20,7 +20,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 3b8c89f50..eb9ea73b8 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -23,7 +23,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" ActiveSurfaceBossInterface="IDL:alma/ActiveSurface/SRTActiveSurfaceBoss:1.0" CustomLoggerInterface="IDL:alma/Management/CustomLogger:1.0" WeatherStationInstance="IDL:alma/Weather/GenericWeatherStation:1.0" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml index 88c537650..02eb3b0a2 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="0" diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml index ac992a0c5..4dab29cf9 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -1,197 +1,37 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - Andrea Orlati, aorlati@ira.inaf.it + Authors: + Giuseppe Carboni, giuseppe.carboni@inaf.it --> -<!-- ASACTIVE means the active sufrace is enabled and changing with the elevation, - otherwise the code without the ASACTIVE suffice is the configuration with - no active sufrace enabled. ---> -<!-- The order of axises of every minor servo have to be the same as MSCU one. - Legend: - * TX means translation in X - * RX means rotation in X - - Given a setup code , if we have the following values: (C0, C1, C2), the axis value will be: - - C0 + C1*E + C2*E^2 - - Let's suppose the PFP LX is (2.222, 1.111, 0), we'll have the following value for - the PFP x axis: - - x = 2.222 + 1.111*E + 0*E**2 - - PS. The rotation unit is sec, not arc sec. ---> -<!-- The action order must be: park; active servos; none --> -<MinorServoBoss - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServoBoss + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - - CCB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (91.5590595452, -16.4202062811, 1.16941963489, -0.040640240455, 0.000733782714288, -6.62393455442e-06, 2.36410838911e-08); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (286.67); - " - CCB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (286.67); - " - - XB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (3.784814450130462, -0.7954923078498634, 0.05492195534135681, -0.0017439121752343607, 2.3615081491728947e-05, -1.1325543951011324e-07); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (860.8); - " - XB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ = (7.92754535681, -1.73279985542, 0.147346047014, -0.00516934108597, 7.69094654954e-05, -4.0697957632e-07 ); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (860.8); - " - - KKG_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - KKG_TEST_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (83.53947196, -9.17664589, 0.42877766, -0.00940768, 0.00009361, -0.00000035); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - - KKG=" - @ PFP: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " + status_thread_period="0.05" + active_surface_configuration="ON" + elevation_tracking_enabled="ON"> - LLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm)= (-46.2); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PPP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - HHP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.72); TX(mm) = (1312.0); TZ(mm) = (-40.0); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - XKP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (-1060); TZ(mm) = (-45.9); - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - - slaves="GFR, M3R, PFP, SRP" -> - <!-- MinorServo Status --> - <status description="The summary status of MinorServoBoss"/> + <connected description="Boolean indicating whether the component is connected to the Leonardo Minor Servo System" /> + <status description="The summary status of MinorServoBoss"/> <actualSetup description="Mnemonic code that defines a setup" /> - <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." /> + <motionInfo description="Description of the movement in progress" /> <ready description="True if the system is ready" /> <starting description="True if the system is starting" /> <asConfiguration description="True if the the AS configuration is active" /> - <elevationTrack description="True if the M2 position is tracking the elevation" /> + <elevationTrack description="True if the SRP is tracking the elevation" /> <scanActive description="True if a scan is active" /> <scanning description="True if the system is performing a scan" /> - <tracking description="Is the minor servo system in tracking?" /> - - <!-- - MinorServoBoss Verbose Status (ROpattern) - <verbose_status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServoBoss verbose status" - format="I don't know" - units="none" - resolution="65535" - alarm_mask="1" - alarm_trigger="0" - alarm_timer_trig="0" - bitDescription="Ok, Tracking, Configuring, Parking, Parked, Warning, Failure" - whenSet="3,3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0,0" - archive_priority="1" - archive_min_int="1" - archive_max_int="1" - archive_delta="1" - /> - --> - - -</MinorServoBoss> + <tracking description="Is the minor servo system tracking?" /> + <current_configuration description="Current minor servos focal configuration" /> + <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> + <plc_time description="UNIX time of the minor servo PLC" /> + <plc_version description="PLC software version" /> + <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> + <power description="All drive cabinets power status" /> + <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> + <gregorian_cover description="Status of the gregorian cover" /> + <last_executed_command description="UNIX time of the last correctly executed command" /> + +</SRTMinorServoBoss> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml index 9535f226d..75f01dc18 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -1,356 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-1745,1745) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="2" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-1745, 1745)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + physical_axes="2" + virtual_axes="1" + max_speed="3.5" + acceleration="2" + min_range="-166" + max_range="168.5"> - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature (ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml index cd650b487..83ebde14b 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -1,357 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-945,945) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="2" + virtual_axes="1" + max_speed="3.14" + acceleration="1.57" + min_range="-165" + max_range="165"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="3" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-945, 945)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml index c5f176b8a..064ca71d1 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -1,358 +1,38 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - modified: 23/05/2013: limits - modified: 29/01/2018: changed the limits of PFP theta + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_y(-34.00,2740), x(-1400,1400), z(-199,40) --> -<!-- Park position: theta_y(2730.15), x(0), z(-195) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="5" + virtual_axes="3" + max_speed="1, 1, 1" + acceleration="1, 1, 1" + min_range="0, 0, 0" + max_range="0, 0, 0" + tracking_delta="1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="3" - number_of_slaves="5" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="0" - zero="0" - park_position="2730.15,0,-195" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-34.0, 2740); (-1480, 1480); (-199, 40)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm or degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index 90a39717c..fcb93eec9 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -1,359 +1,38 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 - + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits: x(-50,50), y(-110,110), z(-110,110), theta_x(-0.25,0.25), theta_y(-0.25,0.25), theta_z(-0.25,0.25) --> -<!-- Elongation Limits: Z1(-125,125), Z2(-125,125), Z3(-125,125), Y4(-125,125), Y5(-125,125), X6(-125,125) --> -<!-- Park position (elongations): Z1(-125), Z2(-125), Z3(-125), Y4(0), Y5(0), X6(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="6" + virtual_axes="6" + max_speed="4, 4, 4, 0.38, 0.38, 0.38" + acceleration="8, 8, 8, 0.76, 0.76, 0.76" + min_range="-50, -110, -50, -0.25, -0.25, -0.25" + max_range="50, 110, 50, 0.25, 0.25, 0.25" + tracking_delta="1, 1, 1, 1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="6" - number_of_slaves="7" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="1" - zero="1570.00" - park_position="-5,5,-125,0,0,0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "1" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-50, 50); (-110, 110); (-110, 110); (-0.25, 0.25); (-0.25, 0.25); (-0.25, 0.25)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml new file mode 100644 index 000000000..c7d721bd0 --- /dev/null +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -0,0 +1,12 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoSocketConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IPAddress="192.168.200.13" + Port="4758"/> -- GitLab From d51e77851629f975bfd970398af979530642b18f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 16 Feb 2024 13:32:06 +0000 Subject: [PATCH 070/150] Updates for SRTMinorServos --- .../idl/SRTMinorServo.idl | 6 ++ .../include/SRTMinorServoBossCore.h | 6 ++ .../SRTMinorServo/include/SRTMinorServoImpl.h | 14 ++--- .../include/SRTMinorServoStatusThread.h | 5 ++ .../src/SRTBaseMinorServoImpl.cpp | 62 +++++++++---------- .../src/SRTMinorServoBossCore.cpp | 10 +++ .../src/SRTMinorServoParkThread.cpp | 5 +- .../src/SRTMinorServoSetupThread.cpp | 4 +- .../src/SRTMinorServoStatusThread.cpp | 38 +++++++++--- SRT/Servers/SRTMinorServo/src/_cover.py | 42 +++++++++++++ 10 files changed, 140 insertions(+), 52 deletions(-) create mode 100644 SRT/Servers/SRTMinorServo/src/_cover.py diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index fecbb9d28..93b9ebc9d 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -178,6 +178,12 @@ module MinorServo */ void clearSystemOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + /** + * This method resets the Leonardo offsets to the sum of the DISCOS user and system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void reloadOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + /** * This method returns in the two parameters passed as reference, the names and the units of measure of the axes of the servo, respectively * @param axes_names the sequence of strings containing the names of the virtual axes of the servo diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index b64e65ed6..73ea3c816 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -382,6 +382,12 @@ private: */ std::atomic<Management::TBoolean> m_tracking; + /** + * This boolean will be set to true every time the socket connects. + * When true it will trigger a procedure that will check if the minor servos offsets need to be reloaded because of a discrepancy between the DISCOS offsets (user + system) and the Leonardo offsets. + */ + bool m_reload_servo_offsets; + /** * Configuration of the socket object. */ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index a09cb6409..204354bcf 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -158,6 +158,12 @@ public: */ void clearSystemOffsets(); + /** + * Reload the user and the system offsets to the minor servo when the Leonardo offsets do not correspond to the sum of the DISCOS user and system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void reloadOffsets(); + /** * Returns the name and the unit of each virtual axes of the servo system, as reference arguments. * @param axes_names_out a string sequence object containing the names of the virtual axes of the servo system. @@ -291,13 +297,6 @@ protected: static std::vector<double> getMotionConstant(SRTBaseMinorServoImpl& object, const std::string& constant); private: - /** - * Resets both the user and the system offsets to 0. This is needed since the Leonardo servo system only tracks a single set of offsets. - * If we lose track of the offsets inside DISCOS (when restarting this component, for example), we need to reset the offsets in order to track them again. - * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. - */ - void resetOffsets(); - /** * Static function used to retrieve a table from the CDB DataBlock directory. Used inside the initialization list. * @param object the instance of this class, used inside the function logic. @@ -513,6 +512,7 @@ protected: ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }\ void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }\ void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }\ + void reloadOffsets() { SRTBaseMinorServoImpl::reloadOffsets(); }\ void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { SRTBaseMinorServoImpl::getAxesInfo(axes_names_out, axes_units_out); }\ ACS::doubleSeq* getAxesPositions(ACS::Time acs_time) { return SRTBaseMinorServoImpl::getAxesPositions(acs_time); }\ long getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest) { return SRTBaseMinorServoImpl::getTravelTime(start, dest); }\ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h index b5e55b96a..7a14305e3 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -67,6 +67,11 @@ private: */ SRTMinorServoBossCore& m_core; + /** + * The current status of the finite-state machine. + */ + unsigned int m_status; + /** * The sleeping time of the thread. * The thread should be cycling at a constant rate, therefore the inner sleeping time is always updated taking into account this and the thread execution time. diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index 81c92b42a..5b4d59f05 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -129,10 +129,6 @@ bool SRTBaseMinorServoImpl::status() { m_socket.sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); - // We need to call this here since we might just have established the connection, therefore we might not know how the Leonardo offsets are split between user and system - // This might eventually throw MinorServoErrorsEx - resetOffsets(); - ACSErr::Completion_var comp; ACS::doubleSeq current_point = *virtual_positions()->get_sync(comp.out()); @@ -491,6 +487,35 @@ void SRTBaseMinorServoImpl::clearSystemOffsets() } } +void SRTBaseMinorServoImpl::reloadOffsets() +{ + AUTO_TRACE(m_servo_name + "::reloadOffsets()"); + + // Sum the user and system DISCOS offsets to check whether they correspond to the Leonardo offsets + std::vector<double> DISCOS_offsets(m_virtual_axes, 0.0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); + + // Read the Leonardo offsets + ACSErr::Completion_var comp; + ACS::doubleSeq sequence = *virtual_offsets()->get_sync(comp.out()); + std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); + + // Check if the offsets correspond or not + if(!std::equal(DISCOS_offsets.begin(), DISCOS_offsets.end(), LEONARDO_offsets.begin())) + { + // Offsets do not correspond, should reset them by sending a offset command + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, DISCOS_offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::reloadOffsets()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, m_servo_name + "::reloadOffsets()", (LM_INFO, "Offsets discrepancy, reload")); + } +} + void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { AUTO_TRACE("SRTBaseMinorServoImpl::getAxesInfo()"); @@ -703,35 +728,6 @@ std::vector<double> SRTBaseMinorServoImpl::getMotionConstant(SRTBaseMinorServoIm } /////////////////// PRIVATE methods -void SRTBaseMinorServoImpl::resetOffsets() -{ - AUTO_TRACE(m_servo_name + "::resetOffsets()"); - - // Sum the user and system DISCOS offsets to check whether they correspond to the Leonardo offsets - std::vector<double> DISCOS_offsets(m_virtual_axes, 0.0); - std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); - - // Read the Leonardo offsets - ACSErr::Completion_var comp; - ACS::doubleSeq sequence = *virtual_offsets()->get_sync(comp.out()); - std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); - - // Check if the offsets correspond or not - if(!std::equal(DISCOS_offsets.begin(), DISCOS_offsets.end(), LEONARDO_offsets.begin())) - { - // Offsets do not correspond, should reset them by sending a offset command - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, DISCOS_offsets)).checkOutput()) - { - _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::resetOffsets()").c_str()); - ex.setReason("Received NAK in response to an OFFSET command."); - ex.log(LM_DEBUG); - throw ex.getMinorServoErrorsEx(); - } - - ACS_LOG(LM_FULL_INFO, m_servo_name + "::resetOffsets()", (LM_INFO, "Offsets discrepancy, reset")); - } -} - std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(SRTBaseMinorServoImpl& object, const std::string& properties_name) { AUTO_STATIC_TRACE(object.m_servo_name + "::getPropertiesTable()"); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 1c9ca5eee..3c3e30375 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -24,6 +24,7 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_scan_active(Management::MNG_FALSE), m_scanning(Management::MNG_FALSE), m_tracking(Management::MNG_FALSE), + m_reload_servo_offsets(true), m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(m_component.getContainerServices())), m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)), m_socket_connected(m_socket.isConnected() ? Management::MNG_TRUE : Management::MNG_FALSE), @@ -82,6 +83,8 @@ bool SRTMinorServoBossCore::status() stopThread(m_tracking_thread); stopThread(m_scan_thread); setFailure(); + + m_reload_servo_offsets = true; } return false; @@ -120,8 +123,15 @@ bool SRTMinorServoBossCore::status() setFailure(); return false; } + + if(m_reload_servo_offsets) + { + servo->reloadOffsets(); + } } + m_reload_servo_offsets = false; + if(motion_status == MOTION_STATUS_TRACKING) { if(std::all_of(m_tracking_servos.begin(), m_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index 63177b410..177478169 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -4,7 +4,8 @@ using namespace MinorServo; SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), - m_core(core) + m_core(core), + m_status(0) { AUTO_TRACE("SRTMinorServoParkThread::SRTMinorServoParkThread()"); } @@ -20,8 +21,6 @@ void SRTMinorServoParkThread::onStart() this->setSleepTime(500000); // 50 milliseconds m_start_time = IRA::CIRATools::getUNIXEpoch(); - m_status = 0; - ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStart()", (LM_INFO, "PARK THREAD STARTED")); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 4a2354755..162cda8aa 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -4,7 +4,8 @@ using namespace MinorServo; SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), - m_core(core) + m_core(core), + m_status(0) { AUTO_TRACE("SRTMinorServoSetupThread::SRTMinorServoSetupThread()"); } @@ -24,7 +25,6 @@ void SRTMinorServoSetupThread::onStart() SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; - m_status = 0; ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_INFO, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp index 07a9437c9..4fbf459ed 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -5,8 +5,9 @@ using namespace MinorServo; SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), m_core(core), + m_status(0), m_sleep_time(this->getSleepTime()), - m_notification_channel(NULL) + m_notification_channel(nullptr) { AUTO_TRACE("SRTMinorServoStatusThread::SRTMinorServoStatusThread()"); } @@ -27,6 +28,12 @@ void SRTMinorServoStatusThread::onStop() { AUTO_TRACE("SRTMinorServoStatusThread::onStop()"); + if(m_notification_channel != nullptr) + { + m_notification_channel->disconnect(); + m_notification_channel = nullptr; + } + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStop()", (LM_INFO, "STATUS THREAD STOPPED")); } @@ -37,12 +44,29 @@ void SRTMinorServoStatusThread::runLoop() ACS::Time t0 = getTimeStamp(); unsigned long sleep_time = 10000000; - // Check the status only if the properties are already being monitored by the Boss component. - // This is necessary since this thread might start before the start of the properties monitoring. - if(m_core.m_component.isPropertiesMonitoringActive() && m_core.status()) + switch(m_status) { - // Update the sleep time in order to not drift away by adding latency - sleep_time = std::max(m_sleep_time - (getTimeStamp() - t0), (long unsigned int)0); + case 0: + { + // Wait for the properties to be monitored by the Boss component. + // This is necessary since this thread might start before the start of the properties monitoring. + if(m_core.m_component.isPropertiesMonitoringActive()) + { + m_status = 1; + } + + break; + } + case 1: + { + if(m_core.status()) + { + // Update the sleep time in order to not drift away by adding latency + sleep_time = std::max(m_sleep_time - (getTimeStamp() - t0), (long unsigned int)0); + } + + break; + } } publish(); @@ -63,7 +87,7 @@ void SRTMinorServoStatusThread::publish() data.parked = m_core.m_motion_status.load() == MOTION_STATUS_PARKED; data.status = m_core.m_subsystem_status.load(); - if(m_notification_channel == NULL) + if(m_notification_channel == nullptr) { try { diff --git a/SRT/Servers/SRTMinorServo/src/_cover.py b/SRT/Servers/SRTMinorServo/src/_cover.py new file mode 100644 index 000000000..add318233 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/_cover.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +# This is a python script that can be used to set the gregorian cover position +# who when what +# Giuseppe Carboni(giuseppe.carboni@inaf.it) 21/01/2024 Creation + +from Acspy.Clients.SimpleClient import PySimpleClient +import ACSLog +import maciErrType +import maciErrTypeImpl +import ClientErrorsImpl +import MinorServoErrors +import ManagementErrorsImpl +import sys +from SimpleParserPy import add_user_message + +def main(): + compName = 'MINORSERVO/Boss' + + simpleClient = PySimpleClient() + + try: + component = simpleClient.getComponent(compName) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName(compName) + add_user_message(newEx, 'MinorServoBoss not ready or not properly configured') + simpleClient.disconnect() + sys.exit(1) + + try: + inputs = component.setGregorianCoverPosition(sys.argv[1]) + except MinorServoErrors.MinorServoErrorsEx as ex: + newEx = ClientErrorsImpl.CouldntPerformActionExImpl(exception=ex, create=1) + newEx.setReason('MinorServoBoss gregorian cover position') + add_user_message(newEx, 'Unable to set the gregorian cover position') + simpleClient.disconnect() + sys.exit(1) + + +if __name__ == "__main__": + main() -- GitLab From 37bcad5e6211d424426751371ed4881c03a1e5b3 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 16 Feb 2024 18:10:04 +0000 Subject: [PATCH 071/150] Updated SRTMinorServo setup and park procedures --- .../src/SRTMinorServoBossCore.cpp | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 3c3e30375..d71455e7b 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -242,21 +242,21 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) m_tracking.store(Management::MNG_FALSE); m_motion_status.store(MOTION_STATUS_STARTING); - try + // Send the STOP command to each servo + for(const auto& [servo_name, servo] : m_servos) { - // Send the STOP command to each servo - for(const auto& [servo_name, servo] : m_servos) + try { servo->stop(); } - } - catch(MinorServoErrors::MinorServoErrorsEx& mse) - { - _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); - ex.setSubsystem("MinorServo"); - ex.setReason("Error while sending the STOP command to a minor servo system."); - ex.log(LM_DEBUG); - throw ex.getConfigurationErrorEx(); + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Error while sending the STOP command to " + servo_name + ".").c_str()); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } } // Start the setup thread @@ -335,7 +335,7 @@ void SRTMinorServoBossCore::park() try { // Send the STOW command to close the gregorian cover - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 1)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", COVER_STATUS_CLOSED)).checkOutput()) { _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); @@ -343,22 +343,33 @@ void SRTMinorServoBossCore::park() ex.log(LM_DEBUG); throw ex.getParkingErrorEx(); } - - // Send the STOP command to each servo - for(const auto& [servo_name, servo] : m_servos) - { - servo->stop(); - } } catch(MinorServoErrors::MinorServoErrorsEx& mse) { _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); - ex.setReason("Error while sending the STOP command to a minor servo system."); + ex.setReason("Error while sending the STOW command to the gregorian cover."); ex.log(LM_DEBUG); throw ex.getParkingErrorEx(); } + // Send the STOP command to each servo + for(const auto& [servo_name, servo] : m_servos) + { + try + { + servo->stop(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Error while sending the STOP command to " + servo_name + ".").c_str()); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } + } + // Start the park thread try { -- GitLab From c80342700cb4675cec335bbe45f359e8024c28f9 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sat, 17 Feb 2024 20:55:26 +0000 Subject: [PATCH 072/150] Updated SRTMinorServoLibrary --- .../include/PySRTMinorServoCommandLibrary.h | 52 ++++++++++++++---- .../include/SRTMinorServoCommandLibrary.h | 18 +++---- .../include/SRTMinorServoSocket.h | 2 +- .../SRTMinorServoLibrary/src/Makefile | 2 +- .../src/PySRTMinorServoCommandLibrary.cpp | 53 ++++++++++++++----- .../src/SRTMinorServoCommandLibrary.cpp | 17 +++--- .../tests/SRTMinorServoSocketTest.cpp | 4 ++ .../tests/pyunit/__init__.py | 30 +++++------ 8 files changed, 120 insertions(+), 58 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h index dc719e6b6..a3a33a3bc 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h @@ -8,6 +8,7 @@ */ #include <boost/python.hpp> +#include <Python.h> #include "SRTMinorServoCommandLibrary.h" @@ -21,20 +22,47 @@ namespace MinorServo class PySRTMinorServoCommandLibrary : public SRTMinorServoCommandLibrary { public: + /** + * Builds the command used to ask the general status of the minor servos or, eventually, a single servo + * @param servo_id the ID string of the eventual single servo to retrieve the status. Send no servo_id argument to retrieve the general status of the system + * @return the composed message + */ + static boost::python::object status(const std::string servo_id = ""); + + /** + * Builds the command used to configure the telescope for a specific focal path + * @param configuration the desired focal path to command to the minor servo systems + * @return the composed message + */ + static boost::python::object setup(const std::string& configuration); + + /* + * Builds the command used to stow a single servo system to a given stow position + * @param servo_id the ID string of the single servo to be stowed + * @param stow_position the position to which the servo have to stow to + * @return the composed message + */ + static boost::python::object stow(const std::string& servo_id, unsigned int stow_position = 1); + + /* + * Builds the command used to stop a single servo system + * @param servo_id the ID string of the single servo to be stopped + * @return the composed message + */ + static boost::python::object stop(const std::string& servo_id); + /* * Builds the command used to move a single servo to a given set of coordinates * This is an overload of the original SRTMinorServoCommandLibrary::preset function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector * @param servo_id the ID of the single servo to be moved * @param coordinates a Python list containing the N coordinates to be sent to the servo * @return the composed message */ - static std::string preset(std::string servo_id, boost::python::list& coordinates); + static boost::python::object preset(const std::string& servo_id, const boost::python::list& coordinates); /* * Builds the command used to provide a single tracking set of coordinates to a single servo * This is an overload of the original SRTMinorServoCommandLibrary::programTrack function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector * @param servo_id the ID of the single servo to send the command to * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to * @param point_id the ID number of the given set of coordinates inside the trajectory @@ -42,34 +70,38 @@ namespace MinorServo * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory * @return the composed message */ - static std::string programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, boost::python::list& coordinates, double start_time=-1); + static boost::python::object programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const boost::python::list& coordinates, double start_time=-1); /* * Builds the command used to provide a set of offsets to a given servo * This is an overload of the original SRTMinorServoCommandLibrary::offset function - * An overload was needed in order to handle the coordinates parameter as a Python list instead of a C++ std::vector * @param servo_id the ID of the single servo to be moved * @param coordinates a Python list containing the N coordinates to be sent to the servo * @return the composed message */ - static std::string offset(std::string servo_id, boost::python::list& coordinates); + static boost::python::object offset(const std::string& servo_id, const boost::python::list& coordinates); /* * Parses the received answer by splitting it and synamically populating a std::map * This is an overload of the original SRTMinorServoCommandLibrary::parseAnswer function - * An overload was needed in order to replace the original std::map object with a boost::python::dict * @param answer the string containing the answer received from the VBrain proxy * @return a Python dictionary containing the answer splitted into keys and values. The keys are always strings, the values can either be int, double or strings. */ - static boost::python::dict parseAnswer(std::string answer); - + static boost::python::dict parseAnswer(const std::string& answer); private: /* * Converts the given Python list into a C++ std::vector object * @param py_list the given Python list to be converted * @return the composed C++ std::vector containing doubles */ - static std::vector<double> pylist2cppvector(boost::python::list& py_list); + static std::vector<double> pylist2cppvector(const boost::python::list& py_list); + + /** + * Converts the given std::string to a Python bytestring + * @param command a reference to the given command string + * @return the bytestring containing the given command string + */ + static boost::python::object stringToBytes(const std::string& command); }; } diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index d6d21dd70..5f0c009f5 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -32,14 +32,14 @@ namespace MinorServo * @param servo_id the ID string of the eventual single servo to retrieve the status. Send no servo_id argument to retrieve the general status of the system * @return the composed message */ - static std::string status(std::string servo_id = ""); + static std::string status(const std::string servo_id = ""); /** * Builds the command used to configure the telescope for a specific focal path * @param configuration the desired focal path to command to the minor servo systems * @return the composed message */ - static std::string setup(std::string configuration); + static std::string setup(const std::string& configuration); /* * Builds the command used to stow a single servo system to a given stow position @@ -47,14 +47,14 @@ namespace MinorServo * @param stow_position the position to which the servo have to stow to * @return the composed message */ - static std::string stow(std::string servo_id, unsigned int stow_position = 1); + static std::string stow(const std::string& servo_id, const unsigned int stow_position = 1); /* * Builds the command used to stop a single servo system * @param servo_id the ID string of the single servo to be stopped * @return the composed message */ - static std::string stop(std::string servo_id); + static std::string stop(const std::string& servo_id); /* * Builds the command used to move a single servo to a given set of virtual coordinates @@ -62,7 +62,7 @@ namespace MinorServo * @param coordinates a vector containing the N coordinates to be sent to the servo * @return the composed message */ - static std::string preset(std::string servo_id, std::vector<double> coordinates); + static std::string preset(const std::string& servo_id, const std::vector<double>& coordinates); /* * Builds the command used to provide a single tracking point of virtual coordinates to a single servo @@ -73,7 +73,7 @@ namespace MinorServo * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX Epoch of the starting instant of the trajectory * @return the composed message */ - static std::string programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, std::vector<double> coordinates, double start_time = 0); + static std::string programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const std::vector<double>& coordinates, const double start_time = 0); /* * Builds the command used to send a set of virtual offsets to a single servo @@ -81,14 +81,14 @@ namespace MinorServo * @param coordinates a vector containing the N offsets to be added the servo coordinates * @return the composed message */ - static std::string offset(std::string servo_id, std::vector<double> coordinates); + static std::string offset(const std::string& servo_id, const std::vector<double>& coordinates); /* * Parses the received answer by splitting it and dynamically populating a SRTMinorServoAnswerMap object - * @param answer the string containing the answer received from the VBrain proxy + * @param original_answer the string containing the answer received from the VBrain proxy * @return a SRTMinorServoAnswerMap dictionary containing the answer splitted into keys and values. The keys are always std::string, the values can either be long, double or std::string. */ - static SRTMinorServoAnswerMap parseAnswer(std::string answer); + static SRTMinorServoAnswerMap parseAnswer(const std::string& original_answer); }; } diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h index 4d2174cd6..a4a48973a 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h @@ -14,7 +14,7 @@ #include <optional> #include "SRTMinorServoCommandLibrary.h" -#define SOCKET_TIMEOUT 0.1 +#define SOCKET_TIMEOUT 0.1 #define CONFIG_DOMAIN "alma/" #define CONFIG_DIRNAME "/MINORSERVO/Socket" diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 26d07014c..6385508ce 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -98,7 +98,7 @@ PY_SCRIPTS_L = PY_MODULES = PY_MODULES_L = -PY_PACKAGES = #SRTMinorServoCommandLibrary +PY_PACKAGES = SRTMinorServoCommandLibrary PY_PACKAGES_L = pppppp_MODULES = diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp index ac0a61534..984618e08 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -2,32 +2,42 @@ using namespace MinorServo; -std::string PySRTMinorServoCommandLibrary::preset(std::string servo_id, boost::python::list& coordinates) +boost::python::object PySRTMinorServoCommandLibrary::status(const std::string servo_id) { - return SRTMinorServoCommandLibrary::preset(servo_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates)); + return stringToBytes(SRTMinorServoCommandLibrary::status(servo_id)); } -std::string PySRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, boost::python::list& coordinates, double start_time) +boost::python::object PySRTMinorServoCommandLibrary::setup(const std::string& configuration) { - return SRTMinorServoCommandLibrary::programTrack(servo_id, trajectory_id, point_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates), start_time); + return stringToBytes(SRTMinorServoCommandLibrary::setup(configuration)); } -std::string PySRTMinorServoCommandLibrary::offset(std::string servo_id, boost::python::list& coordinates) +boost::python::object PySRTMinorServoCommandLibrary::stow(const std::string& servo_id, unsigned int stow_position) { - return SRTMinorServoCommandLibrary::offset(servo_id, PySRTMinorServoCommandLibrary::pylist2cppvector(coordinates)); + return stringToBytes(SRTMinorServoCommandLibrary::stow(servo_id, stow_position)); } -std::vector<double> PySRTMinorServoCommandLibrary::pylist2cppvector(boost::python::list& py_list) +boost::python::object PySRTMinorServoCommandLibrary::stop(const std::string& servo_id) { - std::vector<double> cpp_vector; - for(unsigned int i = 0; i < len(py_list); i++) - { - cpp_vector.push_back(boost::python::extract<double>(py_list[i])); - } - return cpp_vector; + return stringToBytes(SRTMinorServoCommandLibrary::stop(servo_id)); +} + +boost::python::object PySRTMinorServoCommandLibrary::preset(const std::string& servo_id, const boost::python::list& coordinates) +{ + return stringToBytes(SRTMinorServoCommandLibrary::preset(servo_id, pylist2cppvector(coordinates))); } -boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(std::string answer) +boost::python::object PySRTMinorServoCommandLibrary::programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const boost::python::list& coordinates, double start_time) +{ + return stringToBytes(SRTMinorServoCommandLibrary::programTrack(servo_id, trajectory_id, point_id, pylist2cppvector(coordinates), start_time)); +} + +boost::python::object PySRTMinorServoCommandLibrary::offset(const std::string& servo_id, const boost::python::list& coordinates) +{ + return stringToBytes(SRTMinorServoCommandLibrary::offset(servo_id, pylist2cppvector(coordinates))); +} + +boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(const std::string& answer) { auto args = SRTMinorServoCommandLibrary::parseAnswer(answer); @@ -42,3 +52,18 @@ boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(std::string answe return dictionary; } + +std::vector<double> PySRTMinorServoCommandLibrary::pylist2cppvector(const boost::python::list& py_list) +{ + std::vector<double> cpp_vector; + for(unsigned int i = 0; i < len(py_list); i++) + { + cpp_vector.push_back(boost::python::extract<double>(py_list[i])); + } + return cpp_vector; +} + +boost::python::object PySRTMinorServoCommandLibrary::stringToBytes(const std::string& command) +{ + return boost::python::object(boost::python::handle<>(PyBytes_FromString(command.c_str()))); +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index 36c784843..ddafbe859 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -11,7 +11,7 @@ using namespace MinorServo; -std::string SRTMinorServoCommandLibrary::status(std::string servo_id) +std::string SRTMinorServoCommandLibrary::status(const std::string servo_id) { std::stringstream command; command << "STATUS"; @@ -23,28 +23,28 @@ std::string SRTMinorServoCommandLibrary::status(std::string servo_id) return command.str(); } -std::string SRTMinorServoCommandLibrary::setup(std::string configuration) +std::string SRTMinorServoCommandLibrary::setup(const std::string& configuration) { std::stringstream command; command << "SETUP=" << configuration << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::stow(std::string servo_id, unsigned int stow_position) +std::string SRTMinorServoCommandLibrary::stow(const std::string& servo_id, const unsigned int stow_position) { std::stringstream command; command << "STOW=" << servo_id << "," << stow_position << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::stop(std::string servo_id) +std::string SRTMinorServoCommandLibrary::stop(const std::string& servo_id) { std::stringstream command; command << "STOP=" << servo_id << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vector<double> coordinates) +std::string SRTMinorServoCommandLibrary::preset(const std::string& servo_id, const std::vector<double>& coordinates) { std::stringstream command; command << "PRESET=" << servo_id; @@ -56,7 +56,7 @@ std::string SRTMinorServoCommandLibrary::preset(std::string servo_id, std::vecto return command.str(); } -std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsigned long trajectory_id, unsigned long point_id, std::vector<double> coordinates, double start_time) +std::string SRTMinorServoCommandLibrary::programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const std::vector<double>& coordinates, const double start_time) { std::stringstream command; command << "PROGRAMTRACK=" << servo_id << "," << trajectory_id << "," << point_id << ","; @@ -77,7 +77,7 @@ std::string SRTMinorServoCommandLibrary::programTrack(std::string servo_id, unsi return command.str(); } -std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vector<double> coordinates) +std::string SRTMinorServoCommandLibrary::offset(const std::string& servo_id, const std::vector<double>& coordinates) { std::stringstream command; command << "OFFSET=" << servo_id; @@ -89,9 +89,10 @@ std::string SRTMinorServoCommandLibrary::offset(std::string servo_id, std::vecto return command.str(); } -SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answer) +SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(const std::string& original_answer) { // First thing first, standardize the separators and remove the newline/carriage return characters + std::string answer(original_answer); std::replace(answer.begin(), answer.end(), ':', '='); std::replace(answer.begin(), answer.end(), '|', ','); answer.erase(std::remove(answer.begin(), answer.end(), '\n'), answer.end()); diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp index 7de92d0c1..8fe3ba017 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp @@ -4,6 +4,7 @@ #include "gtest/gtest.h" #include <iostream> #include <thread> +#include <chrono> #include "SRTMinorServoUtils.h" #include "SRTMinorServoCommandLibrary.h" #include "SRTMinorServoTestingSocket.h" @@ -13,6 +14,8 @@ // discos-simulator -s minor_servo start & #define ADDRESS std::string("127.0.0.1") #define PORT 12800 +//#define ADDRESS std::string("192.168.200.13") +//#define PORT 4758 using namespace MinorServo; @@ -39,6 +42,7 @@ protected: void TearDown() override { SRTMinorServoTestingSocket::destroyInstance(); + std::this_thread::sleep_for(std::chrono::milliseconds(5)); } }; diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py index 4993c068e..e62ae691a 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py @@ -7,56 +7,56 @@ class TestPySRTMinorServoCommandLibrary(unittest.TestCase): def test_status(self): command = SRTMinorServoCommandLibrary.status() - expected_command = 'STATUS\r\n' + expected_command = b'STATUS\r\n' self.assertEqual(command, expected_command) def test_status_servo(self): command = SRTMinorServoCommandLibrary.status('PFP') - expected_command = 'STATUS=PFP\r\n' + expected_command = b'STATUS=PFP\r\n' self.assertEqual(command, expected_command) def test_setup(self): command = SRTMinorServoCommandLibrary.setup('KKG') - expected_command = 'SETUP=KKG\r\n' + expected_command = b'SETUP=KKG\r\n' self.assertEqual(command, expected_command) def test_stow(self): command = SRTMinorServoCommandLibrary.stow('SRP') - expected_command = 'STOW=SRP,1\r\n' + expected_command = b'STOW=SRP,1\r\n' self.assertEqual(command, expected_command) def test_stow_position(self): command = SRTMinorServoCommandLibrary.stow('SRP', 2) - expected_command = 'STOW=SRP,2\r\n' + expected_command = b'STOW=SRP,2\r\n' self.assertEqual(command, expected_command) def test_stop(self): command = SRTMinorServoCommandLibrary.stop('SRP') - expected_command = 'STOP=SRP\r\n' + expected_command = b'STOP=SRP\r\n' self.assertEqual(command, expected_command) def test_preset(self): command = SRTMinorServoCommandLibrary.preset('PFP', [0.1, 1.1, 2.1]) - expected_command = 'PRESET=PFP,0.100000,1.100000,2.100000\r\n' + expected_command = b'PRESET=PFP,0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) def test_programTrack(self): now = time.time() command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0.1, 1.1, 2.1], now) - expected_command = f'PROGRAMTRACK=PFP,0,0,{now},0.100000,1.100000,2.100000\r\n' + expected_command = bytes(f'PROGRAMTRACK=PFP,0,0,{now:.6f},0.100000,1.100000,2.100000\r\n', encoding='latin-1') self.assertEqual(command, expected_command) for i in range(1, 10): command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, i, [0.1, 1.1, 2.1]) - expected_command = f'PROGRAMTRACK=PFP,0,{i},*,0.100000,1.100000,2.100000\r\n' + expected_command = bytes(f'PROGRAMTRACK=PFP,0,{i},*,0.100000,1.100000,2.100000\r\n', encoding='latin-1') self.assertEqual(command, expected_command) def test_offset(self): command = SRTMinorServoCommandLibrary.offset('PFP', [0.1, 1.1, 2.1]) - expected_command = 'OFFSET=PFP,0.100000,1.100000,2.100000\r\n' + expected_command = b'OFFSET=PFP,0.100000,1.100000,2.100000\r\n' self.assertEqual(command, expected_command) def test_parseAnswer(self): - answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" + answer = 'OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94' args = { 'OUTPUT': 'GOOD', 'TIMESTAMP': 1665743366.123456, @@ -85,16 +85,16 @@ class TestPySRTMinorServoCommandLibrary(unittest.TestCase): args ) - answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" + answer = b"OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) - answer = "OUTPUT:123456" + answer = b"OUTPUT:123456" self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) - answer = "OUTPUT:GOOD,12345,67890" + answer = b"OUTPUT:GOOD,12345,67890" self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) - answer = "OUTPUT:GOOD,12345.ABCD" + answer = b"OUTPUT:GOOD,12345.ABCD" self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) -- GitLab From 05ecf70971e5b180ff9c97919f9a585593180cb9 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sat, 17 Feb 2024 21:06:36 +0000 Subject: [PATCH 073/150] Updates for the SRTMinorServos --- .../CDB/alma/MINORSERVO/Socket/Socket.xml | 3 ++- SRT/Misc/SRTScripts/app-defaults/discosStartup.xml | 11 +---------- .../SRTMinorServo/src/SRTMinorServoBossCore.cpp | 4 ++-- .../SRTMinorServo/src/SRTMinorServoSetupThread.cpp | 2 +- SystemMake/Makefile | 2 +- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml index c7d721bd0..f9925f1d3 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -9,4 +9,5 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IPAddress="192.168.200.13" - Port="4758"/> + Port="4758" + SocketTimeout="0.2"/> diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml index fe407ec9b..29c8a78a6 100644 --- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>36</select> + <select>34</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -109,15 +109,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>MinorServoBossContainer</name> - <type>cpp</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>MinorServoContainer</name> <type>cpp</type> diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index d71455e7b..fd1dc1173 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -335,7 +335,7 @@ void SRTMinorServoBossCore::park() try { // Send the STOW command to close the gregorian cover - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", COVER_STATUS_CLOSED)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", COVER_STATUS_CLOSED)).checkOutput()) { _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); @@ -513,7 +513,7 @@ void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_INFO, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) { _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 162cda8aa..4acbb041e 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -92,7 +92,7 @@ void SRTMinorServoSetupThread::runLoop() } case 100: // Send the STOW command to the gregorian cover { - if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", m_gregorian_cover_position)).checkOutput()) + if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", m_gregorian_cover_position)).checkOutput()) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Received NAK when setting the gregorian cover position.")); m_core.setFailure(); diff --git a/SystemMake/Makefile b/SystemMake/Makefile index fe778c6be..32834ba76 100644 --- a/SystemMake/Makefile +++ b/SystemMake/Makefile @@ -49,7 +49,7 @@ COMMON_SIMULATORS:= TCPGenericProtocolSim ReceiverBoardSim SRT_DOC:=SRTDox SRT_ERRORS:= SRT_INTERFACES:=SRTAntennaInterface SRTActiveSurfaceInterface \ - SRTReceiversInterface + SRTMinorServoInterface SRTReceiversInterface SRT_LIBRARIES:=SRTMinorServoLibrary SRT_SERVERS:=SRTMount SRTActiveSurfaceBoss SRTMinorServo SRTKBandMFReceiver \ SRT7GHzReceiver SRT5GHzReceiver SRTLPBandReceiver SRTPyIFDistributor WeatherStation -- GitLab From 48696c325ff6bbdfc5aadd3bc36dc4a21f4b0ae3 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sun, 18 Feb 2024 02:18:31 +0000 Subject: [PATCH 074/150] First working implementation with the actual hardware Libraries and components were slightly reworked and tweaked in order to work correctly with the current hardware status. The gregorian cover movement was took out of the setup and park procedures, since it is currently locked in place and won't move. We will add it again later. All the currently unavailable minor servos components were took out from the Boss control by commenting them. They can still be accessed via objexp and check their status. The GFR was took out as well since it keeps blocking during movements. For now it has to be moved manually, it can be done via objexp as well, but resetting the errors from VBrain. I rewrote the SRPProgramTrackTest.cpp in order to test the behavior of the SRP with new libraries. The test acts just like before. Other tests need to be reworked, keeping the same logic behind. Further investigation must be put into the scanning procedure, in particular when the recorder retrieves the coordinates. --- .../idl/SRTMinorServoBoss.idl | 2 +- SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 14 +- .../include/SRTMinorServoCommon.h | 10 +- .../src/SRTBaseMinorServoImpl.cpp | 2 +- .../src/SRTMinorServoBossCore.cpp | 50 ++--- .../src/SRTMinorServoBossImpl.cpp | 8 +- .../src/SRTMinorServoParkThread.cpp | 13 +- .../src/SRTMinorServoScanThread.cpp | 11 +- .../src/SRTMinorServoSetupThread.cpp | 26 +-- .../src/SRTMinorServoStatusThread.cpp | 7 +- .../src/SRTMinorServoTrackingThread.cpp | 6 +- SRT/Servers/SRTMinorServo/test/Makefile | 18 +- .../test/SRPProgramTrackTest.cpp | 124 ++++++------ .../test/SRTMinorServoSocketTest.cpp | 187 ------------------ 14 files changed, 144 insertions(+), 334 deletions(-) delete mode 100644 SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl index ae5c1138b..9748e827e 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -79,7 +79,7 @@ module MinorServo * @param value, the desired gregorian cover position, accepted values are 'open', 'OPEN', 'closed' or 'CLOSED' * @throw MinorServoErrors::MinorServoErrorsEx */ - void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); + //void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); }; }; diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index a5fb819e5..6d703e1e1 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -105,14 +105,7 @@ namespace MinorServo } case MOTION_STATUS_TRACKING: { - if(m_scanning.load() == Management::MNG_FALSE) - { - motion_status = "Elevation Track Mode"; - } - else - { - motion_status = "Scanning along " + m_current_scan.servo_name + " " + m_current_scan.axis_name + " axis"; - } + motion_status = "Elevation Track Mode"; break; } case MOTION_STATUS_PARKING: @@ -152,6 +145,11 @@ namespace MinorServo } } + if(m_scanning.load() == Management::MNG_TRUE) + { + motion_status = "Scanning along " + m_current_scan.servo_name + " " + m_current_scan.axis_name + " axis"; + } + return motion_status.c_str(); } private: diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h index 77248b543..ed59c4865 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -16,8 +16,8 @@ /** * programTrack constants. The first indicates the time between two consecutive points, the second indicates the time we send each point in advance. */ -#define PROGRAM_TRACK_TIMEGAP 2000000 //200 milliseconds -#define PROGRAM_TRACK_FUTURE_TIME 4000000 //400 milliseconds +#define PROGRAM_TRACK_TIMEGAP 2000000 //200 milliseconds, time between each programTrack point +#define PROGRAM_TRACK_FUTURE_TIME 26000000 //2.6 seconds, we send points this amount of time before their actual timestamp /** * Macro used to link the properties pointers to their methods. @@ -100,10 +100,10 @@ namespace MinorServo */ const std::vector<std::string> ServoOrder = { - "PFP", + //"PFP", "SRP", - "GFR", - "M3R" + //"GFR", + //"M3R" }; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index 5b4d59f05..53d02c054 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -512,7 +512,7 @@ void SRTBaseMinorServoImpl::reloadOffsets() throw ex.getMinorServoErrorsEx(); } - ACS_LOG(LM_FULL_INFO, m_servo_name + "::reloadOffsets()", (LM_INFO, "Offsets discrepancy, reload")); + ACS_LOG(LM_FULL_INFO, m_servo_name + "::reloadOffsets()", (LM_NOTICE, "Offsets discrepancy, reloading them")); } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index fd1dc1173..45c3faf21 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -29,13 +29,13 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)), m_socket_connected(m_socket.isConnected() ? Management::MNG_TRUE : Management::MNG_FALSE), m_servos{ - { "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, - { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") }, - { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") }, - { "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } + //{ "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") } + //{ "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") }, + //{ "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } }, m_tracking_servos{ - { "PFP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/PFP") }, + //{ "PFP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/PFP") }, { "SRP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/SRP") } } { @@ -66,7 +66,7 @@ bool SRTMinorServoBossCore::status() if(m_socket_connected.load() == Management::MNG_FALSE) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_INFO, "Socket connected.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_NOTICE, "Socket connected.")); m_socket_connected.store(Management::MNG_TRUE); m_subsystem_status.store(Management::MNG_WARNING); } @@ -75,7 +75,7 @@ bool SRTMinorServoBossCore::status() { if(m_socket_connected.load() == Management::MNG_TRUE) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_INFO, "Socket disconnected.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_NOTICE, "Socket disconnected.")); m_socket_connected.store(Management::MNG_FALSE); stopThread(m_setup_thread); @@ -104,7 +104,7 @@ bool SRTMinorServoBossCore::status() ACSErr::Completion_var comp; SRTMinorServoMotionStatus motion_status = m_motion_status.load(); - if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) + /*if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) { // We only get here if the system is configured, therefore we check the correct position of the gregorian cover SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.current_configuration()->get_sync(comp.out()) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; @@ -114,7 +114,7 @@ bool SRTMinorServoBossCore::status() setFailure(); return false; } - } + }*/ for(const auto& [name, servo] : m_servos) { @@ -175,7 +175,7 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) if(m_scan_active.load() == Management::MNG_TRUE) { - ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, "THE SYSTEM IS PERFORMING A SCAN, CANNOT SETUP NOW")); + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, "THE SYSTEM IS PERFORMING A SCAN, CANNOT SETUP NOW")); _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); ex.setSubsystem("MinorServo"); ex.setReason("The system is waiting for a scan to be completed."); @@ -199,7 +199,7 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) } catch(std::out_of_range& oor) { - ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("UNKNOWN CONFIGURATION '" + commanded_setup + "'").c_str())); + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("UNKNOWN CONFIGURATION '" + commanded_setup + "'").c_str())); _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); ex.setSubsystem("MinorServo"); ex.setReason(("Unknown configuration '" + commanded_setup + "'.").c_str()); @@ -213,17 +213,17 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) SRTMinorServoMotionStatus motion_status = m_motion_status.load(); if(motion_status == MOTION_STATUS_STARTING) { - ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("ALREADY SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("ALREADY SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); return; } else if(motion_status == MOTION_STATUS_CONFIGURED || motion_status == MOTION_STATUS_TRACKING) { - ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("CONFIGURATION '" + commanded_setup + "' ALREADY IN PLACE").c_str())); + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("CONFIGURATION '" + commanded_setup + "' ALREADY IN PLACE").c_str())); return; } } - ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_INFO, ("SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); m_commanded_configuration.store(commanded_configuration); m_commanded_setup = commanded_setup; @@ -293,7 +293,7 @@ void SRTMinorServoBossCore::park() if(m_scan_active.load() == Management::MNG_TRUE) { - ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "THE SYSTEM IS PERFORMING A SCAN, CANNOT PARK NOW")); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "THE SYSTEM IS PERFORMING A SCAN, CANNOT PARK NOW")); _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); ex.setReason("The system is waiting for a scan to be completed."); @@ -304,16 +304,16 @@ void SRTMinorServoBossCore::park() SRTMinorServoMotionStatus motion_status = m_motion_status.load(); if(motion_status == MOTION_STATUS_PARKING) { - ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "MINOR SERVOS ALREADY PARKING")); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "MINOR SERVOS ALREADY PARKING")); return; } else if (motion_status == MOTION_STATUS_PARKED) { - ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "MINOR SERVOS ALREADY PARKED")); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "MINOR SERVOS ALREADY PARKED")); return; } - ACS_LOG(LM_FULL_INFO, "servoPark", (LM_INFO, "PARKING")); + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "PARKING")); m_commanded_configuration.store(CONFIGURATION_PARK); m_commanded_setup = "Park"; @@ -332,7 +332,7 @@ void SRTMinorServoBossCore::park() m_tracking.store(Management::MNG_FALSE); m_motion_status.store(MOTION_STATUS_PARKING); - try + /*try { // Send the STOW command to close the gregorian cover if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", COVER_STATUS_CLOSED)).checkOutput()) @@ -351,7 +351,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 each servo for(const auto& [servo_name, servo] : m_servos) @@ -407,7 +407,7 @@ void SRTMinorServoBossCore::setElevationTracking(std::string configuration) throw ex.getMinorServoErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "setServoElevationTracking", (LM_INFO, ("SETTING ELEVATION TRACKING TO " + configuration).c_str())); + ACS_LOG(LM_FULL_INFO, "setServoElevationTracking", (LM_NOTICE, ("SETTING ELEVATION TRACKING TO " + configuration).c_str())); if(configuration == "ON" && m_elevation_tracking_enabled.load() != Management::MNG_TRUE) { @@ -453,7 +453,7 @@ void SRTMinorServoBossCore::setASConfiguration(std::string configuration) throw ex.getMinorServoErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "setServoASConfiguration", (LM_INFO, ("SETTING ACTIVE SURFACE CONFIGURATION TO " + configuration).c_str())); + ACS_LOG(LM_FULL_INFO, "setServoASConfiguration", (LM_NOTICE, ("SETTING ACTIVE SURFACE CONFIGURATION TO " + configuration).c_str())); if(configuration == "ON" && m_as_configuration.load() != Management::MNG_TRUE) { @@ -511,7 +511,7 @@ void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) throw ex.getMinorServoErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_INFO, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); + ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_NOTICE, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) { @@ -656,7 +656,7 @@ void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double of { if(log) { - ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_INFO, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); + ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_NOTICE, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); } servo->setUserOffset(axis_name.c_str(), offset); } @@ -1307,7 +1307,7 @@ void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sle throw ex.getComponentErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startThread()", (LM_INFO, (std::string(T::c_thread_name) + " STARTED").c_str())); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startThread()", (LM_NOTICE, (std::string(T::c_thread_name) + " STARTED").c_str())); } template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 3cf8143be..c13d13237 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -95,7 +95,7 @@ void SRTMinorServoBossImpl::initialize() throw ex.getComponentErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_INFO, "PROPERTIES INITIALIZED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "PROPERTIES INITIALIZED")); m_parser.add("servoSetup", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setup), 1); m_parser.add("servoPark", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::park), 0); @@ -103,9 +103,9 @@ void SRTMinorServoBossImpl::initialize() m_parser.add("setServoASConfiguration", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setASConfiguration), 1); m_parser.add("setServoOffset", new SP::function2<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>, SP::I<SP::double_type>>(this, &SRTMinorServoBossImpl::setUserOffset), 2); m_parser.add("clearServoOffsets", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); - m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); + //m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_INFO, "PARSER INITIALIZED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "PARSER INITIALIZED")); } void SRTMinorServoBossImpl::execute() @@ -233,7 +233,7 @@ CORBA::Double SRTMinorServoBossImpl::getCentralScanPosition() void SRTMinorServoBossImpl::clearOffsets() { AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); - ACS_LOG(LM_FULL_INFO, "clearServoOffsets", (LM_INFO, "CLEARING ALL USER OFFSETS")); + ACS_LOG(LM_FULL_INFO, "clearServoOffsets", (LM_NOTICE, "CLEARING ALL USER OFFSETS")); m_core.clearUserOffsets("ALL"); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index 177478169..19083e185 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -4,8 +4,7 @@ using namespace MinorServo; SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), - m_core(core), - m_status(0) + m_core(core) { AUTO_TRACE("SRTMinorServoParkThread::SRTMinorServoParkThread()"); } @@ -21,14 +20,16 @@ void SRTMinorServoParkThread::onStart() this->setSleepTime(500000); // 50 milliseconds m_start_time = IRA::CIRATools::getUNIXEpoch(); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStart()", (LM_INFO, "PARK THREAD STARTED")); + m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStart()", (LM_NOTICE, "PARK THREAD STARTED")); } void SRTMinorServoParkThread::onStop() { AUTO_TRACE("SRTMinorServoParkThread::onStop()"); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStop()", (LM_INFO, "PARK THREAD STOPPED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStop()", (LM_NOTICE, "PARK THREAD STOPPED")); } void SRTMinorServoParkThread::runLoop() @@ -62,10 +63,10 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == COVER_STATUS_CLOSED? true : false; + //bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == COVER_STATUS_CLOSED? true : false; // 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 + if(/*completed && */std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp index bfec79cf9..ec1d9029c 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -28,7 +28,7 @@ void SRTMinorServoScanThread::onStart() size_t pre_scan_points = std::floor((m_core.m_current_scan.start_time - (getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME)) / PROGRAM_TRACK_TIMEGAP); m_point_time = m_core.m_current_scan.start_time - pre_scan_points * PROGRAM_TRACK_TIMEGAP; m_point_id = 0; - m_trajectory_id = (unsigned int)(m_point_time / 1000); + m_trajectory_id = (unsigned int)(IRA::CIRATools::ACSTime2UNIXEpoch(m_point_time)); // How many points in the scan trajectory? // We don't check the modulo of the division, we assume all the scans duration is always expressed in seconds, therefore the modulo should always be 0 @@ -51,7 +51,7 @@ void SRTMinorServoScanThread::onStart() auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); m_starting_coordinates = *servo->virtual_positions()->get_sync(comp.out()); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_INFO, "SCAN THREAD STARTED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_NOTICE, "SCAN THREAD STARTED")); } void SRTMinorServoScanThread::onStop() @@ -101,7 +101,7 @@ void SRTMinorServoScanThread::onStop() // Finally unlock the scan capabilities m_core.m_scan_active.store(Management::MNG_FALSE); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_INFO, "SCAN THREAD STOPPED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_NOTICE, "SCAN THREAD STOPPED")); } void SRTMinorServoScanThread::runLoop() @@ -167,7 +167,10 @@ void SRTMinorServoScanThread::runLoop() })) { // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation - elevation_tracking = Management::MNG_TRUE; + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + elevation_tracking = Management::MNG_TRUE; + } } else { diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 4acbb041e..6f407d53f 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -4,8 +4,7 @@ using namespace MinorServo; SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), - m_core(core), - m_status(0) + m_core(core) { AUTO_TRACE("SRTMinorServoSetupThread::SRTMinorServoSetupThread()"); } @@ -22,18 +21,20 @@ void SRTMinorServoSetupThread::onStart() this->setSleepTime(500000); // 50 milliseconds m_start_time = IRA::CIRATools::getUNIXEpoch(); - SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); - m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); - m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + m_status = 0; - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_INFO, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); + //SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); + //m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); + //m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_NOTICE, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); } void SRTMinorServoSetupThread::onStop() { AUTO_TRACE("SRTMinorServoSetupThread::onStop()"); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStop()", (LM_INFO, "SETUP THREAD STOPPED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStop()", (LM_NOTICE, "SETUP THREAD STOPPED")); } void SRTMinorServoSetupThread::runLoop() @@ -87,10 +88,11 @@ void SRTMinorServoSetupThread::runLoop() } //m_status = 2; - m_status = 100; + //m_status = 100; + m_status = 5; break; } - case 100: // Send the STOW command to the gregorian cover + /*case 100: // Send the STOW command to the gregorian cover { if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", m_gregorian_cover_position)).checkOutput()) { @@ -102,7 +104,7 @@ void SRTMinorServoSetupThread::runLoop() m_status = 5; break; - } + }*/ /*case 2: // Send the SETUP command { try @@ -195,9 +197,9 @@ void SRTMinorServoSetupThread::runLoop() case 6: // Wait for the whole system to reach the PRESET configuration { // First we check the status of the gregorian cover - bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + //bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; - if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(/*completed && */std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp index 4fbf459ed..3cbedce9a 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -5,7 +5,6 @@ using namespace MinorServo; SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : ACS::Thread(name, response_time, sleep_time), m_core(core), - m_status(0), m_sleep_time(this->getSleepTime()), m_notification_channel(nullptr) { @@ -21,7 +20,9 @@ void SRTMinorServoStatusThread::onStart() { AUTO_TRACE("SRTMinorServoStatusThread::onStart()"); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStart()", (LM_INFO, "STATUS THREAD STARTED")); + m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStart()", (LM_NOTICE, "STATUS THREAD STARTED")); } void SRTMinorServoStatusThread::onStop() @@ -34,7 +35,7 @@ void SRTMinorServoStatusThread::onStop() m_notification_channel = nullptr; } - ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStop()", (LM_INFO, "STATUS THREAD STOPPED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStop()", (LM_NOTICE, "STATUS THREAD STOPPED")); } void SRTMinorServoStatusThread::runLoop() diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 0dc91881c..55e8ba5e5 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -23,7 +23,7 @@ void SRTMinorServoTrackingThread::onStart() m_point_id = 0; m_point_time = 0; - ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStart()", (LM_INFO, "TRACKING THREAD STARTED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStart()", (LM_NOTICE, "TRACKING THREAD STARTED")); } void SRTMinorServoTrackingThread::onStop() @@ -35,7 +35,7 @@ void SRTMinorServoTrackingThread::onStop() m_core.setFailure(); } - ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_INFO, "TRACKING THREAD STOPPED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_NOTICE, "TRACKING THREAD STOPPED")); } void SRTMinorServoTrackingThread::runLoop() @@ -67,7 +67,7 @@ void SRTMinorServoTrackingThread::runLoop() if(m_point_id == 0) { m_point_time = getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME; - m_trajectory_id = (unsigned int)(m_point_time / 1000); + m_trajectory_id = (unsigned int)(IRA::CIRATools::ACSTime2UNIXEpoch(m_point_time)); } else { diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 035f03688..97a093eab 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,31 +14,25 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = SRTMinorServoSocketTest SRPProgramTrackTest DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest - -SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest -SRTMinorServoSocketTest_CFLAGS = -std=c++17 -SRTMinorServoSocketTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors -SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread +EXECUTABLES_L = SRPProgramTrackTest #DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest SRPProgramTrackTest_OBJECTS = SRPProgramTrackTest -SRPProgramTrackTest_CFLAGS = -std=c++17 -SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem -SRPProgramTrackTest_LDFLAGS = -lstdc++ -lpthread +SRPProgramTrackTest_CFLAGS = -std=c++17 -fconcepts +SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem DerotatorProgramTrackTest_OBJECTS = DerotatorProgramTrackTest DerotatorProgramTrackTest_CFLAGS = -std=c++17 -DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem DerotatorProgramTrackTest_LDFLAGS = -lstdc++ -lpthread CombinedProgramTrackTest_OBJECTS = CombinedProgramTrackTest CombinedProgramTrackTest_CFLAGS = -std=c++17 -CombinedProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +CombinedProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem CombinedProgramTrackTest_LDFLAGS = -lstdc++ -lpthread ReadStatusOnlyTest_OBJECTS = ReadStatusOnlyTest ReadStatusOnlyTest_CFLAGS = -std=c++17 -ReadStatusOnlyTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocket SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +ReadStatusOnlyTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem ReadStatusOnlyTest_LDFLAGS = -lstdc++ -lpthread # END OF CUSTOMIZATION diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index c53bebd49..e1033748e 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -4,13 +4,13 @@ #include <chrono> #include <ctime> #include <boost/filesystem.hpp> -#include "SRTMinorServoSocket.h" +#include "SRTMinorServoTestingSocket.h" #include "SRTMinorServoCommandLibrary.h" // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & -#define SIMULATION +//#define SIMULATION #ifdef SIMULATION #define ADDRESS std::string("127.0.0.1") #define PORT 12800 @@ -18,17 +18,19 @@ #define ADDRESS std::string("192.168.200.13") #define PORT 4758 #endif -#define SOCKET_TIMEOUT 0.5 #define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 -#define ADVANCE_TIMEGAP 5 -//#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } +#define ADVANCE_TIMEGAP 2.6 +#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } #define MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } #define MAX_SPEED std::vector<double>{ 4, 4, 4, 0.04, 0.04, 0.04 } #define STATUS_PERIOD 0.01 std::atomic<bool> terminate = false; +using namespace MinorServo; +using namespace IRA; + class SRPProgramTrackTest : public ::testing::Test { @@ -39,7 +41,7 @@ protected: static void printStatus(std::string filename) { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; ofstream statusFile; @@ -77,17 +79,17 @@ protected: std::string status; try { - status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + status = serializeCoordinates(CIRATools::ACSTime2UNIXEpoch(map.getTimestamp()), getCoordinates(map)); } catch(std::bad_variant_access const& ex) { std::cout << "Bad timestamp!" << std::endl; - SRTMinorServoAnswerMap::iterator iterator; + /*SRTMinorServoAnswerMap::iterator iterator; for(iterator = map.begin(); iterator != map.end(); ++iterator) { std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); - } + }*/ } status += serializeElongations(getElongations(map)); return status; @@ -118,16 +120,14 @@ protected: for(std::string coordinate : coordinates) { - auto value = SRPStatus[coordinate]; - try { - currentCoordinates.push_back(std::get<double>(value)); + currentCoordinates.push_back(SRPStatus.get<double>(coordinate)); } catch(std::bad_variant_access const& ex) { - std::cout << "Bad floating point coordinate:" << std::get<long>(value) << std::endl; - currentCoordinates.push_back(double(std::get<long>(value))); + std::cout << "Bad floating point coordinate:" << SRPStatus.get<long>(coordinate) << std::endl; + currentCoordinates.push_back(double(SRPStatus.get<long>(coordinate))); } } @@ -141,16 +141,14 @@ protected: for(std::string elongation : elongations) { - auto value = SRPStatus[elongation]; - try { - currentElongations.push_back(std::get<double>(value)); + currentElongations.push_back(SRPStatus.get<double>(elongation)); } catch(std::bad_variant_access const& ex) { - std::cout << "Bad floating point elongation:" << std::get<long>(value) << std::endl; - currentElongations.push_back(double(std::get<long>(value))); + std::cout << "Bad floating point elongation:" << SRPStatus.get<long>(elongation) << std::endl; + currentElongations.push_back(double(SRPStatus.get<long>(elongation))); } } @@ -184,7 +182,7 @@ protected: try { - SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT, 0.2); std::cout << "Socket connected." << std::endl; } catch(ComponentErrors::SocketErrorExImpl& ex) @@ -195,41 +193,41 @@ protected: FAIL() << "Unexpected failure." << std::endl; } - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); std::cout << "Sending MS STATUS command..."; SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); - EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); - EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); - EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + EXPECT_TRUE(MSStatus.checkOutput()); + EXPECT_EQ(MSStatus.get<long>("CONTROL"), 1); + //EXPECT_EQ(MSStatus.get<long>("POWER"), 1); + EXPECT_EQ(MSStatus.get<long>("EMERGENCY"), 2); + //EXPECT_EQ(MSStatus.get<long>("ENABLED"), 1); std::cout << "OK." << std::endl; - SRTMinorServoAnswerMap::iterator iterator; + /*SRTMinorServoAnswerMap::iterator iterator; for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) { std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); - } + }*/ std::cout << "Sending initial SRP STATUS command..."; SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + EXPECT_TRUE(SRPStatus.checkOutput()); + //EXPECT_EQ(SRPStatus.get<long>("SRP_STATUS"), 1); + EXPECT_EQ(SRPStatus.get<long>("SRP_BLOCK"), 2); std::cout << "OK." << std::endl; - for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + /*for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) { std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); - } + }*/ std::cout << "Sending all axes to the starting position..." << std::endl; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); signal(SIGINT, SRPProgramTrackTest::sigintHandler); @@ -237,14 +235,14 @@ protected: { std::this_thread::sleep_for(std::chrono::milliseconds(100)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); std::cout << serializeStatus(SRPStatus) << std::endl; if(terminate) FAIL() << "Aborting test..." << std::endl; } - while(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]) != 40); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + while(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE") != 40); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 40); std::cout << "OK." << std::endl; @@ -273,7 +271,7 @@ protected: void TearDown() override { - SRTMinorServoSocket::destroyInstance(); + SRTMinorServoTestingSocket::destroyInstance(); terminate = false; } }; @@ -286,16 +284,16 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) unsigned int point_id = 0; std::vector<double> programTrackCoordinates = startingCoordinates; - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); @@ -332,7 +330,7 @@ TEST_F(SRPProgramTrackTest, ContinuousMovementTest) } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; @@ -358,16 +356,16 @@ TEST_F(SRPProgramTrackTest, AllAxesMovementTest) unsigned int point_id = 0; std::vector<double> programTrackCoordinates = startingCoordinates; - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); @@ -407,7 +405,7 @@ TEST_F(SRPProgramTrackTest, AllAxesMovementTest) } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; @@ -442,16 +440,16 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); } - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); @@ -473,7 +471,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } @@ -483,7 +481,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) TEST_F(SRPProgramTrackTest, SeparateMovementTest) { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; ofstream programTrackFile; @@ -507,14 +505,14 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) unsigned int point_id = 0; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); while(!terminate) { @@ -547,7 +545,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); } //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; @@ -563,7 +561,7 @@ TEST_F(SRPProgramTrackTest, SeparateMovementTest) TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); SRTMinorServoAnswerMap SRPStatus; ofstream programTrackFile; @@ -587,14 +585,14 @@ TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) unsigned int point_id = 0; SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(50)); SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); - EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); while(!terminate) { @@ -621,7 +619,7 @@ TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) } SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_TRUE(SRPStatus.checkOutput()); } //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; diff --git a/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp b/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp deleted file mode 100644 index 72399f6f7..000000000 --- a/SRT/Servers/SRTMinorServo/test/SRTMinorServoSocketTest.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* These tests require a running simulator and were designed * - * to test the thread-safeness and singleton design pattern of the * - * SRTMinorServoSocket class. */ -#include "gtest/gtest.h" -#include <iostream> -#include <thread> -#include "SRTMinorServoSocket.h" -#include "SRTMinorServoCommandLibrary.h" - -// This address and port are the ones set in the simulator -// In order for the test to properly be executed, the simulator should be launched with the following command: -// discos-simulator -s minor_servo start & -#define ADDRESS std::string("127.0.0.1") -#define PORT 12800 - - -class SRTMinorServoSocketTest : public ::testing::Test -{ -protected: - std::vector<std::string> commands; - std::vector<std::thread> threads; - - void SetUp() override - { - std::cout << std::fixed << std::setprecision(6); - - // The following commands yield an articulated answer in return - commands.push_back(SRTMinorServoCommandLibrary::status()); - commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); - commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); - commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); - commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); - commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); - } - - void TearDown() override - { - SRTMinorServoSocket::destroyInstance(); - } -}; - -// This test passes the already created instance to some threads -TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) -{ - try - { - SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(ADDRESS, PORT); - - for(auto command : this->commands) - { - this->threads.push_back(std::thread([command, &socket]() - { - auto args = socket.sendCommand(command); - // By testing if the command was received correctly we also test if the socket is working properly - // and if the answer was received correctly without being interleaved with the answer from another thread - EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); - })); - } - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) - { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - } - else - { - FAIL() << "Unexpected failure." << std::endl; - } - } - - std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) - { - t.join(); - }); -} - -// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it -TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) -{ - std::string error = ""; - - for(auto command : this->commands) - { - std::mutex mutex; - - this->threads.push_back(std::thread([command, &error, &mutex]() - { - try - { - auto args = SRTMinorServoSocket::getInstance(ADDRESS, PORT).sendCommand(command); - // By testing if the command was received correctly we also test if the socket is working properly - // and if the answer was received correctly without being interleaved with the answer from another thread - EXPECT_EQ(std::get<std::string>(args["OUTPUT"]), "GOOD"); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - std::lock_guard<std::mutex> guard(mutex); - - if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) - { - error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; - } - else - { - error = "Unexpected failure."; - } - } - })); - } - - std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) - { - t.join(); - }); - - if(error != "") - { - FAIL() << error << std::endl; - } -} - -// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails -TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) -{ - try - { - // First let's open the socket with the chosen ADDRESS and PORT - SRTMinorServoSocket::getInstance(ADDRESS, PORT); - - // Let's try to instance another socket on a different port - SRTMinorServoSocket::getInstance(ADDRESS, PORT + 1); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) - { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - return; - } - else - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); - } - } -} - -// This test tries to retrieve an instance which has not been generated yet, failing -TEST_F(SRTMinorServoSocketTest, try_open_without_args) -{ - try - { - SRTMinorServoSocket::getInstance(); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) - { - FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; - return; - } - else - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object.").c_str()); - } - } -} - -// This test tries to generate an instance using a pair of address and port on which the socket fails to open -TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) -{ - try - { - // The exception is raised only if the given port is wrong - SRTMinorServoSocket::getInstance(ADDRESS, 0); - } - catch(ComponentErrors::SocketErrorExImpl& ex) - { - // Check if we got the correct exception - EXPECT_EQ(ex.getData("Reason"), std::string("Cannot connect the socket.").c_str()); - } -} -- GitLab From 45502d23f5bcd2ea958bd4ff50741422a2c9540e Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sun, 18 Feb 2024 02:37:10 +0000 Subject: [PATCH 075/150] Fixed SRT Procedures for testing CDB --- .../StationProcedures/StationProcedures.xml | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 39b02cfa4..4d86ea178 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -6,7 +6,7 @@ <Procedure name="setupCCB" args="0"> <body> antennaSetup=CCB - servoSetup=CCB + servoSetup=CCB receiversSetup=CCB chooseBackend=TotalPower initialize=CCB @@ -19,8 +19,9 @@ <Procedure name="setupCCG" args="0"> <body> - receiversSetup=CCG antennaSetup=CCG + servoSetup=CCG + receiversSetup=CCG chooseBackend=TotalPower initialize=CCG device=0 @@ -33,7 +34,7 @@ <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG - servoSetup=KKG + servoSetup=KKG receiversSetup=KKG receiversMode=SINGLEDISH chooseBackend=TotalPower @@ -48,7 +49,7 @@ <Procedure name="setupLLP" args="0"> <body> antennaSetup=LP - servoSetup=LLP + servoSetup=LLP receiversSetup=LLP receiversMode=XXC4 chooseBackend=TotalPower @@ -63,7 +64,7 @@ <Procedure name="setupPPP" args="0"> <body> antennaSetup=LP - servoSetup=PPP + servoSetup=PPP receiversSetup=PPP receiversMode=C3XX chooseBackend=TotalPower @@ -78,7 +79,7 @@ <Procedure name="setupPLP" args="0"> <body> antennaSetup=LP - servoSetup=PLP + servoSetup=PLP receiversSetup=PLP receiversMode=C3C4 chooseBackend=TotalPower @@ -93,28 +94,28 @@ <Procedure name="setupXB" args="0"> <body> antennaSetup=XB - servoSetup=XB + servoSetup=XB receiversSetup=CCB chooseBackend=TotalPower initialize=XB device=0 restFrequency=0 - setLO=7500 + setLO=7500 azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupSSP" args="0"> <body> - antennaSetup=LP - servoSetup=SSP - receiversSetup=CCB - chooseBackend=TotalPower - initialize=PPP - device=0 - calOff - restFrequency=0 - azelOffsets=0d,0d + antennaSetup=LP + servoSetup=SSP + receiversSetup=CCB + chooseBackend=TotalPower + initialize=PPP + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> -- GitLab From 99b58760640614aaa584080d6a60115d94b1938c Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 19 Feb 2024 13:28:22 +0000 Subject: [PATCH 076/150] Reverted the implementation of the ReceiversControl library --- .../IRALibrary/include/ReceiverControl.h | 12 ++-- .../IRALibrary/src/ReceiverControl.cpp | 55 ++++++++++++++++++- 2 files changed, 60 insertions(+), 7 deletions(-) diff --git a/Common/Libraries/IRALibrary/include/ReceiverControl.h b/Common/Libraries/IRALibrary/include/ReceiverControl.h index 7cc825483..08024c0b3 100644 --- a/Common/Libraries/IRALibrary/include/ReceiverControl.h +++ b/Common/Libraries/IRALibrary/include/ReceiverControl.h @@ -667,8 +667,8 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number_sd=MCB_PORT_NUMBER_13, const BYTE port_number_vlbi=MCB_PORT_NUMBER_14, - const BYTE value_sd=0x01, - const BYTE value_vlbi=0x00 + const BYTE value_sd=0x00, + const BYTE value_vlbi=0x01 ); @@ -682,7 +682,7 @@ public: bool isSingleDishModeOn( const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, - const BYTE port_number=MCB_PORT_NUMBER_13 + const BYTE port_number=MCB_PORT_NUMBER_29 ); @@ -704,8 +704,8 @@ public: const BYTE port_type=MCB_PORT_TYPE_DIO, const BYTE port_number_vlbi=MCB_PORT_NUMBER_14, const BYTE port_number_sd=MCB_PORT_NUMBER_13, - const BYTE value_vlbi=0x01, - const BYTE value_sd=0x00 + const BYTE value_vlbi=0x00, + const BYTE value_sd=0x01 ); @@ -719,7 +719,7 @@ public: bool isVLBIModeOn( const BYTE data_type=MCB_CMD_DATA_TYPE_B01, const BYTE port_type=MCB_PORT_TYPE_DIO, - const BYTE port_number=MCB_PORT_NUMBER_14 + const BYTE port_number=MCB_PORT_NUMBER_30 ); diff --git a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp index b758adc08..16350e8af 100644 --- a/Common/Libraries/IRALibrary/src/ReceiverControl.cpp +++ b/Common/Libraries/IRALibrary/src/ReceiverControl.cpp @@ -889,6 +889,20 @@ void ReceiverControl::setSingleDishMode( port_number_vlbi, value_vlbi ); + + // Turn OFF the single dish mode on port number 13 + makeRequest( + m_dewar_board_ptr, // Pointer to the dewar board + MCB_CMD_SET_DATA, // Command to send + 4, // Number of parameters + data_type, + port_type, + port_number_sd, + !value_sd + ); + + // Now the bits 13 and 14 are set to 1, meaning no current is now traversing any switch magnet and no mode is currently selected + // We need to set the bit 13 to 0, which will send a TTL impulse to the desired magnet switch, selecting the desired mode usleep(3 * SETMODE_SLEEP_TIME); // Turn ON the single dish mode on port number 13 @@ -901,6 +915,19 @@ void ReceiverControl::setSingleDishMode( port_number_sd, value_sd ); + + // We can switch off the TTL impulse after some time, setting the relative bit to 1 again + usleep(3 * SETMODE_SLEEP_TIME); + // Turn OFF the single dish mode on port number 13 + makeRequest( + m_dewar_board_ptr, // Pointer to the dewar board + MCB_CMD_SET_DATA, // Command to send + 4, // Number of parameters + data_type, + port_type, + port_number_sd, + !value_sd + ); pthread_mutex_unlock(&m_dewar_mutex); } catch(MicroControllerBoardEx& ex) { @@ -961,9 +988,22 @@ void ReceiverControl::setVLBIMode( port_number_sd, value_sd ); + + // Turn OFF the VLBI mode on port number 14 + makeRequest( + m_dewar_board_ptr, // Pointer to the dewar board + MCB_CMD_SET_DATA, // Command to send + 4, // Number of parameters + data_type, + port_type, + port_number_vlbi, + !value_vlbi + ); + + // Now the bits 13 and 14 are set to 1, meaning no current is now traversing any switch magnet and no mode is currently selected + // We need to set the bit 14 to 0, which will send a TTL impulse to the desired magnet switch, selecting the desired mode usleep(3 * SETMODE_SLEEP_TIME); - // Turn ON the VLBI mode on port number 14 makeRequest( m_dewar_board_ptr, // Pointer to the dewar board @@ -974,6 +1014,19 @@ void ReceiverControl::setVLBIMode( port_number_vlbi, value_vlbi ); + + // We can switch off the TTL impulse after some time, setting the relative bit to 1 again + usleep(3 * SETMODE_SLEEP_TIME); + // Turn OFF the VLBI mode on port number 14 + makeRequest( + m_dewar_board_ptr, // Pointer to the dewar board + MCB_CMD_SET_DATA, // Command to send + 4, // Number of parameters + data_type, + port_type, + port_number_vlbi, + !value_vlbi + ); pthread_mutex_unlock(&m_dewar_mutex); } catch(MicroControllerBoardEx& ex) { -- GitLab From c50f75959366449b60455a316f362197b8250413 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 19 Feb 2024 21:04:56 +0000 Subject: [PATCH 077/150] Updated logging for SRTMinorServos --- .../SRTMinorServoLibrary/src/Makefile | 6 ++--- .../include/SRTMinorServoBossImpl.h | 1 - .../include/SRTMinorServoCommon.h | 21 +++++++++++++--- .../src/SRTMinorServoBossCore.cpp | 25 ++++++++++++------- .../src/SRTMinorServoBossImpl.cpp | 17 ++++++------- .../src/SRTMinorServoParkThread.cpp | 2 +- .../src/SRTMinorServoScanThread.cpp | 2 +- .../src/SRTMinorServoSetupThread.cpp | 10 ++++---- .../src/SRTMinorServoTrackingThread.cpp | 2 +- 9 files changed, 52 insertions(+), 34 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 6385508ce..0c507e996 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -59,10 +59,10 @@ INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMino # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary PySRTMinorServoCommandLibrary +LIBRARIES = SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary PySRTMinorServoCommandLibrary #SRTMinorServoLibrary LIBRARIES_L = -SRTMinorServoLibrary_OBJECTS = hexlib -SRTMinorServoLibrary_LIBS = gsl gslcblas m +#SRTMinorServoLibrary_OBJECTS = hexlib +#SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -fconcepts SRTMinorServoCommandLibrary_LIBS = pthread IRALibrary diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index 6f15aafac..b93e90ed1 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -19,7 +19,6 @@ #include "MinorServoErrors.h" #include "SRTMinorServoBossCore.h" #include "SRTMinorServoStatusThread.h" -#include "SRTMinorServoUtils.h" #include "MSDevIOs.h" using namespace MinorServo; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h index ed59c4865..f808395e2 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -22,11 +22,24 @@ /** * Macro used to link the properties pointers to their methods. */ -#define GET_PROPERTY_REFERENCE(TYPE, CLASSNAME, PROPERTY, PROPERTYNAME) TYPE##_ptr CLASSNAME::PROPERTYNAME()\ +#define GET_PROPERTY_REFERENCE(TYPE, CLASSNAME, PROPERTY, PROPERTYNAME) TYPE##_ptr CLASSNAME::PROPERTYNAME() \ { \ - if (PROPERTY==0) return TYPE::_nil(); \ - TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ - return tmp._retn(); \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + +/** + * Macro used to show the error on the operatorInput and on the jlog since the parser does not log Ex type exceptions + */ +#define LOG_EX(EXTYPE) \ +{ \ + EXTYPE##Impl impl(ex); \ + std::string _command(cmd); \ + std::string error = _command.substr(0, _command.find('=')) + "?"; \ + SP::CFormatter<decltype(impl)>::exceptionToUser(impl, out); \ + error += out; \ + out = error.c_str(); \ } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 45c3faf21..34211e5e9 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -75,7 +75,7 @@ bool SRTMinorServoBossCore::status() { if(m_socket_connected.load() == Management::MNG_TRUE) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_NOTICE, "Socket disconnected.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Socket disconnected.")); m_socket_connected.store(Management::MNG_FALSE); stopThread(m_setup_thread); @@ -94,8 +94,9 @@ bool SRTMinorServoBossCore::status() { checkLineStatus(); } - catch(...) + catch(MinorServoErrors::MinorServoErrorsEx& ex) { + _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoBossCore::status()", getReasonFromEx(ex)); setFailure(); return false; } @@ -110,7 +111,7 @@ bool SRTMinorServoBossCore::status() SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.current_configuration()->get_sync(comp.out()) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; if(m_component.gregorian_cover()->get_sync(comp.out()) != commanded_gregorian_cover_position) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_ERROR, "Gregorian cover in wrong position.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Gregorian cover in wrong position.")); setFailure(); return false; } @@ -120,6 +121,7 @@ bool SRTMinorServoBossCore::status() { if(!servo->status()) { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, ("Error checking " + name + " status.").c_str())); setFailure(); return false; } @@ -1079,7 +1081,7 @@ bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorSer // Check if we are already performing another scan if(m_scan_active.load() == Management::MNG_TRUE) { - ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossCore::checkScan(): The system is waiting for a scan to be completed.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::checkScan()", (LM_CRITICAL, "The system is waiting for a scan to be completed.")); ms_parameters = ms_param_var._retn(); return false; } @@ -1105,7 +1107,7 @@ bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorSer SRTMinorServoMotionStatus motion_status = m_motion_status.load(); if(motion_status != MOTION_STATUS_TRACKING && motion_status != MOTION_STATUS_CONFIGURED) { - ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossCore::checkScan(): The system is not ready yet.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::checkScan()", (LM_CRITICAL, "The system is not ready yet.")); ms_parameters = ms_param_var._retn(); return false; } @@ -1149,6 +1151,7 @@ void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoSca if(scan_info.is_empty_scan) { start_time = getTimeStamp(); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startScan()", (LM_NOTICE, "Empty scan, nothing to do.")); return; } @@ -1171,6 +1174,7 @@ void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoSca m_current_scan = scan; start_time = scan.start_time; m_scan_active.store(Management::MNG_TRUE); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startScan()", (LM_NOTICE, "Scan started.")); startThread(m_scan_thread); } @@ -1199,6 +1203,7 @@ void SRTMinorServoBossCore::closeScan(ACS::Time& close_time) // Set the close_time close_time = std::max(getTimeStamp(), m_last_scan.close_time); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::closeScan()", (LM_NOTICE, "Scan closed.")); } double SRTMinorServoBossCore::getElevation(const ACS::Time& acs_time) @@ -1241,29 +1246,29 @@ void SRTMinorServoBossCore::checkLineStatus() if(!m_socket.isConnected()) { - setFailure(); _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("Socket not connected."); ex.log(LM_DEBUG); + setFailure(); throw ex.getMinorServoErrorsEx(); } ACSErr::Completion_var comp; if(m_component.control()->get_sync(comp.out()) != CONTROL_DISCOS) { - setFailure(); _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system is not controlled by DISCOS."); ex.log(LM_DEBUG); + setFailure(); throw ex.getMinorServoErrorsEx(); } if(m_component.emergency()->get_sync(comp.out()) == Management::MNG_TRUE) { - setFailure(); _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system in emergency status."); ex.log(LM_DEBUG); + setFailure(); throw ex.getMinorServoErrorsEx(); } } @@ -1300,10 +1305,10 @@ void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sle catch(acsthreadErrType::CanNotSpawnThreadExImpl& impl) { // The thread failed to start for some reason - setFailure(); _ADD_BACKTRACE(ComponentErrors::CanNotStartThreadExImpl, ex, impl, "SRTMinorServoBossCore::startThread()"); ex.setThreadName(T::c_thread_name); ex.log(LM_DEBUG); + setFailure(); throw ex.getComponentErrorsEx(); } @@ -1338,6 +1343,8 @@ void SRTMinorServoBossCore::destroyThread(T*& thread) thread->terminate(); m_component.getContainerServices()->getThreadManager()->destroy(thread); } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::destroyThread()", (LM_NOTICE, (std::string(T::c_thread_name) + " destroyed.").c_str())); } void SRTMinorServoBossCore::setFailure() diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index c13d13237..adbea5583 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -117,8 +117,8 @@ void SRTMinorServoBossImpl::cleanUp() { AUTO_TRACE("SRTMinorServoBossImpl::cleanUp()"); stopPropertiesMonitoring(); - _IRA_LOGFILTER_FLUSH; - _IRA_LOGFILTER_DESTROY; + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::cleanUp(); } @@ -126,8 +126,8 @@ void SRTMinorServoBossImpl::aboutToAbort() { AUTO_TRACE("SRTMinorServoBossImpl::aboutToAbort()"); stopPropertiesMonitoring(); - _IRA_LOGFILTER_FLUSH; - _IRA_LOGFILTER_DESTROY; + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; CharacteristicComponentImpl::aboutToAbort(); } @@ -365,20 +365,19 @@ CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out } catch(MinorServoErrors::MinorServoErrorsEx& ex) { - // Only print the routine, the reason is automatically provided in the message inside the jlog. - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + LOG_EX(MinorServoErrors::MinorServoErrorsEx); } catch(ComponentErrors::ComponentErrorsEx& ex) { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + LOG_EX(ComponentErrors::ComponentErrorsEx); } catch(ManagementErrors::ConfigurationErrorEx& ex) { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + LOG_EX(ManagementErrors::ConfigurationErrorEx); } catch(ManagementErrors::ParkingErrorEx& ex) { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + LOG_EX(ManagementErrors::ParkingErrorEx); } catch(...) // Unknown exception. If the above catch blocks are written correctly we should never get here. { diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index 19083e185..fce41d864 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -50,7 +50,7 @@ void SRTMinorServoParkThread::runLoop() if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::runLoop()", (LM_ERROR, "Timeout while performing a park operation.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::runLoop()", (LM_CRITICAL, "Timeout while performing a park operation.")); m_core.setFailure(); this->setStopped(); return; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp index ec1d9029c..8bda998a8 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -156,7 +156,7 @@ void SRTMinorServoScanThread::runLoop() bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; if(!return_value) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_ERROR, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); } return return_value; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 6f407d53f..1bcec7b37 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -55,7 +55,7 @@ void SRTMinorServoSetupThread::runLoop() if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Timeout while performing a setup operation.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Timeout while performing a setup operation.")); m_core.setFailure(); this->setStopped(); return; @@ -96,7 +96,7 @@ void SRTMinorServoSetupThread::runLoop() { if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", m_gregorian_cover_position)).checkOutput()) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Received NAK when setting the gregorian cover position.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK when setting the gregorian cover position.")); m_core.setFailure(); this->setStopped(); return; @@ -111,7 +111,7 @@ void SRTMinorServoSetupThread::runLoop() { if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration)).checkOutput()) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Received NAK in response to a SETUP command.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK in response to a SETUP command.")); m_core.setFailure(); this->setStopped(); return; @@ -123,7 +123,7 @@ void SRTMinorServoSetupThread::runLoop() } catch(...) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, "Communication error while sending a SETUP command.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Communication error while sending a SETUP command.")); m_core.setFailure(); this->setStopped(); return; @@ -167,7 +167,7 @@ void SRTMinorServoSetupThread::runLoop() } catch(...) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_ERROR, ("Error while loading a SETUP to servo'" + servo_name + "'.").c_str())); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, ("Error while loading a SETUP to servo'" + servo_name + "'.").c_str())); m_core.setFailure(); this->setStopped(); return; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 55e8ba5e5..22abf3a83 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -79,7 +79,7 @@ void SRTMinorServoTrackingThread::runLoop() bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; if(!return_value) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_ERROR, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); } return return_value; } -- GitLab From 0630c56561e34ab26adcc6f1d788dba4ffa0d07f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 19 Feb 2024 22:20:13 +0000 Subject: [PATCH 078/150] Updated SRTMinorServo socket disconnect logging --- SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 34211e5e9..fc1ea8fa2 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -75,7 +75,7 @@ bool SRTMinorServoBossCore::status() { if(m_socket_connected.load() == Management::MNG_TRUE) { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Socket disconnected.")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, (std::string("Socket disconnected: ") + getReasonFromEx(ex)).c_str())); m_socket_connected.store(Management::MNG_FALSE); stopThread(m_setup_thread); -- GitLab From 089cc82e2ab884b05eca4d2f82b94b5135a1b7b7 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 20 Feb 2024 10:38:23 +0000 Subject: [PATCH 079/150] Fixed small bug in servos axes naming, improved logging --- .../SRTMinorServo/src/SRTMinorServoBossCore.cpp | 12 +++++------- .../SRTMinorServo/src/SRTMinorServoBossImpl.cpp | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index fc1ea8fa2..917188b00 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -886,6 +886,11 @@ void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS:: ACS::stringSeq_var servo_axes_units; servo->getAxesInfo(servo_axes_names, servo_axes_units); + std::transform(servo_axes_names->begin(), servo_axes_names->end(), servo_axes_names->begin(), [servo_name](const char* axis_name) + { + return CORBA::string_dup((servo_name + "_" + axis_name).c_str()); + }); + size_t names_index = axes_names->length(); size_t units_index = axes_units->length(); axes_names->length(names_index + servo_axes_names->length()); @@ -1323,13 +1328,6 @@ void SRTMinorServoBossCore::stopThread(T*& thread) if(thread != nullptr && thread->isAlive()) { thread->stop(); - // We might not need this block, but if the previous call is blocking we won't get here anyway, better keep it - while(thread->isAlive()) - { - // TODO: remove this if found unnecessary - std::cout << "waiting thread" << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - } } } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index adbea5583..a9d2eb993 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -33,11 +33,15 @@ SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, m_last_executed_command_ptr(this) { AUTO_TRACE("SRTMinorServoBossImpl::SRTMinorServoBossImpl()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "COMPONENT CREATED")); } SRTMinorServoBossImpl::~SRTMinorServoBossImpl() { AUTO_TRACE("SRTMinorServoBossImpl::~SRTMinorServoBossImpl()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "COMPONENT DESTROYED")); } void SRTMinorServoBossImpl::initialize() @@ -95,7 +99,7 @@ void SRTMinorServoBossImpl::initialize() throw ex.getComponentErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "PROPERTIES INITIALIZED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "PROPERTIES INITIALIZED")); m_parser.add("servoSetup", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setup), 1); m_parser.add("servoPark", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::park), 0); @@ -105,17 +109,22 @@ void SRTMinorServoBossImpl::initialize() m_parser.add("clearServoOffsets", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); //m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "PARSER INITIALIZED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "PARSER INITIALIZED")); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "COMPONENT INITIALIZED")); } void SRTMinorServoBossImpl::execute() { AUTO_TRACE("SRTMinorServoBossImpl::execute()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::execute()", (LM_NOTICE, "STARTING TO ACCEPT FUNCTIONAL CALLS")); } void SRTMinorServoBossImpl::cleanUp() { AUTO_TRACE("SRTMinorServoBossImpl::cleanUp()"); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::cleanUp()", (LM_NOTICE, "CLEANING UP RESOURCES")); stopPropertiesMonitoring(); _IRA_LOGFILTER_FLUSH; _IRA_LOGFILTER_DESTROY; @@ -125,6 +134,7 @@ void SRTMinorServoBossImpl::cleanUp() void SRTMinorServoBossImpl::aboutToAbort() { AUTO_TRACE("SRTMinorServoBossImpl::aboutToAbort()"); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::aboutToAbort()", (LM_NOTICE, "ATTEMPTING TO CLEAN UP RESOURCES")); stopPropertiesMonitoring(); _IRA_LOGFILTER_FLUSH; _IRA_LOGFILTER_DESTROY; -- GitLab From acbd60bd60a44493b7f9a88a58db3d523374da49 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 20 Feb 2024 10:49:12 +0000 Subject: [PATCH 080/150] Removing mistakingly pushed instruction form procedure --- .../CDB/alma/Procedures/StationProcedures/StationProcedures.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 4d86ea178..1c63bba48 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -20,7 +20,6 @@ <Procedure name="setupCCG" args="0"> <body> antennaSetup=CCG - servoSetup=CCG receiversSetup=CCG chooseBackend=TotalPower initialize=CCG -- GitLab From 56d2f4d18efea1959abc73d51b5b15eceb770ea3 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 23 Feb 2024 01:32:29 +0000 Subject: [PATCH 081/150] Removed most of get_sync calls --- .../idl/SRTMinorServo.idl | 9 +- .../include/SRTMinorServoBossCore.h | 10 + .../include/SRTMinorServoBossImpl.h | 20 ++ .../include/SRTMinorServoCommon.h | 11 - .../SRTMinorServo/include/SRTMinorServoImpl.h | 49 +++- .../src/SRTBaseMinorServoImpl.cpp | 60 +++-- .../src/SRTMinorServoBossCore.cpp | 251 +++++++----------- .../src/SRTMinorServoBossImpl.cpp | 20 +- .../src/SRTMinorServoParkThread.cpp | 5 +- .../src/SRTMinorServoScanThread.cpp | 99 +++---- .../src/SRTMinorServoSetupThread.cpp | 63 +++-- .../src/SRTMinorServoTrackingThread.cpp | 71 ++--- .../src/SRTProgramTrackMinorServoImpl.cpp | 15 +- 13 files changed, 336 insertions(+), 347 deletions(-) diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 93b9ebc9d..9177b2853 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -125,8 +125,9 @@ module MinorServo * This method loads from the CDB the positioning coefficients related to the given configuration * @param configuration the string representing the name of the table from which the coefficients will be loaded * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration + * @return true if the servo is in use with the current configuration, false otherwise */ - void setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx); + boolean setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx); /** * This method calculates the servo coordinates for a given elevation @@ -265,6 +266,12 @@ module MinorServo * when there has been a communication error or when the command was not accepted */ void programTrack(in long trajectory_id, in long point_id, in ACS::Time point_time, in ACS::doubleSeq coordinates); + + /** + * This method returns a boolean indicating if the servo is tracking or not + * @return true if the servo is tracking, false otherwise + */ + boolean isTracking(); }; }; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index 73ea3c816..7471c29f8 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -413,6 +413,16 @@ private: */ const std::map<std::string, SRTProgramTrackMinorServo_ptr> m_tracking_servos; + /** + * Map that will dynamically be updated containing the current configuration's minor servos. + */ + std::map<std::string, SRTBaseMinorServo_ptr> m_current_servos; + + /** + * Map that will dynamically be updated containing the current configuration's tracking minor servos. + */ + std::map<std::string, SRTProgramTrackMinorServo_ptr> m_current_tracking_servos; + /** * Current scan parameters. */ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index b93e90ed1..9f1aebf6c 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -498,6 +498,11 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; + /** + * DevIO of the current_configuration property. + */ + MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>* m_current_configuration_devio; + /** * Pointer to the current_configuration property. */ @@ -518,6 +523,11 @@ private: */ baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; + /** + * DevIO of the control property. + */ + MSAnswerMapDevIO<SRTMinorServoControlStatus>* m_control_devio; + /** * Pointer to the control property. */ @@ -528,11 +538,21 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_power_ptr; + /** + * DevIO of the emergency property. + */ + MSAnswerMapDevIO<Management::TBoolean>* m_emergency_devio; + /** * Pointer to the emergency property. */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_emergency_ptr; + /** + * DevIO of the gregorian_cover property. + */ + MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>* m_gregorian_cover_devio; + /** * Pointer to the gregorian_cover property. */ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h index f808395e2..cf1070637 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -107,17 +107,6 @@ namespace MinorServo (CONFIGURATION_BWG2, 22) (CONFIGURATION_BWG3, 23) (CONFIGURATION_BWG4, 24); - - /** - * This is a simple list indicating the order of the minor servo components. - */ - const std::vector<std::string> ServoOrder = - { - //"PFP", - "SRP", - //"GFR", - //"M3R" - }; } #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index 204354bcf..374576200 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -105,8 +105,9 @@ public: * Asks the servo system to load the commanded configuration table. * @param configuration_name the configuration the servo system should assume. * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. + * @return true if the servo is in use with the current configuration, false otherwise */ - void setup(const char* configuration_name = ""); + bool setup(const char* configuration_name = ""); /** * Asks the component to calculate the servo system position starting from the given elevation. @@ -331,7 +332,6 @@ protected: */ const size_t m_virtual_axes; private: - /** * Number of physical axes of the servo system. */ @@ -347,6 +347,15 @@ private: */ const std::vector<std::string> m_virtual_axes_units; protected: + /** + * Commanded user offsets for each axis of the servo system. + */ + std::vector<double> m_user_offsets; + + /** + * Commanded system offsets for each axis of the servo system. + */ + std::vector<double> m_system_offsets; /** * Queue of positions assumed by the servo system in time. @@ -388,16 +397,6 @@ private: */ std::vector<double> m_c_s; - /** - * Commanded user offsets for each axis of the servo system. - */ - std::vector<double> m_user_offsets; - - /** - * Commanded system offsets for each axis of the servo system. - */ - std::vector<double> m_system_offsets; - /** * Boolean indicating whether the servo system is used in the current focal configuration. */ @@ -413,11 +412,21 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_enabled_ptr; + /** + * DevIO of the drive_cabinet_status property. + */ + MSAnswerMapDevIO<SRTMinorServoCabinetStatus>* m_drive_cabinet_status_devio; + /** * Pointer to the drive_cabinet_status property. */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>> m_drive_cabinet_status_ptr; + /** + * DevIO of the block property. + */ + MSAnswerMapDevIO<Management::TBoolean>* m_block_devio; + /** * Pointer to the block property. */ @@ -448,11 +457,23 @@ private: */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_plain_virtual_positions_ptr; + /** + * DevIO of the virtual_positions property. + */ + MSVirtualPositionsDevIO* m_virtual_positions_devio; + /** * Pointer to the virtual_positions property. */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; +protected: + /** + * DevIO of the virtual_offsets property. + */ + MSAnswerMapDevIO<ACS::doubleSeq>* m_virtual_offsets_devio; + +private: /** * Pointer to the virtual_offsets property. */ @@ -569,7 +590,7 @@ public: /** * Setup method definition. It simply calls the SRTBaseMinorServoImpl method. */ - void setup(const char* configuration_name = "") { SRTBaseMinorServoImpl::setup(configuration_name); } + bool setup(const char* configuration_name = "") { return SRTBaseMinorServoImpl::setup(configuration_name); } /** * Declaration of all the other inherited methods. @@ -620,7 +641,7 @@ public: * @param configuration_name the configuration the servo system should assume. * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. */ - void setup(const char* configuration_name = ""); + bool setup(const char* configuration_name = ""); /** * Declaration of all the other inherited methods. diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index 53d02c054..5df1f27a6 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -11,6 +11,8 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_physical_axes(getCDBValue<size_t>(container_services, "physical_axes")), m_virtual_axes_names(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_positions")), m_virtual_axes_units(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_axes_units")), + m_user_offsets(m_virtual_axes, 0.0), + m_system_offsets(m_virtual_axes, 0.0), m_positions_queue(5 * 60 * int(1 / getCDBValue<double>(container_services, "status_thread_period", "/MINORSERVO/Boss")), m_virtual_axes), m_min(SRTBaseMinorServoImpl::getMotionConstant(*this, "min_range")), m_max(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_range")), @@ -19,19 +21,21 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_r_t(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_times")), m_r_d(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_distances")), m_c_s(m_virtual_axes, 0.0), - m_user_offsets(m_virtual_axes, 0.0), - m_system_offsets(m_virtual_axes, 0.0), m_in_use(Management::MNG_FALSE), m_current_setup(""), m_enabled_ptr(this), + m_drive_cabinet_status_devio(nullptr), m_drive_cabinet_status_ptr(this), + m_block_devio(nullptr), m_block_ptr(this), m_operative_mode_ptr(this), m_physical_axes_enabled_ptr(this), m_physical_positions_ptr(this), m_virtual_axes_ptr(this), m_plain_virtual_positions_ptr(this), + m_virtual_positions_devio(nullptr), m_virtual_positions_ptr(this), + m_virtual_offsets_devio(nullptr), m_virtual_offsets_ptr(this), m_virtual_user_offsets_ptr(this), m_virtual_system_offsets_ptr(this), @@ -57,10 +61,10 @@ void SRTBaseMinorServoImpl::initialize() { m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":enabled").c_str(), getComponent(), new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "enabled", "ENABLED", m_status), true); - m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), - new MSAnswerMapDevIO<SRTMinorServoCabinetStatus>(m_servo_name, "drive_cabinet_status", "STATUS", m_status), true); - m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), - new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "block", "BLOCK", m_status), true); + m_drive_cabinet_status_devio = new MSAnswerMapDevIO<SRTMinorServoCabinetStatus>(m_servo_name, "drive_cabinet_status", "STATUS", m_status); + m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), m_drive_cabinet_status_devio, true); + m_block_devio = new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "block", "BLOCK", m_status); + m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), m_block_devio, true); m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((m_component_name + ":operative_mode").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoOperativeMode>(m_servo_name, "operative_mode", "OPERATIVE_MODE", m_status), true); m_physical_axes_enabled_ptr = new baci::RObooleanSeq((m_component_name + ":physical_axes_enabled").c_str(), getComponent(), @@ -72,10 +76,10 @@ void SRTBaseMinorServoImpl::initialize() m_plain_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":plain_virtual_positions").c_str(), getComponent(), new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_positions", m_virtual_axes_names, m_status), true); std::vector<std::string> virtual_offsets = SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets"); - m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), - new MSVirtualPositionsDevIO(m_servo_name, m_virtual_axes_names, virtual_offsets, m_status), true); - m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), - new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_offsets", virtual_offsets, m_status), true); + m_virtual_positions_devio = new MSVirtualPositionsDevIO(m_servo_name, m_virtual_axes_names, virtual_offsets, m_status); + m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), m_virtual_positions_devio, true); + m_virtual_offsets_devio = new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_offsets", virtual_offsets, m_status); + m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), m_virtual_offsets_devio, true); m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_user_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_user_offsets), true); m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_system_offsets").c_str(), getComponent(), @@ -129,8 +133,8 @@ bool SRTBaseMinorServoImpl::status() { m_socket.sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); - ACSErr::Completion_var comp; - ACS::doubleSeq current_point = *virtual_positions()->get_sync(comp.out()); + ACS::Time comp; + ACS::doubleSeq current_point = m_virtual_positions_devio->read(comp); // Calculate the current speed of the axes try @@ -201,14 +205,13 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) } std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - - // Read the current servo offsets - ACSErr::Completion_var comp; - ACS::doubleSeq offsets = *virtual_offsets()->get_sync(comp.out()); + ACS::Time comp; + ACS::doubleSeq offsets = m_virtual_offsets_devio->read(comp); for(size_t i = 0; i < m_virtual_axes; i++) { - if(coordinates[i] + offsets[i] < m_min[i] || coordinates[i] + offsets[i] > m_max[i]) + double coordinate = coordinates[i] + offsets[i]; + if(coordinate < m_min[i] || coordinate > m_max[i]) { _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); ex.addData("Reason", "Resulting position out of range, check the offsets."); @@ -226,7 +229,7 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) } } -void SRTBaseMinorServoImpl::setup(const char* configuration_name) +bool SRTBaseMinorServoImpl::setup(const char* configuration_name) { AUTO_TRACE(m_servo_name + "::setup()"); m_in_use.store(Management::MNG_FALSE); @@ -238,7 +241,7 @@ void SRTBaseMinorServoImpl::setup(const char* configuration_name) if(setup_name.empty()) { - return; + return false; } IRA::CDBTable table(getContainerServices(), setup_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); @@ -294,6 +297,8 @@ void SRTBaseMinorServoImpl::setup(const char* configuration_name) clearSystemOffsets(); m_in_use.store(Management::MNG_TRUE); } + + return true; } ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) @@ -496,8 +501,8 @@ void SRTBaseMinorServoImpl::reloadOffsets() std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); // Read the Leonardo offsets - ACSErr::Completion_var comp; - ACS::doubleSeq sequence = *virtual_offsets()->get_sync(comp.out()); + ACS::Time comp; + ACS::doubleSeq sequence = m_virtual_offsets_devio->read(comp); std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); // Check if the offsets correspond or not @@ -539,6 +544,12 @@ ACS::doubleSeq* SRTBaseMinorServoImpl::getAxesPositions(ACS::Time acs_time) { AUTO_TRACE("SRTBaseMinorServoImpl::getAxesPositions()"); + // Get the latest position + if(acs_time == 0) + { + acs_time = getTimeStamp(); + } + try { std::vector<double> p = m_positions_queue.get(acs_time).second; @@ -568,8 +579,7 @@ ACS::TimeInterval SRTBaseMinorServoImpl::getTravelTime(const ACS::doubleSeq& _s_ // No starting coordinates, it means we have to start from the current position taking into account the current speed if(_s_p.length() == 0) { - ACSErr::Completion_var comp; - s_p = *virtual_positions()->get_sync(comp.out()); + s_p = *getAxesPositions(0); } else if(_s_p.length() != m_virtual_axes) { @@ -662,8 +672,8 @@ void SRTBaseMinorServoImpl::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - ACSErr::Completion_var comp; - if(block()->get_sync(comp.out()) == Management::MNG_TRUE || drive_cabinet_status()->get_sync(comp.out()) == DRIVE_CABINET_ERROR) + ACS::Time comp; + if(m_block_devio->read(comp) == Management::MNG_TRUE || m_drive_cabinet_status_devio->read(comp) == DRIVE_CABINET_ERROR) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); ex.setReason("Servo system blocked or drive cabinet error."); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 917188b00..5d3cd1997 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -102,14 +102,14 @@ bool SRTMinorServoBossCore::status() } // Call servo status - ACSErr::Completion_var comp; + //ACS::Time comp; SRTMinorServoMotionStatus motion_status = m_motion_status.load(); /*if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) { // We only get here if the system is configured, therefore we check the correct position of the gregorian cover - SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.current_configuration()->get_sync(comp.out()) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; - if(m_component.gregorian_cover()->get_sync(comp.out()) != commanded_gregorian_cover_position) + SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.m_current_configuration_devio->read(comp) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + if(m_component.m_gregorian_cover_devio->read(comp) != commanded_gregorian_cover_position) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Gregorian cover in wrong position.")); setFailure(); @@ -136,14 +136,9 @@ bool SRTMinorServoBossCore::status() if(motion_status == MOTION_STATUS_TRACKING) { - if(std::all_of(m_tracking_servos.begin(), m_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool + if(std::all_of(m_current_tracking_servos.begin(), m_current_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_FALSE) - { - return true; - } - return servo.second->tracking()->get_sync(comp.out()) == Management::MNG_TRUE ? true : false; })) { @@ -243,8 +238,10 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) m_scanning.store(Management::MNG_FALSE); m_tracking.store(Management::MNG_FALSE); m_motion_status.store(MOTION_STATUS_STARTING); + m_current_servos.clear(); + m_current_tracking_servos.clear(); - // Send the STOP command to each servo + // Send the STOP command to all the servos for(const auto& [servo_name, servo] : m_servos) { try @@ -333,6 +330,8 @@ void SRTMinorServoBossCore::park() m_scanning.store(Management::MNG_FALSE); m_tracking.store(Management::MNG_FALSE); m_motion_status.store(MOTION_STATUS_PARKING); + m_current_servos.clear(); + m_current_tracking_servos.clear(); /*try { @@ -355,7 +354,7 @@ void SRTMinorServoBossCore::park() throw ex.getParkingErrorEx(); }*/ - // Send the STOP command to each servo + // Send the STOP command to all the servos for(const auto& [servo_name, servo] : m_servos) { try @@ -547,14 +546,9 @@ void SRTMinorServoBossCore::preset(double elevation) throw ex.getMinorServoErrorsEx(); } - ACSErr::Completion_var comp; - - for(const auto& [servo_name, servo] : m_servos) + for(const auto& [servo_name, servo] : m_current_servos) { - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - servo->preset(*servo->calcCoordinates(elevation)); - } + servo->preset(*servo->calcCoordinates(elevation)); } } @@ -583,38 +577,31 @@ void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); - ACSErr::Completion_var comp; if(servo_name == "ALL") { - for(const auto& [servo_name, servo] : m_servos) + for(const auto& [servo_name, servo] : m_current_servos) { - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { servo->clearUserOffsets(); - } } return; } + else if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } try { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - servo->clearUserOffsets(); - } - else - { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); - ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); - ex.log(LM_DEBUG); - throw ex.getMinorServoErrorsEx(); - } + auto servo = m_current_servos.at(servo_name); + servo->clearUserOffsets(); } catch(std::out_of_range& oor) { _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); - ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } @@ -650,30 +637,27 @@ void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double of std::getline(ss, servo_name, '_'); ss >> axis_name; + if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + try { - auto servo = m_servos.at(servo_name); - ACSErr::Completion_var comp; - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - if(log) - { - ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_NOTICE, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); - } - servo->setUserOffset(axis_name.c_str(), offset); - } - else + auto servo = m_current_servos.at(servo_name); + if(log) { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); - ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); - ex.log(LM_DEBUG); - throw ex.getMinorServoErrorsEx(); + ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_NOTICE, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); } + servo->setUserOffset(axis_name.c_str(), offset); } catch(std::out_of_range& oor) { _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); - ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } @@ -693,18 +677,13 @@ ACS::doubleSeq* SRTMinorServoBossCore::getUserOffsets() } ACS::doubleSeq_var offsets = new ACS::doubleSeq; - ACSErr::Completion_var comp; - for(const auto& servo_name : ServoOrder) + for(const auto& [servo_name, servo] : m_current_servos) { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - ACS::doubleSeq servo_offsets = *servo->getUserOffsets(); - size_t start_index = offsets->length(); - offsets->length(start_index + servo_offsets.length()); - std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); - } + ACS::doubleSeq servo_offsets = *servo->getUserOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); } return offsets._retn(); @@ -735,38 +714,31 @@ void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); - ACSErr::Completion_var comp; if(servo_name == "ALL") { - for(const auto& [servo_name, servo] : m_servos) + for(const auto& [servo_name, servo] : m_current_servos) { - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - servo->clearSystemOffsets(); - } + servo->clearSystemOffsets(); } return; } + else if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } try { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - servo->clearSystemOffsets(); - } - else - { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); - ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); - ex.log(LM_DEBUG); - throw ex.getMinorServoErrorsEx(); - } + auto servo = m_current_servos.at(servo_name); + servo->clearSystemOffsets(); } catch(std::out_of_range& oor) { _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); - ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } @@ -802,26 +774,23 @@ void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double std::getline(ss, servo_name, '_'); ss >> axis_name; + if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + try { - auto servo = m_servos.at(servo_name); - ACSErr::Completion_var comp; - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - servo->setSystemOffset(axis_name.c_str(), offset); - } - else - { - _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); - ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); - ex.log(LM_DEBUG); - throw ex.getMinorServoErrorsEx(); - } + auto servo = m_current_servos.at(servo_name); + servo->setSystemOffset(axis_name.c_str(), offset); } catch(std::out_of_range& oor) { _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); - ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } @@ -841,18 +810,13 @@ ACS::doubleSeq* SRTMinorServoBossCore::getSystemOffsets() } ACS::doubleSeq_var offsets = new ACS::doubleSeq; - ACSErr::Completion_var comp; - for(const auto& servo_name : ServoOrder) + for(const auto& [servo_name, servo] : m_current_servos) { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - ACS::doubleSeq servo_offsets = *servo->getSystemOffsets(); - size_t start_index = offsets->length(); - offsets->length(start_index + servo_offsets.length()); - std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); - } + ACS::doubleSeq servo_offsets = *servo->getSystemOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); } return offsets._retn(); @@ -876,28 +840,23 @@ void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS:: ACS::stringSeq_var axes_names = new ACS::stringSeq; ACS::stringSeq_var axes_units = new ACS::stringSeq; - ACSErr::Completion_var comp; - for(const auto& servo_name : ServoOrder) + for(const auto& [servo_name, servo] : m_current_servos) { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + ACS::stringSeq_var servo_axes_names; + ACS::stringSeq_var servo_axes_units; + servo->getAxesInfo(servo_axes_names, servo_axes_units); + + std::transform(servo_axes_names->begin(), servo_axes_names->end(), servo_axes_names->begin(), [servo_name](const char* axis_name) { - ACS::stringSeq_var servo_axes_names; - ACS::stringSeq_var servo_axes_units; - servo->getAxesInfo(servo_axes_names, servo_axes_units); + return CORBA::string_dup((servo_name + "_" + axis_name).c_str()); + }); - std::transform(servo_axes_names->begin(), servo_axes_names->end(), servo_axes_names->begin(), [servo_name](const char* axis_name) - { - return CORBA::string_dup((servo_name + "_" + axis_name).c_str()); - }); - - size_t names_index = axes_names->length(); - size_t units_index = axes_units->length(); - axes_names->length(names_index + servo_axes_names->length()); - axes_units->length(units_index + servo_axes_units->length()); - std::copy(servo_axes_names->begin(), servo_axes_names->end(), axes_names->begin() + names_index); - std::copy(servo_axes_units->begin(), servo_axes_units->end(), axes_units->begin() + units_index); - } + size_t names_index = axes_names->length(); + size_t units_index = axes_units->length(); + axes_names->length(names_index + servo_axes_names->length()); + axes_units->length(units_index + servo_axes_units->length()); + std::copy(servo_axes_names->begin(), servo_axes_names->end(), axes_names->begin() + names_index); + std::copy(servo_axes_units->begin(), servo_axes_units->end(), axes_units->begin() + units_index); } axes_names_out = axes_names._retn(); @@ -916,18 +875,13 @@ ACS::doubleSeq* SRTMinorServoBossCore::getAxesPositions(ACS::Time acs_time) } ACS::doubleSeq_var positions = new ACS::doubleSeq; - ACSErr::Completion_var comp; - for(const auto& servo_name : ServoOrder) + for(const auto& [servo_name, servo] : m_current_servos) { - auto servo = m_servos.at(servo_name); - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - ACS::doubleSeq servo_positions = *servo->getAxesPositions(acs_time); - size_t start_index = positions->length(); - positions->length(start_index + servo_positions.length()); - std::copy(servo_positions.begin(), servo_positions.end(), positions->begin() + start_index); - } + ACS::doubleSeq servo_positions = *servo->getAxesPositions(acs_time); + size_t start_index = positions->length(); + positions->length(start_index + servo_positions.length()); + std::copy(servo_positions.begin(), servo_positions.end(), positions->begin() + start_index); } return positions._retn(); @@ -955,28 +909,26 @@ SRTMinorServoScan SRTMinorServoBossCore::checkScanFeasibility(const ACS::Time& s ACS::stringSeq_var servo_axes_names, servo_axes_units; - SRTBaseMinorServo_ptr servo; - - try + if(!m_servos.count(servo_name)) { - servo = m_tracking_servos.at(servo_name); + ex.setReason(("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); } - catch(std::out_of_range& oor) + else if(!m_tracking_servos.count(servo_name)) { - ex.setReason(("Unknown servo '" + servo_name + "'.").c_str()); + ex.setReason(("Servo '" + servo_name + "' is not a tracking servo.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } - - ACSErr::Completion_var comp; - - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_FALSE) + else if(!m_current_tracking_servos.count(servo_name)) { ex.setReason(("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } + SRTProgramTrackMinorServo_ptr servo = m_current_tracking_servos.at(servo_name); servo->getAxesInfo(servo_axes_names, servo_axes_units); size_t axis_index; @@ -1021,12 +973,13 @@ SRTMinorServoScan SRTMinorServoBossCore::checkScanFeasibility(const ACS::Time& s servo->getAxesRanges(min_ranges, max_ranges); // Read the servo offsets - ACS::doubleSeq offsets = *servo->virtual_offsets()->get_sync(comp.out()); + ACS::doubleSeq user_offsets = *servo->getUserOffsets(); + ACS::doubleSeq system_offsets = *servo->getSystemOffsets(); // Check if starting or final positions are outside the axes range (considering offsets) for(size_t i = 0; i < starting_position.length(); i++) { - if(starting_position[i] + offsets[i] < min_ranges[i] || starting_position[i] + offsets[i] > max_ranges[i]) + if(starting_position[i] + user_offsets[i] + system_offsets[i] < min_ranges[i] || starting_position[i] + user_offsets[i] + system_offsets[i] > max_ranges[i]) { ex.setReason("Starting position out of range."); ex.log(LM_DEBUG); @@ -1258,8 +1211,8 @@ void SRTMinorServoBossCore::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - ACSErr::Completion_var comp; - if(m_component.control()->get_sync(comp.out()) != CONTROL_DISCOS) + ACS::Time comp; + if(m_component.m_control_devio->read(comp) != CONTROL_DISCOS) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system is not controlled by DISCOS."); @@ -1268,7 +1221,7 @@ void SRTMinorServoBossCore::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - if(m_component.emergency()->get_sync(comp.out()) == Management::MNG_TRUE) + if(m_component.m_emergency_devio->read(comp) == Management::MNG_TRUE) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system in emergency status."); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index a9d2eb993..91087d07f 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -22,13 +22,17 @@ SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, m_scan_active_ptr(this), m_scanning_ptr(this), m_tracking_ptr(this), + m_current_configuration_devio(nullptr), m_current_configuration_ptr(this), m_simulation_enabled_ptr(this), m_plc_time_ptr(this), m_plc_version_ptr(this), + m_control_devio(nullptr), m_control_ptr(this), m_power_ptr(this), + m_emergency_devio(nullptr), m_emergency_ptr(this), + m_gregorian_cover_devio(nullptr), m_gregorian_cover_ptr(this), m_last_executed_command_ptr(this) { @@ -73,22 +77,22 @@ void SRTMinorServoBossImpl::initialize() new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scanning), true); m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_tracking), true); - m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), - new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>("current_configuration", "CURRENT_CONFIG", m_core.m_status), true); + m_current_configuration_devio = new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>("current_configuration", "CURRENT_CONFIG", m_core.m_status); + m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), m_current_configuration_devio, true); m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":simulation_enabled").c_str(), getComponent(), new MSAnswerMapDevIO<Management::TBoolean>("simulation_enabled", "SIMULATION_ENABLED", m_core.m_status), true); m_plc_time_ptr = new baci::ROdouble((m_component_name + ":plc_time").c_str(), getComponent(), new MSAnswerMapDevIO<CORBA::Double>("plc_time", "PLC_TIME", m_core.m_status), true); m_plc_version_ptr = new baci::ROstring((m_component_name + ":plc_version").c_str(), getComponent(), new MSAnswerMapDevIO<ACE_CString>("plc_version", "PLC_VERSION", m_core.m_status), true); - m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), - new MSAnswerMapDevIO<SRTMinorServoControlStatus>("control", "CONTROL", m_core.m_status), true); + m_control_devio = new MSAnswerMapDevIO<SRTMinorServoControlStatus>("control", "CONTROL", m_core.m_status); + m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), m_control_devio, true); m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":power").c_str(), getComponent(), new MSAnswerMapDevIO<Management::TBoolean>("power", "POWER", m_core.m_status), true); - m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), - new MSAnswerMapDevIO<Management::TBoolean>("emergency", "EMERGENCY", m_core.m_status), true); - m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), - new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>("gregorian_cover", "GREGORIAN_CAP", m_core.m_status), true); + m_emergency_devio = new MSAnswerMapDevIO<Management::TBoolean>("emergency", "EMERGENCY", m_core.m_status); + m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), m_emergency_devio, true); + m_gregorian_cover_devio = new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>("gregorian_cover", "GREGORIAN_CAP", m_core.m_status); + m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), m_gregorian_cover_devio, true); m_last_executed_command_ptr = new baci::ROdouble((m_component_name + ":last_executed_command").c_str(), getComponent(), new MSAnswerMapDevIO<CORBA::Double>("last_executed_command", "LAST_EXECUTED_COMMAND", m_core.m_status), true); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index fce41d864..e04eff8b8 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -56,14 +56,13 @@ void SRTMinorServoParkThread::runLoop() return; } - ACSErr::Completion_var comp; - switch(m_status) { case 0: { // First we check if the gregorian cover has closed - //bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == COVER_STATUS_CLOSED? true : false; + ACS::Time comp; + //bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == COVER_STATUS_CLOSED ? true : false; // 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 diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp index 8bda998a8..a82aab228 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -49,7 +49,7 @@ void SRTMinorServoScanThread::onStart() // We save the starting coordinates to return to them when the scan is finished ACSErr::Completion_var comp; auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); - m_starting_coordinates = *servo->virtual_positions()->get_sync(comp.out()); + m_starting_coordinates = *servo->getAxesPositions(0); ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_NOTICE, "SCAN THREAD STARTED")); } @@ -138,38 +138,29 @@ void SRTMinorServoScanThread::runLoop() return; } - Management::TBoolean elevation_tracking = Management::MNG_FALSE; - - if(m_point_id > 0) + if(m_point_id == 1) { - if(std::all_of(m_core.m_tracking_servos.begin(), m_core.m_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_current_tracking_servos.begin(), m_core.m_current_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { - ACSErr::Completion_var comp; - if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo.first != m_core.m_current_scan.servo_name) { - if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo.first != m_core.m_current_scan.servo_name) - { - // Not tracking the elevation and this servo is not involved in the current scan - return true; - } - - bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; - if(!return_value) - { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); - } - return return_value; + // Not tracking the elevation and this servo is not involved in the current scan + return true; } - else + + ACSErr::Completion_var comp; + if(servo.second->operative_mode()->get_sync(comp.out()) != OPERATIVE_MODE_PROGRAMTRACK) { - return true; + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + return false; } + return true; })) { // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) { - elevation_tracking = Management::MNG_TRUE; + m_core.m_elevation_tracking.store(Management::MNG_TRUE); } } else @@ -191,56 +182,50 @@ void SRTMinorServoScanThread::runLoop() catch(ComponentErrors::ComponentErrorsEx& ex) { _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getErrorFromEx(ex)) + " Using a fixed elevation of " + std::to_string(elevation) + "° as scan central coordinate!").c_str()); - elevation_tracking = Management::MNG_FALSE; + m_core.m_elevation_tracking.store(Management::MNG_FALSE); } } - ACSErr::Completion_var comp; - for(const auto& [servo_name, servo] : m_core.m_tracking_servos) + for(const auto& [servo_name, servo] : m_core.m_current_tracking_servos) { - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo_name != m_core.m_current_scan.servo_name) { - if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo_name != m_core.m_current_scan.servo_name) - { - // Not tracking the elevation and this servo is not involved in the current scan - continue; - } - - ACS::doubleSeq coordinates = m_starting_coordinates; + // Not tracking the elevation and this servo is not involved in the current scan + continue; + } - if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) - { - coordinates = *servo->calcCoordinates(elevation); - } + ACS::doubleSeq coordinates = m_starting_coordinates; - if(servo_name == m_core.m_current_scan.servo_name) - { - try - { - // Ask for the offset in the exact m_point_time (we don't want to interpolate or retrieve any value before or after the scan time span) - coordinates[m_core.m_current_scan.axis_index] += m_scan_offsets.get(m_point_time, true).second[0]; - } - catch(...) - { - // No offset found for this point_time, ignore - } - } + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + coordinates = *servo->calcCoordinates(elevation); + } + if(servo_name == m_core.m_current_scan.servo_name) + { try { - servo->programTrack(m_trajectory_id, m_point_id, m_point_time, coordinates); + // Ask for the offset in the exact m_point_time (we don't want to interpolate or retrieve any value before or after the scan time span) + coordinates[m_core.m_current_scan.axis_index] += m_scan_offsets.get(m_point_time, true).second[0]; } - catch(MinorServoErrors::MinorServoErrorsEx& ex) + catch(...) { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_error = true; - this->setStopped(); - return; + // No offset found for this point_time, ignore } } - } - m_core.m_elevation_tracking.store(elevation_tracking); + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, coordinates); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + } m_point_id++; m_point_time += PROGRAM_TRACK_TIMEGAP; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 1bcec7b37..a36e5d0fb 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -61,8 +61,6 @@ void SRTMinorServoSetupThread::runLoop() return; } - ACSErr::Completion_var comp; - switch(m_status) { case 0: // Check if all the servos stopped @@ -133,7 +131,8 @@ void SRTMinorServoSetupThread::runLoop() } case 3: // Wait for the system to show the commanded configuration { - if(m_core.m_component.current_configuration()->get_sync(comp.out()) == m_core.m_commanded_configuration.load()) + ACS::Time comp; + if(m_core.m_component.m_current_configuration_devio->read(comp) == m_core.m_commanded_configuration.load()) { m_status = 4; } @@ -142,8 +141,9 @@ void SRTMinorServoSetupThread::runLoop() } case 4: // Wait for the whole system to reach the desired configuration { + ACSErr::Completion_var comp; // First we check the status of the gregorian cover - bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == m_gregorian_cover_position ? true : false; // Then we cycle through all the servos and make sure their operative mode is SETUP if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool @@ -163,7 +163,18 @@ void SRTMinorServoSetupThread::runLoop() { try { - servo->setup(m_core.m_commanded_setup.c_str()); + if(servo->setup(m_core.m_commanded_setup.c_str())) + { + m_core.m_current_servos[servo_name] = servo; + try + { + m_core.m_current_tracking_servos[servo_name] = m_core.m_tracking_servos.at(servo_name); + } + catch(...) + { + // Not a tracking servo, ignore + } + } } catch(...) { @@ -172,22 +183,22 @@ void SRTMinorServoSetupThread::runLoop() this->setStopped(); return; } + } - // This step is necessary because we have _ASACTIVE configurations that have a slightly different position from the commanded one - // Unfortunately, the Leonardo implementation accepts a fixed number of configurations, therefore we share the _ASACTIVE and AS not active configurations for each focal position - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) + // This step is necessary because we have _ASACTIVE configurations that have a slightly different position from the commanded one + // Unfortunately, the Leonardo implementation accepts a fixed number of configurations, therefore we share the _ASACTIVE and AS not active configurations for each focal position + for(const auto& [servo_name, servo] : m_core.m_current_servos) + { + try { - try - { - servo->preset(*servo->calcCoordinates(45)); - } - catch(MinorServoErrors::MinorServoErrorsEx& ex) - { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); - this->setStopped(); - return; - } + servo->preset(*servo->calcCoordinates(45)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; } } @@ -196,20 +207,14 @@ void SRTMinorServoSetupThread::runLoop() } case 6: // Wait for the whole system to reach the PRESET configuration { + //ACSErr::Completion_var comp; // First we check the status of the gregorian cover - //bool completed = m_core.m_component.gregorian_cover()->get_sync(comp.out()) == m_gregorian_cover_position ? true : false; + //bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == m_gregorian_cover_position ? true : false; - if(/*completed && */std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(/*completed && */std::all_of(m_core.m_current_servos.begin(), m_core.m_current_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PRESET ? true : false; - } - else - { - return true; - } + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PRESET ? true : false; })) { m_status = 7; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 22abf3a83..47bac8dc4 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -62,35 +62,26 @@ void SRTMinorServoTrackingThread::runLoop() } // All checks passed, we have to track - Management::TBoolean elevation_tracking = Management::MNG_FALSE; - if(m_point_id == 0) { m_point_time = getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME; m_trajectory_id = (unsigned int)(IRA::CIRATools::ACSTime2UNIXEpoch(m_point_time)); } - else + else if(m_point_id == 1) { - if(std::all_of(m_core.m_tracking_servos.begin(), m_core.m_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_current_tracking_servos.begin(), m_core.m_current_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - if(servo.second->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - bool return_value = servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PROGRAMTRACK ? true : false; - if(!return_value) - { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); - } - return return_value; - } - else + if(servo.second->operative_mode()->get_sync(comp.out()) != OPERATIVE_MODE_PROGRAMTRACK) { - return true; + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + return false; } + return true; })) { // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation - elevation_tracking = Management::MNG_TRUE; + m_core.m_elevation_tracking.store(Management::MNG_TRUE); } else { @@ -100,39 +91,33 @@ void SRTMinorServoTrackingThread::runLoop() } } - ACSErr::Completion_var comp; - for(const auto& [servo_name, servo] : m_core.m_tracking_servos) + for(const auto& [servo_name, servo] : m_core.m_current_tracking_servos) { - if(servo->in_use()->get_sync(comp.out()) == Management::MNG_TRUE) - { - double elevation = 45.0; + double elevation = 45.0; - try - { - elevation = m_core.getElevation(m_point_time); - } - catch(ComponentErrors::ComponentErrorsEx& ex) - { - _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); - elevation_tracking = Management::MNG_FALSE; - } + try + { + elevation = m_core.getElevation(m_point_time); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + } - try - { - servo->programTrack(m_trajectory_id, m_point_id, m_point_time, *servo->calcCoordinates(elevation)); - } - catch(MinorServoErrors::MinorServoErrorsEx& ex) - { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_error = true; - this->setStopped(); - return; - } + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, *servo->calcCoordinates(elevation)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; } } - m_core.m_elevation_tracking.store(elevation_tracking); - m_point_id++; m_point_time += PROGRAM_TRACK_TIMEGAP; diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index 1cd3c98cc..f294bc939 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -94,13 +94,15 @@ bool SRTProgramTrackMinorServoImpl::status() return status; } -void SRTProgramTrackMinorServoImpl::setup(const char* configuration_name) +bool SRTProgramTrackMinorServoImpl::setup(const char* configuration_name) { - SRTBaseMinorServoImpl::setup(configuration_name); + bool return_value = SRTBaseMinorServoImpl::setup(configuration_name); m_tracking_queue.clear(); m_total_trajectory_points.store(0); m_remaining_trajectory_points.store(0); + + return return_value; } void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& virtual_coordinates) @@ -118,14 +120,13 @@ void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORB } std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - - // Read the current servo offsets - ACSErr::Completion_var comp; - ACS::doubleSeq offsets = *virtual_offsets()->get_sync(comp.out()); + ACS::Time comp; + ACS::doubleSeq offsets = m_virtual_offsets_devio->read(comp); for(size_t i = 0; i < m_virtual_axes; i++) { - if(coordinates[i] + offsets[i] < m_min[i] || coordinates[i] + offsets[i] > m_max[i]) + double coordinate = coordinates[i] + offsets[i]; + if(coordinate < m_min[i] || coordinate > m_max[i]) { _EXCPT(MinorServoErrors::TrackingErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); ex.addData("Reason", "Resulting position out of range, check the offsets!"); -- GitLab From 15ef34e76778b16c6f6a6e9cfb11a877cba52295 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 23 Feb 2024 12:18:59 +0000 Subject: [PATCH 082/150] Fixed a couple more things --- SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h | 6 ++++++ SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp | 4 ++-- SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index 374576200..ac49cf99e 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -660,6 +660,12 @@ public: */ void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& coordinates); + /** + * Returns the tracking status of the minor servo. + * @return true if the minor servo is tracking within the tracking error, false otherwise + */ + bool isTracking() { return m_tracking.load() == Management::MNG_TRUE; } + /** * Declaration of all the other inherited properties methods. */ diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 5d3cd1997..f05589f3f 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -139,7 +139,7 @@ bool SRTMinorServoBossCore::status() if(std::all_of(m_current_tracking_servos.begin(), m_current_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->tracking()->get_sync(comp.out()) == Management::MNG_TRUE ? true : false; + return servo.second->isTracking(); })) { m_tracking.store(Management::MNG_TRUE); @@ -985,7 +985,7 @@ SRTMinorServoScan SRTMinorServoBossCore::checkScanFeasibility(const ACS::Time& s ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } - else if(final_position[i] + offsets[i] < min_ranges[i] || final_position[i] + offsets[i] > max_ranges[i]) + else if(final_position[i] + user_offsets[i] + system_offsets[i] < min_ranges[i] || final_position[i] + user_offsets[i] + system_offsets[i] > max_ranges[i]) { ex.setReason("Final position out of range."); ex.log(LM_DEBUG); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index e04eff8b8..efeabcb31 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -61,7 +61,7 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - ACS::Time comp; + // ACS::Time comp; //bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == COVER_STATUS_CLOSED ? true : false; // Then we cycle through all the servos and make sure their operative mode is STOP -- GitLab From 110a4401717903577630ca53e7e3bc45cc7ded4f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 1 Mar 2024 11:19:33 +0000 Subject: [PATCH 083/150] Refactored SRTMinorServos --- .../include/SRTMinorServoAnswerMap.h | 204 ----- .../include/SRTMinorServoCommandLibrary.h | 2 +- .../include/SRTMinorServoContainers.h | 848 ++++++++++++++++++ .../SRTMinorServoLibrary/src/Makefile | 2 +- SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 300 +------ .../include/SRTMinorServoBossCore.h | 6 +- .../include/SRTMinorServoBossImpl.h | 23 +- .../include/SRTMinorServoCommon.h | 74 -- .../include/SRTMinorServoContainers.h | 328 ------- .../SRTMinorServo/include/SRTMinorServoImpl.h | 35 +- .../include/SRTMinorServoParkThread.h | 2 +- .../include/SRTMinorServoScanThread.h | 2 +- .../include/SRTMinorServoSetupThread.h | 2 +- .../include/SRTMinorServoStatusThread.h | 2 +- .../include/SRTMinorServoTrackingThread.h | 2 +- .../src/SRTBaseMinorServoImpl.cpp | 51 +- .../src/SRTMinorServoBossCore.cpp | 16 +- .../src/SRTMinorServoBossImpl.cpp | 28 +- .../src/SRTMinorServoParkThread.cpp | 3 +- .../src/SRTMinorServoScanThread.cpp | 8 +- .../src/SRTMinorServoSetupThread.cpp | 33 +- .../src/SRTMinorServoTrackingThread.cpp | 6 +- .../src/SRTProgramTrackMinorServoImpl.cpp | 3 +- 23 files changed, 970 insertions(+), 1010 deletions(-) delete mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h delete mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h deleted file mode 100644 index 4c111db94..000000000 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoAnswerMap.h +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef _SRTMINORSERVOANSWERMAP_H -#define _SRTMINORSERVOANSWERMAP_H - -#include <sstream> -#include <map> -#include <mutex> -#include <shared_mutex> -#include <IRA> -#include "SRTMinorServoUtils.h" - - -namespace MinorServo -{ - class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> - { - /** - * This class privately extends the type std::map<std::string, std::variant<long, double, std::string>>. - * It is therefore an std::map which can hold different types of values, such as long, double and str::string, in the same container. - * It is used to store the answers received from the SRTMinorServo Leonardo system. - * This design was critical since all the received values have heterogeneous keys and values. - * With this object, the SRTMinorServoSocket can correctly retrieve and store all the received values without having to know the keys or types a priori. - */ - - /* - * Declare this class as friend since it will have to iterate through the inner map - */ - friend class PySRTMinorServoCommandLibrary; - public: - /** - * Use the same clear method of the parent class - */ - using std::map<std::string, std::variant<long, double, std::string>>::clear; - - /** - * Default constructor, initialize the std::map object and the synchronization mutex - */ - SRTMinorServoAnswerMap() : std::map<std::string, std::variant<long, double, std::string>>(), m_mutex() {} - - /** - * Initialize the std::map with the content of another SRTMinorServoAnswerMap, initialize the mutex, lock both objects - * @param other the SRTMinorServoAnswerMap with which the content of the current object will be initialized - */ - SRTMinorServoAnswerMap(const SRTMinorServoAnswerMap& other) : m_mutex() - { - std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); - std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); - std::lock(lockThis, lockOther); - static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); - } - - /** - * Assignment operator. It lock both the current object and the assigned one's mutexes - * @param other the SRTMinorServoAnswerMap which values have to be stored in the current object - */ - SRTMinorServoAnswerMap& operator=(const SRTMinorServoAnswerMap& other) - { - if(this != &other) - { - std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); - std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); - std::lock(lockThis, lockOther); - static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); - } - - return *this; - } - - /** - * Equality operator, only check the std::map and avoid comparing the mutexes, which will obviously be different - * @param other the SRTMinorServoAnswerMap object to compare the current object with - */ - bool operator==(const SRTMinorServoAnswerMap& other) const - { - return static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(*this) == static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); - } - - /** - * get method. It must be used with a template parameter, in order for the SRTMinorServoAnswerMap to be able to retrieve the correct type of object for the given key. - * The method will automatically convert the retrieved long, double or std::string to the given template type. - * @param T the type (i.e.: int, long, double, char*) of the object to be retrieved. It can be anything derived from integral, floating point or string values. - * @param key the key assigned to the value you want to retrieve - * @return the value associated to given key 'key', returned as template type 'T', if possible. Be aware that some casts (i.e.: long to int, double to float) will lose precision and/or overflow - * @throw std::bad_variant_access when retrieving the stored value by asking the wrong type (i.e.: stored type is a double but T is char*) - * @throw std::runtime_error when attempting to retrieve a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) - */ - template <typename T> - T get(const std::string& key) const - { - if constexpr(std::negation_v<is_known<T>>) - { - throw std::runtime_error("Unsupported type."); - } - - std::shared_lock<std::shared_mutex> lock(m_mutex); - - if constexpr(std::is_integral_v<T>) - { - return (T)std::get<long>(this->at(key)); - } - else if constexpr(std::is_floating_point_v<T>) - { - return (T)std::get<double>(this->at(key)); - } - else if constexpr(is_string_v<T>) - { - return (T)std::get<std::string>(this->at(key)).c_str(); - } - } - - /** - * put method. The template parameter is automatically deducted from the 'value' argument. Stores the given 'value' associated with key 'key' - * @param key the key associated to the stored value 'value' - * @param value the value we are storing with the given key 'key' - * @throw std::runtime_error when attempting to store a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) - */ - template <typename T> - void put(const std::string& key, const T& value) - { - if constexpr(std::negation_v<is_known<T>>) - { - throw std::runtime_error("Unsupported type."); - } - - std::unique_lock<std::shared_mutex> lock(m_mutex); - - if constexpr(std::is_integral_v<T>) - { - this->operator[](key) = long(value); - } - else if constexpr(std::is_floating_point_v<T>) - { - this->operator[](key) = double(value); - } - else if constexpr(is_string_v<T>) - { - this->operator[](key) = std::string(value); - } - } - - /** - * This method checks whether the container holds a value for the given key 'key' - * @param key the key for the value we want to check if it's present in the container - * @return true if the value is present in the container, false otherwise - */ - bool contains(const std::string& key) const - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - return this->find(key) != this->end(); - } - - /** - * This methods returns the std::variant type index for the value associated to the given key 'key' - * @param key the key for the value we want to retrieve the type index - * @throw std::out_of_range if the key is not found in the object - * @return 0 for long, 1 for double, 2 for std::string - */ - unsigned int index(const std::string& key) const - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - return this->at(key).index(); - } - - /** - * This method checks whether the contained answer to a command sent to the SRTMinorServo system was positive or not - * @return true if the command was correctly accepted, false if the command was not accepted or the 'OUTPUT' key was not found (unlikely scenario) - */ - const bool checkOutput() const - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - try - { - if(this->get<std::string>("OUTPUT") == "GOOD") - { - return true; - } - } - catch(std::out_of_range& ex) - { - // Key not found - } - - return false; - } - - /** - * This method retrieves the ACS::Time associated with the received answer map. It converts the value from UNIX Epoch (double) to ACS::Time - * @return the ACS::Time associated with the answer map - */ - const ACS::Time getTimestamp() const - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); - } - - private: - /** - * Shared mutex to control read and write accesses. Multiple reading access are permitted and will only block writing access. Writing access will block all accesses - */ - mutable std::shared_mutex m_mutex; - }; -} - - -#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 5f0c009f5..702334252 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -7,7 +7,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoAnswerMap.h" +#include "SRTMinorServoContainers.h" #include <sstream> #include <vector> #include <map> diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h new file mode 100644 index 000000000..9a7b829df --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -0,0 +1,848 @@ +#ifndef __SRTMINORSERVOCONTAINERS_H__ +#define __SRTMINORSERVOCONTAINERS_H__ + +/** + * SRTMinorServoContainers.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <map> +#include <vector> +#include <mutex> +#include <shared_mutex> +#include <IRA> +#include <boost/bimap.hpp> +#include <boost/assign.hpp> +#include <SRTMinorServoCommonS.h> +#include "SRTMinorServoUtils.h" + + +namespace MinorServo +{ + /** + * Object used to store some info regarding a scan. + */ + struct SRTMinorServoScan + { + /** + * Name of the servo involved in the scan. + */ + std::string servo_name = ""; + + /** + * Name of the axis involved in the scan. + */ + std::string axis_name = ""; + + /** + * Index of the axis involved in the scan. + */ + size_t axis_index = 0; + + /** + * Range of the scan. + */ + double scan_range = 0; + + /** + * Starting time of the scan. + */ + ACS::Time start_time = 0; + + /** + * Closing time of the scan. + */ + ACS::Time close_time = 0; + + /** + * Duration of the scan. + */ + ACS::TimeInterval scan_duration = 0; + + /** + * Central position of the scan axis. + */ + double central_position = 0; + + /** + * Starting elevation for the scan. + */ + double starting_elevation = 0; + }; + + /** + * This dictionary contains information regarding the possibile focal configurations. + * The key indicates the configuration as known by DISCOS. + * The value is a pair, the first element of the pair is the DISCOS enumeration for the relative Leonardo configuration, + * the second element of the pair indicates whether the configuration has a ASACTIVE twin configuraiton. + */ + 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)}, + {"CCG", std::make_pair(CONFIGURATION_GREGORIAN1, true )}, + {"KKG", std::make_pair(CONFIGURATION_GREGORIAN2, true )}, + {"WWG", std::make_pair(CONFIGURATION_GREGORIAN3, true )}, + {"QQG", std::make_pair(CONFIGURATION_GREGORIAN4, true )}, + {"TRI", std::make_pair(CONFIGURATION_GREGORIAN5, true )}, + {"MISTRAL", std::make_pair(CONFIGURATION_GREGORIAN6, true )}, + {"CCB", std::make_pair(CONFIGURATION_BWG1, true )}, + {"XB", std::make_pair(CONFIGURATION_BWG3, true )}, + }; + + /** + * This dictionary contains the Leonardo focal configurations DISCOS enumerations, alongside their name inside the Leonardo minor servo system. + */ + using LDOConfigurationNameTableType = boost::bimap<SRTMinorServoFocalConfiguration, std::string>; + const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of<LDOConfigurationNameTableType::relation> + (CONFIGURATION_PRIMARY, "Primario") + (CONFIGURATION_GREGORIAN1, "Gregoriano 1") + (CONFIGURATION_GREGORIAN2, "Gregoriano 2") + (CONFIGURATION_GREGORIAN3, "Gregoriano 3") + (CONFIGURATION_GREGORIAN4, "Gregoriano 4") + (CONFIGURATION_GREGORIAN5, "Gregoriano 5") + (CONFIGURATION_GREGORIAN6, "Gregoriano 6") + (CONFIGURATION_GREGORIAN7, "Gregoriano 7") + (CONFIGURATION_GREGORIAN8, "Gregoriano 8") + (CONFIGURATION_BWG1, "BWG1") + (CONFIGURATION_BWG2, "BWG2") + (CONFIGURATION_BWG3, "BWG3") + (CONFIGURATION_BWG4, "BWG4"); + + /** + * This dictionary containes the Leonardo focal configurations DISCOS enumerations, alongside their ID counterpart as read from the Leonardo minor servo system proxy. + */ + using LDOConfigurationIDTableType = boost::bimap<SRTMinorServoFocalConfiguration, unsigned int>; + const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of<LDOConfigurationIDTableType::relation> + (CONFIGURATION_UNKNOWN, 0) + (CONFIGURATION_PRIMARY, 1) + (CONFIGURATION_GREGORIAN1, 11) + (CONFIGURATION_GREGORIAN2, 12) + (CONFIGURATION_GREGORIAN3, 13) + (CONFIGURATION_GREGORIAN4, 14) + (CONFIGURATION_GREGORIAN5, 15) + (CONFIGURATION_GREGORIAN6, 16) + (CONFIGURATION_GREGORIAN7, 17) + (CONFIGURATION_GREGORIAN8, 18) + (CONFIGURATION_BWG1, 21) + (CONFIGURATION_BWG2, 22) + (CONFIGURATION_BWG3, 23) + (CONFIGURATION_BWG4, 24); + + using SRTMinorServoLookupTable = std::map<std::string, std::vector<double>>; + + /** + * This class implements a queue of time tagged positions. it extends a simple std::map with some specific methods. + */ + class SRTMinorServoPositionsQueue : private std::map<ACS::Time, const std::vector<double>> + { + public: + /** + * Default constructor. Used only for lazy initialization. + */ + SRTMinorServoPositionsQueue() : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(0), m_vector_size(0), m_mutex() {} + + /** + * Constructor with queue size as parameter. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + */ + SRTMinorServoPositionsQueue(size_t queue_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(0), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + } + + /** + * Constructor with queue size and vector size as parameters. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + * @param vector_size the length of the vectors that this object will store. Once set it cannot be changed. This assures we are always dealing with the same number of virtual axes. + */ + SRTMinorServoPositionsQueue(size_t queue_size, size_t vector_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(vector_size), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + vectorLazyInit(vector_size); + } + + /** + * Custom assignment operator. It locks both the current object and the passed one with a mutex in order for the assignment operation to be thread safe. + * @param other the other SRTMinorServoPositionsQueue we are assigning its value to the current object. + * @return the newly populated SRTMinorServoPositionsQueue object. + */ + SRTMinorServoPositionsQueue& operator=(const SRTMinorServoPositionsQueue& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + m_queue_size = other.m_queue_size; + m_vector_size = other.m_vector_size; + std::map<ACS::Time, const std::vector<double>>::operator=(other); + } + + return *this; + } + + /** + * Put method, with initializer list argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::initializer_list<double>& values) + { + put(key, std::vector<double>(values)); + } + + /** + * Put method, with ACS::doubleSeq argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const ACS::doubleSeq& values) + { + put(key, std::vector<double>(values.get_buffer(), values.get_buffer() + values.length())); + } + + /** + * Put method, with std::vector<double> argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::vector<double>& values) + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + + vectorLazyInit(values.size()); + queueLazyInit(m_queue_size); + if(std::map<ACS::Time, const std::vector<double>>::size() == m_queue_size) + { + // Remove the oldest one + this->erase(this->begin()); + } + this->emplace(std::make_pair(key, values)); + } + + /** + * Get method. It retrieves a set of coordinates from a given ACS::Time, giving back the time as well. + * @param key the time the user wants to retrieve the related coordinates. + * @param exact a boolean indicating whether the user wants to interpolate (false) or not (true). + * @throw std::logic_error when the queue is empty. + * @throw std::out_of_range when the exact point was not found in the queue. + * @return a std::pair containing the ACS::Time as first element and the set of coordinates as second element. + */ + std::pair<ACS::Time, const std::vector<double>> get(ACS::Time key, bool exact = false) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + + if(const SRTMinorServoPositionsQueue::iterator point = this->find(key); point != this->end()) + { + return *point; + } + else if(exact) + { + // Exact point not found, we throw an exception + throw std::out_of_range("Exact point not found!"); + } + else + { + // Key not found, should check outside the boundaries or interpolate + if(key <= this->begin()->first) + { + // Aksed for a timestamp older than the earliest point in the queue + return *this->cbegin(); + } + else if(key >= this->rbegin()->first) + { + // Asked for a timestamp newer than the latest point in the queue + return *this->crbegin(); + } + else + { + std::vector<double> positions(m_vector_size, 0.0); + SRTMinorServoPositionsQueue::iterator p0, p1; + p1 = this->lower_bound(key); + p0 = p1; + p0--; + + // Calculate the linear fit for each position + double fraction = (key - p0->first) / (p1->first - p0->first); + + for(size_t i = 0; i < m_vector_size; i++) + { + positions[i] = p0->second[i] + fraction * (p1->second[i] - p0->second[i]); + } + + return std::make_pair(key, (const std::vector<double>)positions); + } + } + } + + /** + * Size method thread safe override. + * @return the number of elements in the queue. + */ + size_t size() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return std::map<ACS::Time, const std::vector<double>>::size(); + } + + /** + * Clear method, thread safe. It empties the queue. + */ + void clear() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + std::map<ACS::Time, const std::vector<double>>::clear(); + } + + /** + * This method returns the number of points having a higher tag time than the one passed as argument. + * @param t the time threshold. This method counts and returns the number of points having a higher time than this value. + * @throw std::logic_error when the queue is empty. + * @return the number of points having a higher time than the given one. + */ + size_t getRemainingPoints(ACS::Time t) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + return std::distance(this->lower_bound(t), this->end()); + } + + private: + /** + * This method gets called by the constructors for the lazy intialization of the queue size value. + * @param queue_size the desired maximum queue size. + * @throw std::length_error when the desired queue size is equal to 0 or when it is greater than the maximum size that can be currently allocated. + */ + void queueLazyInit(size_t queue_size) + { + if(m_queue_size == 0) + { + if(queue_size == 0) + { + // The maximum queue size was not set yet + throw std::length_error("Queue length cannot be 0."); + } + else if(queue_size > this->max_size()) + { + // The requested size is greater than the maximum possible queue size + throw std::length_error("Queue length cannot exceed " + std::to_string(this->max_size()) + "."); + } + else + { + m_queue_size = queue_size; + } + } + } + + /** + * This method gets called by the constructors for the lazy initialization of the vector size value. + * @param vector_size the desired length of the vector containing the set of points. + * @throw std::length_error when the desired vector size is equal to 0 or when it is longer than 6. We don't have more than 6 axes, so we hard cap this value to 6. + * It also throws this when the user tries to insert a vector with different lenght then the already defined one. This ensures all stored vecors are of equal length. + */ + void vectorLazyInit(size_t vector_size) + { + if(vector_size == 0) + { + throw std::length_error("Vector length cannot be 0."); + } + else if(vector_size > 6) + { + // Hard cap to 6, we don't need more + throw std::length_error("Vector length cannot be longer than 6."); + } + else if(m_vector_size == 0) + { + m_vector_size = vector_size; + } + else if(m_vector_size != vector_size) + { + throw std::length_error("New vector length does not match the initial one."); + } + } + + /** + * The maximum size of the queue. + */ + size_t m_queue_size; + + /** + * The desired length of the vectors stored by this object. + */ + size_t m_vector_size; + + /** + * The shared mutex used for access synchronization. + */ + mutable std::shared_mutex m_mutex; + }; + + + class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> + { + /** + * This class privately extends the type std::map<std::string, std::variant<long, double, std::string>>. + * It is therefore an std::map which can hold different types of values, such as long, double and str::string, in the same container. + * It is used to store the answers received from the SRTMinorServo Leonardo system. + * This design was critical since all the received values have heterogeneous keys and values. + * With this object, the SRTMinorServoSocket can correctly retrieve and store all the received values without having to know the keys or types a priori. + */ + + /* + * Declare this class as friend since it will have to iterate through the inner map + */ + friend class PySRTMinorServoCommandLibrary; + public: + /** + * Use the same clear method of the parent class + */ + using std::map<std::string, std::variant<long, double, std::string>>::clear; + + /** + * Default constructor, initialize the std::map object and the synchronization mutex + */ + SRTMinorServoAnswerMap() : std::map<std::string, std::variant<long, double, std::string>>(), m_mutex() {} + + /** + * Initialize the std::map with the content of another SRTMinorServoAnswerMap, initialize the mutex, lock both objects + * @param other the SRTMinorServoAnswerMap with which the content of the current object will be initialized + */ + SRTMinorServoAnswerMap(const SRTMinorServoAnswerMap& other) : m_mutex() + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * Assignment operator. It lock both the current object and the assigned one's mutexes + * @param other the SRTMinorServoAnswerMap which values have to be stored in the current object + */ + SRTMinorServoAnswerMap& operator=(const SRTMinorServoAnswerMap& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + return *this; + } + + /** + * Equality operator, only check the std::map and avoid comparing the mutexes, which will obviously be different + * @param other the SRTMinorServoAnswerMap object to compare the current object with + */ + bool operator==(const SRTMinorServoAnswerMap& other) const + { + return static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(*this) == static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * get method. It must be used with a template parameter, in order for the SRTMinorServoAnswerMap to be able to retrieve the correct type of object for the given key. + * The method will automatically convert the retrieved long, double or std::string to the given template type. + * @param T the type (i.e.: int, long, double, char*) of the object to be retrieved. It can be anything derived from integral, floating point or string values. + * @param key the key assigned to the value you want to retrieve + * @return the value associated to given key 'key', returned as template type 'T', if possible. Be aware that some casts (i.e.: long to int, double to float) will lose precision and/or overflow + * @throw std::bad_variant_access when retrieving the stored value by asking the wrong type (i.e.: stored type is a double but T is char*) + * @throw std::runtime_error when attempting to retrieve a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + T get(const std::string& key) const + { + if constexpr(std::negation_v<is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::shared_lock<std::shared_mutex> lock(m_mutex); + + if constexpr(std::is_integral_v<T>) + { + return (T)std::get<long>(this->at(key)); + } + else if constexpr(std::is_floating_point_v<T>) + { + return (T)std::get<double>(this->at(key)); + } + else if constexpr(is_string_v<T>) + { + return (T)std::get<std::string>(this->at(key)).c_str(); + } + } + + /** + * put method. The template parameter is automatically deducted from the 'value' argument. Stores the given 'value' associated with key 'key' + * @param key the key associated to the stored value 'value' + * @param value the value we are storing with the given key 'key' + * @throw std::runtime_error when attempting to store a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + void put(const std::string& key, const T& value) + { + if constexpr(std::negation_v<is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::unique_lock<std::shared_mutex> lock(m_mutex); + + if constexpr(std::is_integral_v<T>) + { + this->operator[](key) = long(value); + } + else if constexpr(std::is_floating_point_v<T>) + { + this->operator[](key) = double(value); + } + else if constexpr(is_string_v<T>) + { + this->operator[](key) = std::string(value); + } + } + + /** + * This method checks whether the container holds a value for the given key 'key' + * @param key the key for the value we want to check if it's present in the container + * @return true if the value is present in the container, false otherwise + */ + bool contains(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->find(key) != this->end(); + } + + /** + * This methods returns the std::variant type index for the value associated to the given key 'key' + * @param key the key for the value we want to retrieve the type index + * @throw std::out_of_range if the key is not found in the object + * @return 0 for long, 1 for double, 2 for std::string + */ + unsigned int index(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->at(key).index(); + } + + /** + * This method checks whether the contained answer to a command sent to the SRTMinorServo system was positive or not + * @return true if the command was correctly accepted, false if the command was not accepted or the 'OUTPUT' key was not found (unlikely scenario) + */ + const bool checkOutput() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + try + { + if(this->get<std::string>("OUTPUT") == "GOOD") + { + return true; + } + } + catch(std::out_of_range& ex) + { + // Key not found + } + + return false; + } + + /** + * This method retrieves the ACS::Time associated with the received answer map. It converts the value from UNIX Epoch (double) to ACS::Time + * @return the ACS::Time associated with the answer map + */ + const ACS::Time getTimestamp() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); + } + + protected: + /** + * Shared mutex to control read and write accesses. Multiple reading access are permitted and will only block writing access. Writing access will block all accesses + */ + mutable std::shared_mutex m_mutex; + }; + + /** + * This class is a specialization of the SRTMinorServoAnswerMap for the general Leonardo Minor Servo System status. + */ + class SRTMinorServoGeneralStatus : public SRTMinorServoAnswerMap + { + public: + /** + * Retrieves the current configuration from the map. + * @return the current SRTMinorServoFocalConfiguration. + */ + SRTMinorServoFocalConfiguration getFocalConfiguration() const + { + return LDOConfigurationIDTable.right.at(this->get<unsigned int>("CURRENT_CONFIG")); + } + + /** + * Retrieves a boolean indicating whether the simulation is enabled or not. + * @returns a boolean indicating whether the simulation is enabled or not. + */ + Management::TBoolean isSimulationEnabled() const + { + return this->get<unsigned int>("SIMULATION_ENABLED") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the PLC time of the reading. + * @return a double indicating the PLC time, expressed as UNIX Epoch. + */ + double getPLCTime() const + { + return this->get<double>("PLC_TIME"); + } + + /** + * Returns the firmware version present on the PLC. + * @return a string containing the firmware version. + */ + ACE_CString getPLCVersion() const + { + return this->get<std::string>("PLC_VERSION").c_str(); + } + + /** + * Returns who is controlling the Leonardo Minor Servo System. + * @return an enum indicating who is controlling the system. + */ + SRTMinorServoControlStatus getControl() const + { + return SRTMinorServoControlStatus(this->get<unsigned int>("CONTROL") - 1); + } + + /** + * Returns a boolean indicating whether the system is powered on or not. + * @return a boolean indicating whether the system is powered on or not. + */ + Management::TBoolean hasPower() const + { + return this->get<unsigned int>("POWER") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Is the emergency stop pressed somewhere? Is there an emergency situation? + * @return a boolean indicating if an emergency is present or not. + */ + Management::TBoolean emergencyPressed() const + { + return this->get<unsigned int>("EMERGENCY") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the position of the gregorian cover. + * @return an enum indicating the position of the gregorian cover. + */ + SRTMinorServoGregorianCoverStatus getGregorianCoverPosition() const + { + return SRTMinorServoGregorianCoverStatus(this->get<unsigned int>("GREGORIAN_CAP")); + } + + /** + * Returns the UNIX Epoch of the last executed command. + * @return a double containing the UNIX Epoch of the last executed command. + */ + double getLastExecutedCommand() const + { + return this->get<double>("LAST_EXECUTED_COMMAND"); + } + }; + + /** + * This class is a specialization of the SRTMinorServoAnswerMap for a single servo status of the Leonardo Minor Servo System. + */ + class SRTMinorServoStatus : public SRTMinorServoAnswerMap + { + public: + /** + * Constructor. Accepts some lists of labels in order to correctly retrieve the values from the map. + * @param servo_name the servo name used as a prefix when retrieving the values. + * @param physical_axes_enabled the labels used to retrieve the status of each physical axis. + * @param physical_positions the labels used to retrieve the position of each physical axis. + * @param virtual_positions the labels used to retrieve the position of each virtual axis. + * @param virtual_offsets the labels used to retrieve the offset of each virtual axis. + */ + SRTMinorServoStatus( + const std::string& servo_name, + const std::vector<std::string>& physical_axes_enabled, + const std::vector<std::string>& physical_positions, + const std::vector<std::string>& virtual_positions, + const std::vector<std::string>& virtual_offsets + ) : + SRTMinorServoAnswerMap(), + m_servo_name(servo_name), + m_physical_axes_enabled(physical_axes_enabled), + m_physical_positions(physical_positions), + m_virtual_positions(virtual_positions), + m_virtual_offsets(virtual_offsets) + {} + + /** + * Returns a boolean indicating whether the servo is enabled. + * @returns true if enabled, false otherwise. + */ + Management::TBoolean isEnabled() const + { + return this->get<unsigned int>(m_servo_name + "_ENABLED") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the status of the servo drive cabinet. + * @returns an enum indicating the status of the servo drive cabinet. + */ + SRTMinorServoCabinetStatus getDriveCabinetStatus() const + { + return SRTMinorServoCabinetStatus(this->get<unsigned int>(m_servo_name + "_STATUS") - 1); + } + + /** + * Returns a boolean indicating whether the servo is blocked or not. + * @return true if the servo is blocked, false otherwise. + */ + Management::TBoolean isBlocked() const + { + return this->get<unsigned int>(m_servo_name + "_BLOCK") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the operative mode of the servo. + * @return an enum indicating the operative mode of the servo. + */ + SRTMinorServoOperativeMode getOperativeMode() const + { + return SRTMinorServoOperativeMode(this->get<unsigned int>(m_servo_name + "_OPERATIVE_MODE") / 10); + } + + /** + * Returns the status of each physical axis. + * @return a boolean sequence, true if the axis is enabled, false otherwise. + */ + ACS::booleanSeq getPhysicalAxesEnabled() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::booleanSeq>(m_physical_axes_enabled); + } + + /** + * Returns the position of each physical axis. + * @return a double sequence containing the position of each physical axis. + */ + ACS::doubleSeq getPhysicalPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_physical_positions); + } + + /** + * Returns the plain position of each virtual axis. + * @return a double sequence containing the plain position of each virtual axis. + */ + ACS::doubleSeq getPlainVirtualPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_virtual_positions); + } + + /** + * Returns the actual position of each virtual axis, minus the offset. + * @return a double sequence containing the position of each virtual axis, minus the offset. + */ + ACS::doubleSeq getVirtualPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + ACS::doubleSeq virtual_positions = getPlainVirtualPositions(); + ACS::doubleSeq virtual_offsets = getVirtualOffsets(); + for(size_t i = 0; i < virtual_positions.length(); i++) + { + virtual_positions[i] -= virtual_offsets[i]; + } + + return virtual_positions; + } + + /** + * Returns the offset of each virtual axis. + * @return a double sequence containing the offset of each virtual axis. + */ + ACS::doubleSeq getVirtualOffsets() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_virtual_offsets); + } + + private: + /** + * This method extracts a sequence, either boolean or double, from the map, and returns it. + * @param labels a vector of strings containing the labels to use in order to extract the corresponding values from the map. + * @return the composed sequence of booleans or doubles. + */ + template <typename T, typename = std::enable_if<is_any_v<T, ACS::booleanSeq, ACS::doubleSeq>>> + T getSequence(const std::vector<std::string>& labels) const + { + T sequence; + sequence.length(labels.size()); + + for(size_t i = 0; i < labels.size(); i++) + { + if constexpr(std::is_same_v<T, ACS::booleanSeq>) + { + sequence[i] = (bool)this->get<unsigned int>(m_servo_name + "_" + labels[i]); + } + else if constexpr(std::is_same_v<T, ACS::doubleSeq>) + { + sequence[i] = this->get<double>(m_servo_name + "_" + labels[i]); + } + } + + return sequence; + } + + /** + * The name of the servo, this is used as prefix when retrieving values from the map. + */ + const std::string m_servo_name; + + /** + * The labels for the enabled value of each physical axis. + */ + const std::vector<std::string> m_physical_axes_enabled; + + /** + * The labels for the positions of each physical axis. + */ + const std::vector<std::string> m_physical_positions; + + /** + * The labels for the positions of each virtual axis. + */ + const std::vector<std::string> m_virtual_positions; + + /** + * The labels for the offsets of each virtual axis. + */ + const std::vector<std::string> m_virtual_offsets; + }; +} + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index 0c507e996..9bc719dce 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -54,7 +54,7 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoAnswerMap.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h SRTMinorServoUtils.h #hexlib.h +INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h SRTMinorServoUtils.h SRTMinorServoContainers.h #hexlib.h # # Libraries (public and local) diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index 6d703e1e1..330d3905d 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -2,17 +2,16 @@ #define _MSDEVIOS_H /** - * MSDevIO.h + * MSDevIOs.h * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include "SRTMinorServoContainers.h" #include <type_traits> #include <baciDevIO.h> #include <ComponentErrors.h> -#include <SRTMinorServoCommonS.h> -#include "SRTMinorServoAnswerMap.h" +#include "SRTMinorServoBossCore.h" namespace MinorServo @@ -69,9 +68,9 @@ namespace MinorServo * @param scanning a reference to the TBoolean indicating whether the system is scanning or not. * @param current_scan a reference to the SRTMinorServoScan object containing the parameters for the current scan. It is used to read the servo name and axis involved in the scan. */ - MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoAnswerMap& answer_map, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : + MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoGeneralStatus& boss_status, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : m_motion_status(motion_status), - m_answer_map(answer_map), + m_boss_status(boss_status), m_scanning(scanning), m_current_scan(current_scan) {} @@ -84,7 +83,6 @@ namespace MinorServo ACE_CString read(ACS::Time& timestamp) { std::string motion_status; - SRTMinorServoAnswerMap answer_map = m_answer_map; switch(m_motion_status.load()) { @@ -120,13 +118,13 @@ namespace MinorServo try { // If I can read the status of the gregorian cover I will notify the user about it on the GUI - SRTMinorServoGregorianCoverStatus cover_status = SRTMinorServoGregorianCoverStatus(answer_map.get<unsigned int>("GREGORIAN_CAP")); + SRTMinorServoGregorianCoverStatus cover_position = m_boss_status.getGregorianCoverPosition(); - if(cover_status == COVER_STATUS_OPEN) + if(cover_position == COVER_STATUS_OPEN) { motion_status += ", gregorian cover open"; } - else if(cover_status == COVER_STATUS_CLOSED) + else if(cover_position == COVER_STATUS_CLOSED) { motion_status += ", gregorian cover closed"; } @@ -159,9 +157,9 @@ namespace MinorServo const std::atomic<SRTMinorServoMotionStatus>& m_motion_status; /** - * Reference to the SRTMinorServoAnswerMap object of the Boss. + * Reference to the SRTMinorServoGeneralStatus object of the Boss. */ - const SRTMinorServoAnswerMap& m_answer_map; + const SRTMinorServoGeneralStatus& m_boss_status; /** * Reference to the boolean telling if the system is scanning. @@ -174,170 +172,34 @@ namespace MinorServo const SRTMinorServoScan& m_current_scan; }; - /** - * This class is used to read the virtual positions of a minor servo system. It is specialized this way in order to sum the plain virtual positions and the offsets. - */ - class MSVirtualPositionsDevIO : public MSBaseDevIO<ACS::doubleSeq> - { - public: - /** - * Constructor. - * @param servo_name the name of the minor servo system the property belongs to. - * @param virtual_positions_fields the name of the virtual positions fields inside the SRTMinorServoAnswerMap object. - * @param virtual_offsets_fields the name of the virtual offsets fields inside the SRTMinorServoAnswerMap object. - * @param answer_map the SRTMinorServoAnswerMap object containing the status of the minor servo system. - */ - MSVirtualPositionsDevIO(const std::string& servo_name, std::vector<std::string> virtual_positions_fields, std::vector<std::string> virtual_offsets_fields, const SRTMinorServoAnswerMap& answer_map) : - m_virtual_positions_fields([&]() - { - std::transform(virtual_positions_fields.begin(), virtual_positions_fields.end(), virtual_positions_fields.begin(), [servo_name](const std::string& field) - { - return servo_name + "_" + field; - }); - return virtual_positions_fields; - }()), - m_virtual_offsets_fields([&]() - { - std::transform(virtual_offsets_fields.begin(), virtual_offsets_fields.end(), virtual_offsets_fields.begin(), [servo_name](const std::string& field) - { - return servo_name + "_" + field; - }); - return virtual_offsets_fields; - }()), - m_answer_map(answer_map) - { - } - - /** - * Returns the property value. - * @param timestamp epoch when the operation completes. - * @return a sequence of double containing the virtual positions taking the virtual offsets into account. - */ - ACS::doubleSeq read(ACS::Time& timestamp) - { - SRTMinorServoAnswerMap answer_map = m_answer_map; - - ACS::doubleSeq sequence; - - try - { - sequence.length(m_virtual_positions_fields.size()); - - for(size_t i = 0; i < m_virtual_positions_fields.size(); i++) - { - sequence[i] = answer_map.get<double>(m_virtual_positions_fields[i]) - answer_map.get<double>(m_virtual_offsets_fields[i]); - } - } - catch(std::out_of_range& ex) - { - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSVirtualPositionsDevIO::read()"); - impl.setPropertyName("virtual_positions"); - impl.setReason("Property is missing from the map!"); - throw impl; - } - catch(std::bad_variant_access& ex) - { - _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSVirtualPositionsDevIO::read()"); - impl.setPropertyName("virtual_positions"); - impl.setReason("Attempt to access the property with the wrong variant type!"); - throw impl; - } - catch(ACSErr::ACSbaseExImpl& ex) - { - _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSVirtualPositionsDevIO::read()"); - impl.setPropertyName("virtual_positions"); - impl.setReason("Property could not be read!"); - throw impl; - } - - timestamp = getTimeStamp(); //completion time - return sequence; - } - - private: - /** - * The virtual positions fields names. - */ - const std::vector<std::string> m_virtual_positions_fields; - - /** - * The virtual offsets fields names. - */ - const std::vector<std::string> m_virtual_offsets_fields; - - /** - * The SRTMinorServoAnswerMap containing the status of the minor servo system. - */ - const SRTMinorServoAnswerMap& m_answer_map; - }; - /** * This template class is used to retrieve values from a SRTMinorServoAnswerMap and provide them as properties. * The templates is specialized for the types listed right below and compilation will fail if the developer attempts to use it for an unknown MSDevIO type. */ - template <typename T, typename = std::enable_if<is_any_v<T, - Management::TBoolean, - CORBA::Double, - ACE_CString, - ACS::booleanSeq, - ACS::doubleSeq, - SRTMinorServoFocalConfiguration, - SRTMinorServoControlStatus, - SRTMinorServoGregorianCoverStatus, - SRTMinorServoCabinetStatus, - SRTMinorServoOperativeMode - >>> - class MSAnswerMapDevIO : public MSBaseDevIO<T> + template <typename X, typename Y, typename = std::enable_if< + is_any_v<Y, SRTMinorServoGeneralStatus, SRTMinorServoStatus> + && is_any_v<X, + Management::TBoolean, + CORBA::Double, + ACE_CString, + ACS::booleanSeq, + ACS::doubleSeq, + SRTMinorServoFocalConfiguration, + SRTMinorServoControlStatus, + SRTMinorServoGregorianCoverStatus, + SRTMinorServoCabinetStatus, + SRTMinorServoOperativeMode + > + >> + class MSAnswerMapDevIO : public MSBaseDevIO<X> { public: /** - * Single property-field, no servo-name constructor. - * @param property_name the name of the property, used when raising exceptions. - * @param property_field the field name of the property as it appears inside the SRTMinorServoAnswerMap. - * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. - */ - MSAnswerMapDevIO(const std::string& property_name, const std::string& property_field, const SRTMinorServoAnswerMap& answer_map) : - MSAnswerMapDevIO(property_name, std::vector<std::string>{ property_field }, answer_map) {} - - /** - * Multiple property-fields, no servo-name constructor. - * @param property_name the name of the property, used when raising exceptions. - * @param property_fields the field names of the property as they appear inside the SRTMinorServoAnswerMap. - * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. + * Constructor, accepting the SRTMinorServoAnswerMap derived object and a pointer to the method used to retrieve the DevIO value. + * @param map, the SRTMinorServoAnswerMap derived object. + * @param method, the method to call in order to retrieve the return value. */ - MSAnswerMapDevIO(const std::string& property_name, const std::vector<std::string>& property_fields, const SRTMinorServoAnswerMap& answer_map) : - m_property_name(property_name), - m_property_fields(property_fields), - m_answer_map(answer_map) {} - - /** - * Single property-field, with servo-name constructor. - * @param servo_name the name of the minor servo system the property belongs to. Used as prefix for the property_field argument. - * @param property_name the name of the property, used when raising exceptions. - * @param property_field the field name of the property as it appears inside the SRTMinorServoAnswerMap. - * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. - */ - MSAnswerMapDevIO(const std::string& servo_name, const std::string& property_name, const std::string& property_field, const SRTMinorServoAnswerMap& answer_map) : - MSAnswerMapDevIO(servo_name, property_name, std::vector<std::string>{ property_field }, answer_map) {} - - /** - * Multiple property-fields, with servo-name constructor. - * @param servo_name the name of the minor servo system the property belongs to. Used as prefix for the property_fields argument. - * @param property_name the name of the property, used when raising exceptions. - * @param property_fields the field names of the property as they appear inside the SRTMinorServoAnswerMap. - * @param answer_map the reference to the SRTMinorServoAnswerMap containing the readings from the PLC. - */ - MSAnswerMapDevIO(const std::string& servo_name, const std::string& property_name, std::vector<std::string> property_fields, const SRTMinorServoAnswerMap& answer_map) : - m_property_name(property_name), - m_property_fields([&]() - { - std::transform(property_fields.begin(), property_fields.end(), property_fields.begin(), [servo_name](const std::string& field) - { - return servo_name + "_" + field; - }); - return property_fields; - }()), - m_answer_map(answer_map) {} + MSAnswerMapDevIO(const std::string& property_name, const Y& map, X (Y::*method)() const) : m_property_name(property_name), m_map(map), m_method(method) {} /** * Used to read the property value. @@ -345,101 +207,13 @@ namespace MinorServo * @throw ComponentErrors::PropertyError. * @return the property value as read from the SRTMinorServoAnswerMap object reference. */ - T read(ACS::Time& timestamp) + X read(ACS::Time& timestamp) { timestamp = getTimeStamp(); - // Copy the answer map by value. This will ensure all the elements for any sequence belong to the same reading from PLC. - SRTMinorServoAnswerMap answer_map = m_answer_map; - try { - if constexpr(std::is_same_v<T, Management::TBoolean>) - { - return (answer_map.get<unsigned int>(m_property_fields[0]) == 1) ? Management::MNG_TRUE : Management::MNG_FALSE; - } - else if constexpr(std::is_same_v<T, CORBA::Double>) - { - unsigned int index = answer_map.index(m_property_fields[0]); - - switch(index) - { - case 0: - { - return (double)answer_map.get<long>(m_property_fields[0]); - } - case 1: - { - return answer_map.get<double>(m_property_fields[0]); - } - default: - { - throw std::bad_variant_access(); - } - } - } - else if constexpr(std::is_same_v<T, ACE_CString>) - { - unsigned int index = answer_map.index(m_property_fields[0]); - - switch(index) - { - case 0: - { - return std::to_string(answer_map.get<long>(m_property_fields[0])).c_str(); - } - case 1: - { - return std::to_string(answer_map.get<double>(m_property_fields[0])).c_str(); - } - default: - { - return answer_map.get<std::string>(m_property_fields[0]).c_str(); - } - } - } - else if constexpr(std::is_same_v<T, ACS::booleanSeq>) - { - ACS::booleanSeq value; - value.length(m_property_fields.size()); - - for(size_t i = 0; i < m_property_fields.size(); i++) - { - value[i] = answer_map.get<long>(m_property_fields[i]); - } - return value; - } - else if constexpr(std::is_same_v<T, ACS::doubleSeq>) - { - ACS::doubleSeq value; - value.length(m_property_fields.size()); - - for(size_t i = 0; i < m_property_fields.size(); i++) - { - value[i] = answer_map.get<double>(m_property_fields[i]); - } - return value; - } - else if constexpr(std::is_same_v<T, SRTMinorServoFocalConfiguration>) - { - return LDOConfigurationIDTable.right.at(answer_map.get<int>(m_property_fields[0])); - } - else if constexpr(std::is_same_v<T, SRTMinorServoControlStatus>) - { - return SRTMinorServoControlStatus(answer_map.get<unsigned int>(m_property_fields[0]) - 1); - } - else if constexpr(std::is_same_v<T, SRTMinorServoGregorianCoverStatus>) - { - return SRTMinorServoGregorianCoverStatus(answer_map.get<unsigned int>(m_property_fields[0])); - } - else if constexpr(std::is_same_v<T, SRTMinorServoCabinetStatus>) - { - return SRTMinorServoCabinetStatus(answer_map.get<unsigned int>(m_property_fields[0]) - 1); - } - else if constexpr(std::is_same_v<T, SRTMinorServoOperativeMode>) - { - return SRTMinorServoOperativeMode(answer_map.get<unsigned int>(m_property_fields[0]) / 10); - } + return (m_map.*m_method)(); } catch(std::out_of_range& ex) { @@ -466,19 +240,19 @@ namespace MinorServo private: /** - * The name of the property, used when raising exceptions. + * The name of the property. */ const std::string m_property_name; /** - * The field names of the property as they appear on the SRTMinorServoAnswerMap. + * The reference to the SRTMinorServoAnswerMap in which the readings from the PLC appear. This could be either a SRTMinorServoGeneralStatus or a SRTMinorServoStatus. */ - const std::vector<std::string> m_property_fields; + const Y& m_map; /** - * The reference to the SRTMinorServoAnswerMap in whichthe readings from the PLC appear. + * Pointer to the method of the SRTMinorServoAnswerMap to call in order to retrieve the DevIO return value. */ - const SRTMinorServoAnswerMap& m_answer_map; + X (Y::*m_method)() const; }; /** diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index 7471c29f8..470186058 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <IRA> #include <baciSmartPropertyPointer.h> #include <baciROboolean.h> @@ -313,9 +313,9 @@ private: Antenna::AntennaBoss_var m_antennaBoss; /** - * SRTMinorServoAnswerMap object containing the status read from the PLC. + * SRTMinorServoGeneralStatus object containing the status read from the PLC. */ - SRTMinorServoAnswerMap m_status; + SRTMinorServoGeneralStatus m_status; /** * Enumeration indicating the status of the motion of the minor servo system. diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index 9f1aebf6c..40eb0c828 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <IRA> #include <baciCharacteristicComponentImpl.h> #include <baciSmartPropertyPointer.h> @@ -20,6 +20,7 @@ #include "SRTMinorServoBossCore.h" #include "SRTMinorServoStatusThread.h" #include "MSDevIOs.h" +#include "SRTMinorServoCommon.h" using namespace MinorServo; @@ -498,11 +499,6 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; - /** - * DevIO of the current_configuration property. - */ - MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>* m_current_configuration_devio; - /** * Pointer to the current_configuration property. */ @@ -523,11 +519,6 @@ private: */ baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; - /** - * DevIO of the control property. - */ - MSAnswerMapDevIO<SRTMinorServoControlStatus>* m_control_devio; - /** * Pointer to the control property. */ @@ -538,21 +529,11 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_power_ptr; - /** - * DevIO of the emergency property. - */ - MSAnswerMapDevIO<Management::TBoolean>* m_emergency_devio; - /** * Pointer to the emergency property. */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_emergency_ptr; - /** - * DevIO of the gregorian_cover property. - */ - MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>* m_gregorian_cover_devio; - /** * Pointer to the gregorian_cover property. */ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h index cf1070637..2048dbdf7 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -6,13 +6,6 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SuppressWarnings.h" -#include <SRTMinorServoCommonS.h> -#include <map> -#include <vector> -#include <boost/bimap.hpp> -#include <boost/assign.hpp> - /** * programTrack constants. The first indicates the time between two consecutive points, the second indicates the time we send each point in advance. */ @@ -42,71 +35,4 @@ out = error.c_str(); \ } - -namespace MinorServo -{ - /** - * This dictionary contains information regarding the possibile focal configurations. - * The key indicates the configuration as known by DISCOS. - * The value is a pair, the first element of the pair is the DISCOS enumeration for the relative Leonardo configuration, - * the second element of the pair indicates whether the configuration has a ASACTIVE twin configuraiton. - */ - 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)}, - {"CCG", std::make_pair(CONFIGURATION_GREGORIAN1, true )}, - {"KKG", std::make_pair(CONFIGURATION_GREGORIAN2, true )}, - {"WWG", std::make_pair(CONFIGURATION_GREGORIAN3, true )}, - {"QQG", std::make_pair(CONFIGURATION_GREGORIAN4, true )}, - {"TRI", std::make_pair(CONFIGURATION_GREGORIAN5, true )}, - {"MISTRAL", std::make_pair(CONFIGURATION_GREGORIAN6, true )}, - {"CCB", std::make_pair(CONFIGURATION_BWG1, true )}, - {"XB", std::make_pair(CONFIGURATION_BWG3, true )}, - }; - - /** - * This dictionary contains the Leonardo focal configurations DISCOS enumerations, alongside their name inside the Leonardo minor servo system. - */ - using LDOConfigurationNameTableType = boost::bimap<SRTMinorServoFocalConfiguration, std::string>; - const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of<LDOConfigurationNameTableType::relation> - (CONFIGURATION_PRIMARY, "Primario") - (CONFIGURATION_GREGORIAN1, "Gregoriano 1") - (CONFIGURATION_GREGORIAN2, "Gregoriano 2") - (CONFIGURATION_GREGORIAN3, "Gregoriano 3") - (CONFIGURATION_GREGORIAN4, "Gregoriano 4") - (CONFIGURATION_GREGORIAN5, "Gregoriano 5") - (CONFIGURATION_GREGORIAN6, "Gregoriano 6") - (CONFIGURATION_GREGORIAN7, "Gregoriano 7") - (CONFIGURATION_GREGORIAN8, "Gregoriano 8") - (CONFIGURATION_BWG1, "BWG1") - (CONFIGURATION_BWG2, "BWG2") - (CONFIGURATION_BWG3, "BWG3") - (CONFIGURATION_BWG4, "BWG4"); - - /** - * This dictionary containes the Leonardo focal configurations DISCOS enumerations, alongside their ID counterpart as read from the Leonardo minor servo system proxy. - */ - using LDOConfigurationIDTableType = boost::bimap<SRTMinorServoFocalConfiguration, unsigned int>; - const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of<LDOConfigurationIDTableType::relation> - (CONFIGURATION_UNKNOWN, 0) - (CONFIGURATION_PRIMARY, 1) - (CONFIGURATION_GREGORIAN1, 11) - (CONFIGURATION_GREGORIAN2, 12) - (CONFIGURATION_GREGORIAN3, 13) - (CONFIGURATION_GREGORIAN4, 14) - (CONFIGURATION_GREGORIAN5, 15) - (CONFIGURATION_GREGORIAN6, 16) - (CONFIGURATION_GREGORIAN7, 17) - (CONFIGURATION_GREGORIAN8, 18) - (CONFIGURATION_BWG1, 21) - (CONFIGURATION_BWG2, 22) - (CONFIGURATION_BWG3, 23) - (CONFIGURATION_BWG4, 24); -} - #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h deleted file mode 100644 index 1dad210f9..000000000 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoContainers.h +++ /dev/null @@ -1,328 +0,0 @@ -#ifndef __SRTMINORSERVOCONTAINERS_H__ -#define __SRTMINORSERVOCONTAINERS_H__ - -/** - * SRTMinorServoContainers.h - * Giuseppe Carboni (giuseppe.carboni@inaf.it) - */ - -#include "SuppressWarnings.h" -#include <map> -#include <vector> -#include <shared_mutex> - - -namespace MinorServo -{ - /** - * Object used to store some info regarding a scan. - */ - struct SRTMinorServoScan - { - /** - * Name of the servo involved in the scan. - */ - std::string servo_name = ""; - - /** - * Name of the axis involved in the scan. - */ - std::string axis_name = ""; - - /** - * Index of the axis involved in the scan. - */ - size_t axis_index = 0; - - /** - * Range of the scan. - */ - double scan_range = 0; - - /** - * Starting time of the scan. - */ - ACS::Time start_time = 0; - - /** - * Closing time of the scan. - */ - ACS::Time close_time = 0; - - /** - * Duration of the scan. - */ - ACS::TimeInterval scan_duration = 0; - - /** - * Central position of the scan axis. - */ - double central_position = 0; - - /** - * Starting elevation for the scan. - */ - double starting_elevation = 0; - }; - - using SRTMinorServoLookupTable = std::map<std::string, std::vector<double>>; - - /** - * This class implements a queue of time tagged positions. it extends a simple std::map with some specific methods. - */ - class SRTMinorServoPositionsQueue : private std::map<ACS::Time, const std::vector<double>> - { - public: - /** - * Default constructor. Used only for lazy initialization. - */ - SRTMinorServoPositionsQueue() : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(0), m_vector_size(0), m_mutex() {} - - /** - * Constructor with queue size as parameter. - * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. - */ - SRTMinorServoPositionsQueue(size_t queue_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(0), m_mutex() - { - std::unique_lock<std::shared_mutex> lock(m_mutex); - queueLazyInit(queue_size); - } - - /** - * Constructor with queue size and vector size as parameters. - * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. - * @param vector_size the length of the vectors that this object will store. Once set it cannot be changed. This assures we are always dealing with the same number of virtual axes. - */ - SRTMinorServoPositionsQueue(size_t queue_size, size_t vector_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(vector_size), m_mutex() - { - std::unique_lock<std::shared_mutex> lock(m_mutex); - queueLazyInit(queue_size); - vectorLazyInit(vector_size); - } - - /** - * Custom assignment operator. It locks both the current object and the passed one with a mutex in order for the assignment operation to be thread safe. - * @param other the other SRTMinorServoPositionsQueue we are assigning its value to the current object. - * @return the newly populated SRTMinorServoPositionsQueue object. - */ - SRTMinorServoPositionsQueue& operator=(const SRTMinorServoPositionsQueue& other) - { - if(this != &other) - { - std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); - std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); - std::lock(lockThis, lockOther); - m_queue_size = other.m_queue_size; - m_vector_size = other.m_vector_size; - std::map<ACS::Time, const std::vector<double>>::operator=(other); - } - - return *this; - } - - /** - * Put method, with initializer list argument. - * @param key the time the given coordinates are related to. - * @param values the given set of coordinates. - */ - void put(ACS::Time key, const std::initializer_list<double>& values) - { - put(key, std::vector<double>(values)); - } - - /** - * Put method, with ACS::doubleSeq argument. - * @param key the time the given coordinates are related to. - * @param values the given set of coordinates. - */ - void put(ACS::Time key, const ACS::doubleSeq& values) - { - put(key, std::vector<double>(values.get_buffer(), values.get_buffer() + values.length())); - } - - /** - * Put method, with std::vector<double> argument. - * @param key the time the given coordinates are related to. - * @param values the given set of coordinates. - */ - void put(ACS::Time key, const std::vector<double>& values) - { - std::unique_lock<std::shared_mutex> lock(m_mutex); - - vectorLazyInit(values.size()); - queueLazyInit(m_queue_size); - if(std::map<ACS::Time, const std::vector<double>>::size() == m_queue_size) - { - // Remove the oldest one - this->erase(this->begin()); - } - this->emplace(std::make_pair(key, values)); - } - - /** - * Get method. It retrieves a set of coordinates from a given ACS::Time, giving back the time as well. - * @param key the time the user wants to retrieve the related coordinates. - * @param exact a boolean indicating whether the user wants to interpolate (false) or not (true). - * @throw std::logic_error when the queue is empty. - * @throw std::out_of_range when the exact point was not found in the queue. - * @return a std::pair containing the ACS::Time as first element and the set of coordinates as second element. - */ - std::pair<ACS::Time, const std::vector<double>> get(ACS::Time key, bool exact = false) - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - - if(this->empty()) - { - throw std::logic_error("The queue is empty!"); - } - - if(const SRTMinorServoPositionsQueue::iterator point = this->find(key); point != this->end()) - { - return *point; - } - else if(exact) - { - // Exact point not found, we throw an exception - throw std::out_of_range("Exact point not found!"); - } - else - { - // Key not found, should check outside the boundaries or interpolate - if(key <= this->begin()->first) - { - // Aksed for a timestamp older than the earliest point in the queue - return *this->cbegin(); - } - else if(key >= this->rbegin()->first) - { - // Asked for a timestamp newer than the latest point in the queue - return *this->crbegin(); - } - else - { - std::vector<double> positions(m_vector_size, 0.0); - SRTMinorServoPositionsQueue::iterator p0, p1; - p1 = this->lower_bound(key); - p0 = p1; - p0--; - - // Calculate the linear fit for each position - double fraction = (key - p0->first) / (p1->first - p0->first); - - for(size_t i = 0; i < m_vector_size; i++) - { - positions[i] = p0->second[i] + fraction * (p1->second[i] - p0->second[i]); - } - - return std::make_pair(key, (const std::vector<double>)positions); - } - } - } - - /** - * Size method thread safe override. - * @return the number of elements in the queue. - */ - size_t size() const - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - return std::map<ACS::Time, const std::vector<double>>::size(); - } - - /** - * Clear method, thread safe. It empties the queue. - */ - void clear() - { - std::unique_lock<std::shared_mutex> lock(m_mutex); - std::map<ACS::Time, const std::vector<double>>::clear(); - } - - /** - * This method returns the number of points having a higher tag time than the one passed as argument. - * @param t the time threshold. This method counts and returns the number of points having a higher time than this value. - * @throw std::logic_error when the queue is empty. - * @return the number of points having a higher time than the given one. - */ - size_t getRemainingPoints(ACS::Time t) - { - std::shared_lock<std::shared_mutex> lock(m_mutex); - if(this->empty()) - { - throw std::logic_error("The queue is empty!"); - } - return std::distance(this->lower_bound(t), this->end()); - } - - private: - /** - * This method gets called by the constructors for the lazy intialization of the queue size value. - * @param queue_size the desired maximum queue size. - * @throw std::length_error when the desired queue size is equal to 0 or when it is greater than the maximum size that can be currently allocated. - */ - void queueLazyInit(size_t queue_size) - { - if(m_queue_size == 0) - { - if(queue_size == 0) - { - // The maximum queue size was not set yet - throw std::length_error("Queue length cannot be 0."); - } - else if(queue_size > this->max_size()) - { - // The requested size is greater than the maximum possible queue size - throw std::length_error("Queue length cannot exceed " + std::to_string(this->max_size()) + "."); - } - else - { - m_queue_size = queue_size; - } - } - } - - /** - * This method gets called by the constructors for the lazy initialization of the vector size value. - * @param vector_size the desired length of the vector containing the set of points. - * @throw std::length_error when the desired vector size is equal to 0 or when it is longer than 6. We don't have more than 6 axes, so we hard cap this value to 6. - * It also throws this when the user tries to insert a vector with different lenght then the already defined one. This ensures all stored vecors are of equal length. - */ - void vectorLazyInit(size_t vector_size) - { - if(vector_size == 0) - { - throw std::length_error("Vector length cannot be 0."); - } - else if(vector_size > 6) - { - // Hard cap to 6, we don't need more - throw std::length_error("Vector length cannot be longer than 6."); - } - else if(m_vector_size == 0) - { - m_vector_size = vector_size; - } - else if(m_vector_size != vector_size) - { - throw std::length_error("New vector length does not match the initial one."); - } - } - - /** - * The maximum size of the queue. - */ - size_t m_queue_size; - - /** - * The desired length of the vectors stored by this object. - */ - size_t m_vector_size; - - /** - * The shared mutex used for access synchronization. - */ - mutable std::shared_mutex m_mutex; - }; -} - -#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index ac49cf99e..f348f0be9 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <regex> #include <IRA> #include <baciCharacteristicComponentImpl.h> @@ -24,6 +24,7 @@ #include "SRTMinorServoSocket.h" #include "MSDevIOs.h" #include "SRTMinorServoContainers.h" +#include "SRTMinorServoCommon.h" using namespace MinorServo; @@ -322,11 +323,6 @@ protected: */ const std::string m_servo_name; - /** - * Dictionary containing the last status retrieved form the servo system. - */ - SRTMinorServoAnswerMap m_status; - /** * Number of virtual axes of the servo system. */ @@ -347,6 +343,11 @@ private: */ const std::vector<std::string> m_virtual_axes_units; protected: + /** + * Dictionary containing the last status retrieved form the servo system. + */ + SRTMinorServoStatus m_status; + /** * Commanded user offsets for each axis of the servo system. */ @@ -412,21 +413,11 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_enabled_ptr; - /** - * DevIO of the drive_cabinet_status property. - */ - MSAnswerMapDevIO<SRTMinorServoCabinetStatus>* m_drive_cabinet_status_devio; - /** * Pointer to the drive_cabinet_status property. */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>> m_drive_cabinet_status_ptr; - /** - * DevIO of the block property. - */ - MSAnswerMapDevIO<Management::TBoolean>* m_block_devio; - /** * Pointer to the block property. */ @@ -457,23 +448,11 @@ private: */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_plain_virtual_positions_ptr; - /** - * DevIO of the virtual_positions property. - */ - MSVirtualPositionsDevIO* m_virtual_positions_devio; - /** * Pointer to the virtual_positions property. */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; -protected: - /** - * DevIO of the virtual_offsets property. - */ - MSAnswerMapDevIO<ACS::doubleSeq>* m_virtual_offsets_devio; - -private: /** * Pointer to the virtual_offsets property. */ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h index ea428d36b..c2af90348 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h index 0a00a84b0..e5c26e67d 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h index 3413fc565..747c458a4 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h index 7a14305e3..fbe34f5ad 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoSocket.h" diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h index 9684e0153..32ae15c9e 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h @@ -6,7 +6,7 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ -#include "SRTMinorServoCommon.h" +#include "SuppressWarnings.h" #include <acsThread.h> #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index 5df1f27a6..df2e50b72 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -6,11 +6,17 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, CharacteristicComponentImpl(component_name, container_services), m_component_name(std::string(component_name.c_str())), m_servo_name(std::string(strchr(component_name.c_str(), '/') + 1)), - m_status(), m_virtual_axes(getCDBValue<size_t>(container_services, "virtual_axes")), m_physical_axes(getCDBValue<size_t>(container_services, "physical_axes")), m_virtual_axes_names(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_positions")), m_virtual_axes_units(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_axes_units")), + m_status( + m_servo_name, + SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_axes_enabled"), + SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_positions"), + m_virtual_axes_names, + SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets") + ), m_user_offsets(m_virtual_axes, 0.0), m_system_offsets(m_virtual_axes, 0.0), m_positions_queue(5 * 60 * int(1 / getCDBValue<double>(container_services, "status_thread_period", "/MINORSERVO/Boss")), m_virtual_axes), @@ -24,18 +30,14 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_in_use(Management::MNG_FALSE), m_current_setup(""), m_enabled_ptr(this), - m_drive_cabinet_status_devio(nullptr), m_drive_cabinet_status_ptr(this), - m_block_devio(nullptr), m_block_ptr(this), m_operative_mode_ptr(this), m_physical_axes_enabled_ptr(this), m_physical_positions_ptr(this), m_virtual_axes_ptr(this), m_plain_virtual_positions_ptr(this), - m_virtual_positions_devio(nullptr), m_virtual_positions_ptr(this), - m_virtual_offsets_devio(nullptr), m_virtual_offsets_ptr(this), m_virtual_user_offsets_ptr(this), m_virtual_system_offsets_ptr(this), @@ -60,26 +62,25 @@ void SRTBaseMinorServoImpl::initialize() try { m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":enabled").c_str(), getComponent(), - new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "enabled", "ENABLED", m_status), true); - m_drive_cabinet_status_devio = new MSAnswerMapDevIO<SRTMinorServoCabinetStatus>(m_servo_name, "drive_cabinet_status", "STATUS", m_status); - m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), m_drive_cabinet_status_devio, true); - m_block_devio = new MSAnswerMapDevIO<Management::TBoolean>(m_servo_name, "block", "BLOCK", m_status); - m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), m_block_devio, true); + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoStatus>("enabled", m_status, &SRTMinorServoStatus::isEnabled), true); + m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoCabinetStatus, SRTMinorServoStatus>("drive_cabinet_status", m_status, &SRTMinorServoStatus::getDriveCabinetStatus), true); + m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoStatus>("block", m_status, &SRTMinorServoStatus::isBlocked), true); m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((m_component_name + ":operative_mode").c_str(), getComponent(), - new MSAnswerMapDevIO<SRTMinorServoOperativeMode>(m_servo_name, "operative_mode", "OPERATIVE_MODE", m_status), true); + new MSAnswerMapDevIO<SRTMinorServoOperativeMode, SRTMinorServoStatus>("operative_mode", m_status, &SRTMinorServoStatus::getOperativeMode), true); m_physical_axes_enabled_ptr = new baci::RObooleanSeq((m_component_name + ":physical_axes_enabled").c_str(), getComponent(), - new MSAnswerMapDevIO<ACS::booleanSeq>(m_servo_name, "physical_axes_enabled", SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_axes_enabled"), m_status), true); + new MSAnswerMapDevIO<ACS::booleanSeq, SRTMinorServoStatus>("physical_axes_enabled", m_status, &SRTMinorServoStatus::getPhysicalAxesEnabled), true); m_physical_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":physical_positions").c_str(), getComponent(), - new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "physical_positions", SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_positions"), m_status), true); + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("physical_positions", m_status, &SRTMinorServoStatus::getPhysicalPositions), true); m_virtual_axes_ptr = new baci::ROlong((m_component_name + ":virtual_axes").c_str(), getComponent(), new MSGenericDevIO<CORBA::Long, const size_t>(m_virtual_axes), true); m_plain_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":plain_virtual_positions").c_str(), getComponent(), - new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_positions", m_virtual_axes_names, m_status), true); - std::vector<std::string> virtual_offsets = SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets"); - m_virtual_positions_devio = new MSVirtualPositionsDevIO(m_servo_name, m_virtual_axes_names, virtual_offsets, m_status); - m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), m_virtual_positions_devio, true); - m_virtual_offsets_devio = new MSAnswerMapDevIO<ACS::doubleSeq>(m_servo_name, "virtual_offsets", virtual_offsets, m_status); - m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), m_virtual_offsets_devio, true); + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("plain_virtual_positions", m_status, &SRTMinorServoStatus::getPlainVirtualPositions), true); + m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("virtual_positions", m_status, &SRTMinorServoStatus::getVirtualPositions), true); + m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("virtual_offsets", m_status, &SRTMinorServoStatus::getVirtualOffsets), true); m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_user_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_user_offsets), true); m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_system_offsets").c_str(), getComponent(), @@ -133,8 +134,7 @@ bool SRTBaseMinorServoImpl::status() { m_socket.sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); - ACS::Time comp; - ACS::doubleSeq current_point = m_virtual_positions_devio->read(comp); + ACS::doubleSeq current_point = m_status.getVirtualPositions(); // Calculate the current speed of the axes try @@ -205,8 +205,7 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) } std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - ACS::Time comp; - ACS::doubleSeq offsets = m_virtual_offsets_devio->read(comp); + ACS::doubleSeq offsets = m_status.getVirtualOffsets(); for(size_t i = 0; i < m_virtual_axes; i++) { @@ -501,8 +500,7 @@ void SRTBaseMinorServoImpl::reloadOffsets() std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); // Read the Leonardo offsets - ACS::Time comp; - ACS::doubleSeq sequence = m_virtual_offsets_devio->read(comp); + ACS::doubleSeq sequence = m_status.getVirtualOffsets(); std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); // Check if the offsets correspond or not @@ -672,8 +670,7 @@ void SRTBaseMinorServoImpl::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - ACS::Time comp; - if(m_block_devio->read(comp) == Management::MNG_TRUE || m_drive_cabinet_status_devio->read(comp) == DRIVE_CABINET_ERROR) + if(m_status.isBlocked() == Management::MNG_TRUE || m_status.getDriveCabinetStatus() == DRIVE_CABINET_ERROR) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); ex.setReason("Servo system blocked or drive cabinet error."); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index f05589f3f..04e5f1b78 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -101,15 +101,12 @@ bool SRTMinorServoBossCore::status() return false; } - // Call servo status - //ACS::Time comp; - SRTMinorServoMotionStatus motion_status = m_motion_status.load(); /*if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) { // We only get here if the system is configured, therefore we check the correct position of the gregorian cover - SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_component.m_current_configuration_devio->read(comp) == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; - if(m_component.m_gregorian_cover_devio->read(comp) != commanded_gregorian_cover_position) + SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_status.getFocalConfiguration() == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + if(m_status.getGregorianCoverPosition() != commanded_gregorian_cover_position) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Gregorian cover in wrong position.")); setFailure(); @@ -1109,7 +1106,6 @@ void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoSca if(scan_info.is_empty_scan) { start_time = getTimeStamp(); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startScan()", (LM_NOTICE, "Empty scan, nothing to do.")); return; } @@ -1132,7 +1128,6 @@ void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoSca m_current_scan = scan; start_time = scan.start_time; m_scan_active.store(Management::MNG_TRUE); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startScan()", (LM_NOTICE, "Scan started.")); startThread(m_scan_thread); } @@ -1211,8 +1206,7 @@ void SRTMinorServoBossCore::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - ACS::Time comp; - if(m_component.m_control_devio->read(comp) != CONTROL_DISCOS) + if(m_status.getControl() != CONTROL_DISCOS) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system is not controlled by DISCOS."); @@ -1221,7 +1215,7 @@ void SRTMinorServoBossCore::checkLineStatus() throw ex.getMinorServoErrorsEx(); } - if(m_component.m_emergency_devio->read(comp) == Management::MNG_TRUE) + if(m_status.emergencyPressed() == Management::MNG_TRUE) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system in emergency status."); @@ -1269,8 +1263,6 @@ void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sle setFailure(); throw ex.getComponentErrorsEx(); } - - ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::startThread()", (LM_NOTICE, (std::string(T::c_thread_name) + " STARTED").c_str())); } template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 91087d07f..8a8a55374 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -22,17 +22,13 @@ SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, m_scan_active_ptr(this), m_scanning_ptr(this), m_tracking_ptr(this), - m_current_configuration_devio(nullptr), m_current_configuration_ptr(this), m_simulation_enabled_ptr(this), m_plc_time_ptr(this), m_plc_version_ptr(this), - m_control_devio(nullptr), m_control_ptr(this), m_power_ptr(this), - m_emergency_devio(nullptr), m_emergency_ptr(this), - m_gregorian_cover_devio(nullptr), m_gregorian_cover_ptr(this), m_last_executed_command_ptr(this) { @@ -77,24 +73,22 @@ void SRTMinorServoBossImpl::initialize() new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scanning), true); m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_tracking), true); - m_current_configuration_devio = new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration>("current_configuration", "CURRENT_CONFIG", m_core.m_status); - m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), m_current_configuration_devio, true); + m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration, SRTMinorServoGeneralStatus>("current_configuration", m_core.m_status, &SRTMinorServoGeneralStatus::getFocalConfiguration), true); m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":simulation_enabled").c_str(), getComponent(), - new MSAnswerMapDevIO<Management::TBoolean>("simulation_enabled", "SIMULATION_ENABLED", m_core.m_status), true); + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("simulation_enabled", m_core.m_status, &SRTMinorServoGeneralStatus::isSimulationEnabled), true); m_plc_time_ptr = new baci::ROdouble((m_component_name + ":plc_time").c_str(), getComponent(), - new MSAnswerMapDevIO<CORBA::Double>("plc_time", "PLC_TIME", m_core.m_status), true); + new MSAnswerMapDevIO<CORBA::Double, SRTMinorServoGeneralStatus>("plc_time", m_core.m_status, &SRTMinorServoGeneralStatus::getPLCTime), true); m_plc_version_ptr = new baci::ROstring((m_component_name + ":plc_version").c_str(), getComponent(), - new MSAnswerMapDevIO<ACE_CString>("plc_version", "PLC_VERSION", m_core.m_status), true); - m_control_devio = new MSAnswerMapDevIO<SRTMinorServoControlStatus>("control", "CONTROL", m_core.m_status); - m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), m_control_devio, true); + new MSAnswerMapDevIO<ACE_CString, SRTMinorServoGeneralStatus>("plc_version", m_core.m_status, &SRTMinorServoGeneralStatus::getPLCVersion), true); + m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoControlStatus, SRTMinorServoGeneralStatus>("control", m_core.m_status, &SRTMinorServoGeneralStatus::getControl), true); m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":power").c_str(), getComponent(), - new MSAnswerMapDevIO<Management::TBoolean>("power", "POWER", m_core.m_status), true); - m_emergency_devio = new MSAnswerMapDevIO<Management::TBoolean>("emergency", "EMERGENCY", m_core.m_status); - m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), m_emergency_devio, true); - m_gregorian_cover_devio = new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus>("gregorian_cover", "GREGORIAN_CAP", m_core.m_status); - m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), m_gregorian_cover_devio, true); + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("power", m_core.m_status, &SRTMinorServoGeneralStatus::hasPower), true); + m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("emergency", m_core.m_status, &SRTMinorServoGeneralStatus::emergencyPressed), true); + m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus, SRTMinorServoGeneralStatus>("gregorian_cover", m_core.m_status, &SRTMinorServoGeneralStatus::getGregorianCoverPosition), true); m_last_executed_command_ptr = new baci::ROdouble((m_component_name + ":last_executed_command").c_str(), getComponent(), - new MSAnswerMapDevIO<CORBA::Double>("last_executed_command", "LAST_EXECUTED_COMMAND", m_core.m_status), true); + new MSAnswerMapDevIO<CORBA::Double, SRTMinorServoGeneralStatus>("last_executed_command", m_core.m_status, &SRTMinorServoGeneralStatus::getLastExecutedCommand), true); } catch(std::bad_alloc& ba) { diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index efeabcb31..8afaab79f 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -61,8 +61,7 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - // ACS::Time comp; - //bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == COVER_STATUS_CLOSED ? true : false; + //bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED ? true : false; // 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 diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp index a82aab228..a70f66795 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -51,13 +51,17 @@ void SRTMinorServoScanThread::onStart() auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); m_starting_coordinates = *servo->getAxesPositions(0); - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_NOTICE, "SCAN THREAD STARTED")); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_NOTICE, + ("SCAN THREAD STARTED, SCANNING " + std::to_string((int)m_core.m_current_scan.scan_range) + "MM IN " + std::to_string((int)(m_core.m_current_scan.scan_duration / 10000000)) + " SECONDS ALONG " + m_core.m_current_scan.servo_name + " " + m_core.m_current_scan.axis_name + " AXIS").c_str() + )); } void SRTMinorServoScanThread::onStop() { AUTO_TRACE("SRTMinorServoScanThread::onStop()"); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_NOTICE, "SCAN THREAD STOPPED")); + m_core.m_scanning.store(Management::MNG_FALSE); if(m_error) // We didn't reach the end of the scan because of some error @@ -100,8 +104,6 @@ void SRTMinorServoScanThread::onStop() // Finally unlock the scan capabilities m_core.m_scan_active.store(Management::MNG_FALSE); - - ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_NOTICE, "SCAN THREAD STOPPED")); } void SRTMinorServoScanThread::runLoop() diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index a36e5d0fb..1daa85968 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -35,6 +35,19 @@ void SRTMinorServoSetupThread::onStop() AUTO_TRACE("SRTMinorServoSetupThread::onStop()"); ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStop()", (LM_NOTICE, "SETUP THREAD STOPPED")); + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + try + { + m_core.startThread(m_core.m_tracking_thread); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + } + } } void SRTMinorServoSetupThread::runLoop() @@ -131,8 +144,7 @@ void SRTMinorServoSetupThread::runLoop() } case 3: // Wait for the system to show the commanded configuration { - ACS::Time comp; - if(m_core.m_component.m_current_configuration_devio->read(comp) == m_core.m_commanded_configuration.load()) + if(m_core.m_status.getFocalConfiguration() == m_core.m_commanded_configuration.load()) { m_status = 4; } @@ -141,9 +153,8 @@ void SRTMinorServoSetupThread::runLoop() } case 4: // Wait for the whole system to reach the desired configuration { - ACSErr::Completion_var comp; // First we check the status of the gregorian cover - bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == m_gregorian_cover_position ? true : false; + bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; // Then we cycle through all the servos and make sure their operative mode is SETUP if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool @@ -207,9 +218,8 @@ void SRTMinorServoSetupThread::runLoop() } case 6: // Wait for the whole system to reach the PRESET configuration { - //ACSErr::Completion_var comp; // First we check the status of the gregorian cover - //bool completed = m_core.m_component.m_gregorian_cover_devio->read(comp) == m_gregorian_cover_position ? true : false; + //bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; if(/*completed && */std::all_of(m_core.m_current_servos.begin(), m_core.m_current_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { @@ -232,17 +242,6 @@ void SRTMinorServoSetupThread::runLoop() if(m_core.m_elevation_tracking_enabled.load() == Management::MNG_TRUE) { m_core.m_motion_status.store(MOTION_STATUS_TRACKING); - try - { - m_core.startThread(m_core.m_tracking_thread); - } - catch(ComponentErrors::ComponentErrorsEx& ex) - { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); - this->setStopped(); - return; - } } else { diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 47bac8dc4..ad19c5b98 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -29,13 +29,15 @@ void SRTMinorServoTrackingThread::onStart() void SRTMinorServoTrackingThread::onStop() { AUTO_TRACE("SRTMinorServoTrackingThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_NOTICE, "TRACKING THREAD STOPPED")); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + if(m_error) { m_core.setFailure(); } - - ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_NOTICE, "TRACKING THREAD STOPPED")); } void SRTMinorServoTrackingThread::runLoop() diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index f294bc939..959afb9de 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -120,8 +120,7 @@ void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORB } std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); - ACS::Time comp; - ACS::doubleSeq offsets = m_virtual_offsets_devio->read(comp); + ACS::doubleSeq offsets = m_status.getVirtualOffsets(); for(size_t i = 0; i < m_virtual_axes; i++) { -- GitLab From 2eb7d19a0faf6245933803c547bbae00c89ab48b Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sun, 3 Mar 2024 01:53:59 +0000 Subject: [PATCH 084/150] Updated SRTMinorServoAnswerMap socket handling --- .../include/SRTMinorServoContainers.h | 21 +++++++++++++++++-- .../src/SRTMinorServoSocket.cpp | 2 +- .../tests/SRTMinorServoCommandLibraryTest.cpp | 8 ++++++- .../src/SRTMinorServoBossCore.cpp | 4 ++-- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index 9a7b829df..207303ac0 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -425,7 +425,7 @@ namespace MinorServo SRTMinorServoAnswerMap(const SRTMinorServoAnswerMap& other) : m_mutex() { std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); - std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); std::lock(lockThis, lockOther); static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); } @@ -439,7 +439,7 @@ namespace MinorServo if(this != &other) { std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); - std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); std::lock(lockThis, lockOther); static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); } @@ -447,6 +447,23 @@ namespace MinorServo return *this; } + /** + * Update operator. It merges the current object with the elements of another object + * @param other the SRTMinorServoAnswerMap which values have to be copied inside the current object + */ + SRTMinorServoAnswerMap& operator+=(const SRTMinorServoAnswerMap& other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + for(const auto& entry : other) + { + this->operator[](entry.first) = entry.second; + } + + return *this; + } + /** * Equality operator, only check the std::map and avoid comparing the mutexes, which will obviously be different * @param other the SRTMinorServoAnswerMap object to compare the current object with diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index d0e3405ef..3c4cf9dca 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -179,7 +179,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); if(map) { - map->get() = map_answer; + map->get() += map_answer; } return map_answer; diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp index 1447613f7..b0fb317e2 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp @@ -61,8 +61,14 @@ TEST(SRTMinorServoCommandLibraryTest, parseAnswer) args.put("OUTPUT", "GOOD"); args.put("TIMESTAMP", 1665743366.654321); EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); - EXPECT_EQ(args.getTimestamp(), 138850361666543210); + EXPECT_TRUE(args.checkOutput()); + SRTMinorServoAnswerMap other; + other.put("OTHER", 123456); + args += other; + EXPECT_EQ(args.get<int>("OTHER"), 123456); + EXPECT_EQ(args.getTimestamp(), 138850361666543210); + EXPECT_TRUE(args.checkOutput()); // Complete correct answer answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 04e5f1b78..1b1e57785 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -30,8 +30,8 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_socket_connected(m_socket.isConnected() ? Management::MNG_TRUE : Management::MNG_FALSE), m_servos{ //{ "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, - { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") } - //{ "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") }, + { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") } //{ "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } }, m_tracking_servos{ -- GitLab From 7697e1743effb75daca0cfce69b3358590211b40 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 4 Mar 2024 13:50:00 +0000 Subject: [PATCH 085/150] Added some log for the SRTMinorServoAnswerMap --- .../include/SRTMinorServoContainers.h | 35 ++++++++++++++----- .../src/SRTMinorServoCommandLibrary.cpp | 2 ++ .../src/SRTMinorServoSocket.cpp | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index 207303ac0..d0e84bf1c 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -492,17 +492,26 @@ namespace MinorServo std::shared_lock<std::shared_mutex> lock(m_mutex); - if constexpr(std::is_integral_v<T>) - { - return (T)std::get<long>(this->at(key)); - } - else if constexpr(std::is_floating_point_v<T>) + try { - return (T)std::get<double>(this->at(key)); + if constexpr(std::is_integral_v<T>) + { + return (T)std::get<long>(this->at(key)); + } + else if constexpr(std::is_floating_point_v<T>) + { + return (T)std::get<double>(this->at(key)); + } + else if constexpr(is_string_v<T>) + { + return (T)std::get<std::string>(this->at(key)).c_str(); + } } - else if constexpr(is_string_v<T>) + catch(std::out_of_range& ex) { - return (T)std::get<std::string>(this->at(key)).c_str(); + std::cout << "PLAIN ANSWER:" << std::endl; + std::cout << this->getPlainAnswer() << std::endl; + throw ex; } } @@ -591,6 +600,16 @@ namespace MinorServo return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); } + /** + * This method returns the plain answer received from the socket. Useful for log purposes. + * @return a std::string containing the plain answer received from the socket. + */ + const std::string getPlainAnswer() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->get<std::string>("PLAIN_ANSWER"); + } + protected: /** * Shared mutex to control read and write accesses. Multiple reading access are permitted and will only block writing access. Writing access will block all accesses diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index ddafbe859..6d23c3291 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -172,5 +172,7 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(const std::strin args.clear(); } + args.put("PLAIN_ANSWER", original_answer); + return args; } diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index 3c4cf9dca..d0e3405ef 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -179,7 +179,7 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); if(map) { - map->get() += map_answer; + map->get() = map_answer; } return map_answer; -- GitLab From 17f4a8a05f499d124f6b09efcfc5f0084d2a217f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 15:44:48 +0100 Subject: [PATCH 086/150] Fix #797, reduced ExternalClients excp. log output (#845) --- .../include/ExternalClientsSocketServer.h | 8 +++- .../src/ExternalClientsSocketServer.cpp | 42 ++++++++++++------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h b/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h index 19db9bf95..162ba37e6 100644 --- a/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h +++ b/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h @@ -20,6 +20,7 @@ #include <AntennaBossC.h> #include <ReceiversBossC.h> #include <MountC.h> +#include <LogDike.h> #define BUFFERSIZE 1000 #define GAVINO "MANAGEMENT/Gavino" @@ -96,7 +97,12 @@ public: void byebye() {m_byebye=true;}; private: - ContainerServices* m_services; + /** + * Log filtering object + */ + IRA::CLogDike m_logDike; + + ContainerServices* m_services; /** It contains error information */ CError m_Error; diff --git a/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp b/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp index 2fe3df0f4..a34bfebb2 100644 --- a/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp +++ b/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp @@ -17,8 +17,7 @@ using namespace ComponentErrors; using namespace ManagementErrors; CExternalClientsSocketServer::CExternalClientsSocketServer (ContainerServices * service):CSocket (), -m_services -(service) +m_services (service), m_logDike(_IRA_LOGDIKE_GETLOGGER) { AUTO_TRACE ("CExternalClientsSocketServer::CExternalClientsSocketServer()"); setExternalClientSocketStatus (ExternalClientSocketStatus_NOTCNTD); @@ -308,7 +307,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); status_val = "NA"; } out.Concat (status_val); @@ -322,7 +322,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); target = "NA"; } out.Concat (target); @@ -350,7 +351,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); azStr = "NA"; elStr = "NA"; raStr = "NA"; @@ -385,7 +387,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); azErr = 0.0; } out.Concat (azErr); @@ -399,7 +402,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); elErr = 0.0; } out.Concat (elErr); @@ -413,7 +417,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); pointingAzCorr = 0.0; } out.Concat (pointingAzCorr); @@ -428,7 +433,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); pointingElCorr = 0.0; } out.Concat (pointingElCorr); @@ -442,7 +448,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); refractionCorr = 0.0; } out.Concat (refractionCorr); @@ -456,7 +463,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); azOff = 0.0; elOff = 0.0; raOff = 0.0; @@ -485,7 +493,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); receiver = "NA"; } out.Concat (receiver); @@ -500,7 +509,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); lo[0] = 0.0; } out.Concat (lo[0]); @@ -522,7 +532,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); trackingStr = "NA"; } out.Concat (trackingStr); @@ -549,7 +560,8 @@ CExternalClientsSocketServer::cmdToScheduler () { _EXCPT (ComponentErrors::UnexpectedExImpl, impl, "CExternalClientsSocketServer::cmdToScheduler()"); - impl.log (LM_ERROR); + _IRA_LOGDIKE_EXCEPTION(m_logDike,impl,LM_ERROR); + //impl.log (LM_ERROR); ret_val = "Unexpected Error"; out = IRA::CString (ret_val); } -- GitLab From d5339f7279ed23d86441b69f40bfce5999565b5b Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 16:31:39 +0100 Subject: [PATCH 087/150] Fix #844, addresses of external clients are now logged (#846) Their ports are logged as well --- .../ExternalClients/include/ExternalClientsSocketServer.h | 4 ++++ .../ExternalClients/src/ExternalClientsSocketServer.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h b/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h index 162ba37e6..f41cdb496 100644 --- a/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h +++ b/Common/Servers/ExternalClients/include/ExternalClientsSocketServer.h @@ -125,6 +125,10 @@ private: /** This is the reference to the mount component */ Antenna::Mount_var m_mount; + /** Address and port of the connected client **/ + CString m_peerAddress; + WORD m_peerPort; + int receiveBuffer(BYTE *Msg,WORD Len); void printBuffer(BYTE *Buff,WORD Len); OperationResult sendBuffer(BYTE *Msg,WORD Len); diff --git a/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp b/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp index a34bfebb2..f28a30468 100644 --- a/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp +++ b/Common/Servers/ExternalClients/src/ExternalClientsSocketServer.cpp @@ -17,7 +17,7 @@ using namespace ComponentErrors; using namespace ManagementErrors; CExternalClientsSocketServer::CExternalClientsSocketServer (ContainerServices * service):CSocket (), -m_services (service), m_logDike(_IRA_LOGDIKE_GETLOGGER) +m_services (service), m_logDike(_IRA_LOGDIKE_GETLOGGER), m_peerAddress(""), m_peerPort(0) { AUTO_TRACE ("CExternalClientsSocketServer::CExternalClientsSocketServer()"); setExternalClientSocketStatus (ExternalClientSocketStatus_NOTCNTD); @@ -230,6 +230,9 @@ CExternalClientsSocketServer::cmdToScheduler () } if (Res == WOULDBLOCK) setSockMode (m_Error, BLOCKING); + + newExternalClientsSocketServer.getPeerName(m_peerAddress, m_peerPort); + ACS_LOG(LM_FULL_INFO, "CExternalClientsSocketServer::cmdToScheduler()", (LM_NOTICE, std::string("Got connection from " + std::string(m_peerAddress) + " " + std::to_string(m_peerPort)).c_str())); } m_accept = true; @@ -602,7 +605,10 @@ CExternalClientsSocketServer::cmdToScheduler () } else { + ACS_LOG(LM_FULL_INFO, "CExternalClientsSocketServer::cmdToScheduler()", (LM_NOTICE, std::string("Closed connection from " + std::string(m_peerAddress) + " " + std::to_string(m_peerPort)).c_str())); newExternalClientsSocketServer.Close (m_Error); + m_peerAddress = ""; + m_peerPort = 0; m_accept = false; } } -- GitLab From fa7e9bb1d4a6fac0ce96eec8189d83fd52d9461a Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 16:36:10 +0000 Subject: [PATCH 088/150] Updated branch --- .../DataBlock/PointingModel/PointingModel.xml | 46 ++++++++-------- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + .../DataBlock/PointingModel/PointingModel.xml | 46 ++++++++-------- .../CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + .../CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + .../CDB/alma/MINORSERVO/Socket/Socket.xml | 2 +- .../idl/SRTMinorServo.idl | 5 ++ .../include/SRTMinorServoContainers.h | 14 ++++- .../src/SRTMinorServoSocket.cpp | 7 +-- .../config/CDB/schemas/SRTMinorServo.xsd | 1 + .../SRTMinorServo/include/SRTMinorServoImpl.h | 52 ++++++++++++------- .../src/SRTMinorServoTrackingThread.cpp | 14 +++++ .../src/SRTProgramTrackMinorServoImpl.cpp | 20 +++++-- 14 files changed, 137 insertions(+), 74 deletions(-) diff --git a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml index b1cf45978..14a8fbca7 100644 --- a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -38,36 +38,36 @@ <Receiver> <receiverCode>KKG</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> - <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> - <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> - <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> - <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> - <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> - <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> - <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> - <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> - <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> - <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> - <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> - <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> - <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> </Receiver> <Receiver> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 064ca71d1..6fdbf0722 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -34,5 +34,6 @@ <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> </SRTProgramTrackMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index fcb93eec9..eebfba2c7 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -34,5 +34,6 @@ <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> </SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml index b1cf45978..14a8fbca7 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -38,36 +38,36 @@ <Receiver> <receiverCode>KKG</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> - <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> - <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> - <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> - <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> - <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> - <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> - <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> - <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> - <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> - <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> - <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> - <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> - <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> </Receiver> <Receiver> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml index 064ca71d1..6fdbf0722 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -34,5 +34,6 @@ <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> </SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index fcb93eec9..eebfba2c7 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -34,5 +34,6 @@ <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> </SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml index f9925f1d3..5ca037aaa 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -10,4 +10,4 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IPAddress="192.168.200.13" Port="4758" - SocketTimeout="0.2"/> + SocketTimeout="1"/> diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 9177b2853..5c3eb142a 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -254,6 +254,11 @@ module MinorServo */ readonly attribute ACS::ROlong remaining_trajectory_points; + /** + * This property returns the sequence of tracking error for each virtual axis of the servo + */ + readonly attribute ACS::ROdoubleSeq tracking_error; + /** * This method loads a set of coordinates that have to be tracked by the servo system * @param trajectory_id the ID of the trajectory to which the current point belongs diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index d0e84bf1c..dfea1df66 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -509,8 +509,8 @@ namespace MinorServo } catch(std::out_of_range& ex) { - std::cout << "PLAIN ANSWER:" << std::endl; - std::cout << this->getPlainAnswer() << std::endl; + std::cout << "PLAIN_COMMAND: " << this->getPlainCommand(); + std::cout << "PLAIN_ANSWER:" << this->getPlainAnswer(); throw ex; } } @@ -600,6 +600,16 @@ namespace MinorServo return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); } + /** + * This method returns the plain command sent using the socket. Useful for log purposes. + * @return a std::string containing the plain command sent using the socket. + */ + const std::string getPlainCommand() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->get<std::string>("PLAIN_COMMAND"); + } + /** * This method returns the plain answer received from the socket. Useful for log purposes. * @return a std::string containing the plain answer received from the socket. diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index d0e3405ef..f0606fe29 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -102,10 +102,10 @@ const bool SRTMinorServoSocket::isConnected() const SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) { - connect(); - std::lock_guard<std::mutex> guard(m_mutex); + connect(); + double start_time = IRA::CIRATools::getUNIXEpoch(); size_t sent_bytes = 0; @@ -171,12 +171,13 @@ SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std m_socket_status = NOTREADY; Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); - impl.setReason("Something went wrong while receiving some bytes."); + impl.setReason(("Something went wrong while receiving some bytes. Command: " + command).c_str()); throw impl.getMinorServoErrorsEx(); } } SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); + map_answer.put("PLAIN_COMMAND", command); if(map) { map->get() = map_answer; diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index e2477b42c..d3f3d966f 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -75,6 +75,7 @@ <xs:element name="trajectory_id" type="baci:ROlong" /> <xs:element name="total_trajectory_points" type="baci:ROlong" /> <xs:element name="remaining_trajectory_points" type="baci:ROlong" /> + <xs:element name="tracking_error" type="baci:ROdoubleSeq" /> </xs:sequence> <xs:attribute name="tracking_delta" type="xs:string" use="required" /> </xs:extension> diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index f348f0be9..2a43122df 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -200,85 +200,85 @@ public: /** * Returns a reference to the enabled property implementation of the IDL interface. - * @return pointer to read-only boolean property enabled. + * @return pointer to the read-only boolean property enabled. */ virtual Management::ROTBoolean_ptr enabled(); /** * Returns a reference to the drive_cabinet_status property implementation of the IDL interface. - * @return pointer to read-only SRTMinorServoCabinerStatus (enumeration) property drive_cabinet_status. + * @return pointer to the read-only SRTMinorServoCabinerStatus (enumeration) property drive_cabinet_status. */ virtual ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); /** * Returns a reference to the block property implementation of the IDL interface. - * @return pointer to read-only boolean property block. + * @return pointer to the read-only boolean property block. */ virtual Management::ROTBoolean_ptr block(); /** * Returns a reference to the operative_mode property implementation of the IDL interface. - * @return pointer to read-only SRTMinorServoOperativeMode (enumeration) property operative_mode. + * @return pointer to the read-only SRTMinorServoOperativeMode (enumeration) property operative_mode. */ virtual ROSRTMinorServoOperativeMode_ptr operative_mode(); /** * Returns a reference to the physical_axes_enabled property implementation of the IDL interface. - * @return pointer to read-only boolean sequence property physical_axes_enabled. + * @return pointer to the read-only boolean sequence property physical_axes_enabled. */ virtual ACS::RObooleanSeq_ptr physical_axes_enabled(); /** * Returns a reference to the physical_positions property implementation of the IDL interface. - * @return pointer to read-only boolean sequence property physical_positions. + * @return pointer to the read-only boolean sequence property physical_positions. */ virtual ACS::ROdoubleSeq_ptr physical_positions(); /** * Returns a reference to the virtual_axes property implementation of the IDL interface. - * @return pointer to read-only long property virtual_axes. + * @return pointer to the read-only long property virtual_axes. */ virtual ACS::ROlong_ptr virtual_axes(); /** * Returns a reference to the plain_virtual_positions property implementation of the IDL interface. - * @return pointer to read-only double sequence property plain_virtual_positions. + * @return pointer to the read-only double sequence property plain_virtual_positions. */ virtual ACS::ROdoubleSeq_ptr plain_virtual_positions(); /** * Returns a reference to the virtual_positions property implementation of the IDL interface. - * @return pointer to read-only double sequence property virtual_positions. + * @return pointer to the read-only double sequence property virtual_positions. */ virtual ACS::ROdoubleSeq_ptr virtual_positions(); /** * Returns a reference to the virtual_offsets property implementation of the IDL interface. - * @return pointer to read-only double sequence property virtual_offsets. + * @return pointer to the read-only double sequence property virtual_offsets. */ virtual ACS::ROdoubleSeq_ptr virtual_offsets(); /** * Returns a reference to the virtual_user_offsets property implementation of the IDL interface. - * @return pointer to read-only double sequence property virtual_user_offsets. + * @return pointer to the read-only double sequence property virtual_user_offsets. */ virtual ACS::ROdoubleSeq_ptr virtual_user_offsets(); /** * Returns a reference to the virtual_system_offsets property implementation of the IDL interface. - * @return pointer to read-only double sequence property virtual_system_offsets. + * @return pointer to the read-only double sequence property virtual_system_offsets. */ virtual ACS::ROdoubleSeq_ptr virtual_system_offsets(); /** * Returns a reference to the in_use property implementation of the IDL interface. - * @return pointer to read-only boolean property in_use. + * @return pointer to the read-only boolean property in_use. */ virtual Management::ROTBoolean_ptr in_use(); /** * Returns a reference to the current_setup property implementation of the IDL interface. - * @return pointer to read-only string property current_setup. + * @return pointer to the read-only string property current_setup. */ virtual ACS::ROstring_ptr current_setup(); @@ -652,28 +652,34 @@ public: /** * Returns a reference to the tracking property implementation of the IDL interface. - * @return pointer to read-only boolean property tracking. + * @return pointer to the read-only boolean property tracking. */ virtual Management::ROTBoolean_ptr tracking(); /** * Returns a reference to the trajectory_id property implementation of the IDL interface. - * @return pointer to read-only long property trajectory_id. + * @return pointer to the read-only long property trajectory_id. */ virtual ACS::ROlong_ptr trajectory_id(); /** * Returns a reference to the total_trajectory_points property implementation of the IDL interface. - * @return pointer to read-only long property total_trajectory_points. + * @return pointer to the read-only long property total_trajectory_points. */ virtual ACS::ROlong_ptr total_trajectory_points(); /** * Returns a reference to the remaining_trajectory_points property implementation of the IDL interface. - * @return pointer to read-only long property remaining_trajectory_points. + * @return pointer to the read-only long property remaining_trajectory_points. */ virtual ACS::ROlong_ptr remaining_trajectory_points(); + /** + * Returns a reference to the tracking_error property implementation of the IDL interface. + * @return pointer to the read-only double sequence property tracking_error. + */ + virtual ACS::ROdoubleSeq_ptr tracking_error(); + private: /** * Queue of positions to be assumed by the servo system when tracking a trajectory. @@ -685,6 +691,11 @@ private: */ const std::vector<double> m_tracking_delta; + /** + * Tracking error values for all minor servo system virtual axes. + */ + std::vector<double> m_tracking_error; + /** * Indicates if the servo system is tracking or not. It is tracking when the position error is lower than the tracking delta for all the virtual axes. */ @@ -724,6 +735,11 @@ private: * Pointer to the remaining_trajectory_points property. */ baci::SmartPropertyPointer<baci::ROlong> m_remaining_trajectory_points_ptr; + + /** + * Pointer to the tracking_error property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_tracking_error_ptr; }; #endif diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index ad19c5b98..7f4350101 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -118,6 +118,20 @@ void SRTMinorServoTrackingThread::runLoop() this->setStopped(); return; } + catch(std::exception& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.what())); + m_error = true; + this->setStopped(); + return; + } + catch(CORBA::Exception& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex._info().c_str())); + m_error = true; + this->setStopped(); + return; + } } m_point_id++; diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index 959afb9de..16fa1ebd6 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -6,6 +6,7 @@ SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString & SRTBaseMinorServoImpl(componentName, containerServices), m_tracking_queue(1500, m_virtual_axes), m_tracking_delta(SRTBaseMinorServoImpl::getMotionConstant(*this, "tracking_delta")), + m_tracking_error(m_virtual_axes, 0.0), m_tracking(Management::MNG_FALSE), m_trajectory_id(0), m_total_trajectory_points(0), @@ -13,7 +14,8 @@ SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString & m_tracking_ptr(this), m_trajectory_id_ptr(this), m_total_trajectory_points_ptr(this), - m_remaining_trajectory_points_ptr(this) + m_remaining_trajectory_points_ptr(this), + m_tracking_error_ptr(this) { AUTO_TRACE(m_servo_name + "::SRTProgramTrackMinorServoImpl()"); } @@ -37,6 +39,8 @@ void SRTProgramTrackMinorServoImpl::initialize() new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_total_trajectory_points), true); m_remaining_trajectory_points_ptr = new baci::ROlong((m_component_name + ":remaining_trajectory_points").c_str(), getComponent(), new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_remaining_trajectory_points), true); + m_tracking_error_ptr = new baci::ROdoubleSeq((m_component_name + ":tracking_error").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_tracking_error), true); } catch(std::bad_alloc& ba) { @@ -57,7 +61,7 @@ bool SRTProgramTrackMinorServoImpl::status() // The timestamp of the read positions always corresponds to the one we're asking since they both belong to the same STATUS command answer // The tracking timestamp is interpolated instead - std::vector<double> virtual_positions = m_positions_queue.get(last_timestamp).second; + ACS::doubleSeq virtual_positions = m_status.getVirtualPositions(); std::pair<ACS::Time, std::vector<double>> tracking_point = m_tracking_queue.get(last_timestamp); m_remaining_trajectory_points.store(m_tracking_queue.getRemainingPoints(last_timestamp)); @@ -67,14 +71,20 @@ bool SRTProgramTrackMinorServoImpl::status() // We are past the last point of the trajectory, we concluded it m_tracking.store(Management::MNG_FALSE); m_tracking_queue.clear(); + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); } else { bool is_tracking = true; - for(size_t i = 0; i < virtual_positions.size(); i++) + std::transform(virtual_positions.begin(), virtual_positions.end(), tracking_point.second.begin(), m_tracking_error.begin(), [](double current_pos, double commanded_pos) { - if(std::fabs(virtual_positions[i] - tracking_point.second[i]) > m_tracking_delta[i]) + return std::fabs(current_pos - commanded_pos); + }); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + if(std::fabs(m_tracking_error[i]) > m_tracking_delta[i]) { is_tracking = false; break; @@ -89,6 +99,7 @@ bool SRTProgramTrackMinorServoImpl::status() // We might get here if m_tracking_queue is empty // So whenever we just got a new setup or if we are past the last point inside the trajectory m_tracking.store(Management::MNG_FALSE); // May be redundant but who cares? + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); } return status; @@ -157,5 +168,6 @@ GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTProgramTrackMinorServoImpl, m_ GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_trajectory_id_ptr, trajectory_id); GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_total_trajectory_points_ptr, total_trajectory_points); GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_remaining_trajectory_points_ptr, remaining_trajectory_points); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTProgramTrackMinorServoImpl, m_tracking_error_ptr, tracking_error); MACI_DLL_SUPPORT_FUNCTIONS(SRTProgramTrackMinorServoImpl) -- GitLab From 1780f7a4b6303e24beb8cebb8b1727902b9089b1 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 17:44:15 +0100 Subject: [PATCH 089/150] Fix #836, fixed HPBW measure in caltoolclient (#837) --- Common/Clients/CaltoolClient/src/_ctc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/Clients/CaltoolClient/src/_ctc.py b/Common/Clients/CaltoolClient/src/_ctc.py index ca41edf75..ba998ee4c 100644 --- a/Common/Clients/CaltoolClient/src/_ctc.py +++ b/Common/Clients/CaltoolClient/src/_ctc.py @@ -288,8 +288,8 @@ class Application(Qt.QDialog,calibrationtool_ui.Ui_CalibrationToolDialog): else: self.scanAxisLabel.setText('ScanAxis - Focus') xaxis_text="Distance (mm)" - hpbw_label_text='HPBW(mm)' - peakOffsetLabel_text='PeakOffset(mm)' + hpbw_label_text='HPBW (arcmin)' + peakOffsetLabel_text='PeakOffset (mm)' self.qwtPlot_datax.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) self.qwtPlot_datay.setAxisTitle(Qwt.QwtPlot.xBottom, xaxis_text) self.hpbw_label.setText(hpbw_label_text) -- GitLab From d7310dcffa1cd0a2bf6e7c7c598f9eee70278b2b Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 18:04:58 +0100 Subject: [PATCH 090/150] Fixed some label inside caltoolclient --- Common/Clients/CaltoolClient/src/_ctc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/Clients/CaltoolClient/src/_ctc.py b/Common/Clients/CaltoolClient/src/_ctc.py index ba998ee4c..4629daf41 100644 --- a/Common/Clients/CaltoolClient/src/_ctc.py +++ b/Common/Clients/CaltoolClient/src/_ctc.py @@ -283,8 +283,8 @@ class Application(Qt.QDialog,calibrationtool_ui.Ui_CalibrationToolDialog): if 'SUBR' not in str(scanaxis): self.scanAxisLabel.setText('ScanAxis - Pointing') xaxis_text="Direction (Deg)" - hpbw_label_text='HPBW(arcmim)' - peakOffsetLabel_text='PeakOffset(deg)' + hpbw_label_text='HPBW (arcmim)' + peakOffsetLabel_text='PeakOffset (deg)' else: self.scanAxisLabel.setText('ScanAxis - Focus') xaxis_text="Distance (mm)" -- GitLab From aabd3b0050c6c626b74acee23a86f0d3722ed21d Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 13 Mar 2024 18:10:58 +0100 Subject: [PATCH 091/150] Added missing space in label for caltoolclient --- Common/Clients/CaltoolClient/src/calibrationToolClient.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Clients/CaltoolClient/src/calibrationToolClient.ui b/Common/Clients/CaltoolClient/src/calibrationToolClient.ui index 8ef0be0f1..40edee8a0 100644 --- a/Common/Clients/CaltoolClient/src/calibrationToolClient.ui +++ b/Common/Clients/CaltoolClient/src/calibrationToolClient.ui @@ -361,7 +361,7 @@ </size> </property> <property name="text"> - <string>PeakOffset(deg)</string> + <string>PeakOffset (deg)</string> </property> </widget> </item> -- GitLab From d1d00f36d2acb84c001abeabbbe16d394c88a7ab Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 15 Mar 2024 11:37:01 +0000 Subject: [PATCH 092/150] Updated AntennaBoss component retrieving method --- .../include/SRTMinorServoBossCore.h | 4 +-- .../src/SRTMinorServoBossCore.cpp | 31 +++++++------------ 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index 470186058..157fe1f23 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -15,7 +15,7 @@ #include <enumpropROImpl.h> #include <SRTMinorServoBossS.h> #include <SRTMinorServoS.h> -#include <AntennaBossC.h> +#include <AntennaProxy.h> #include <ManagmentDefinitionsS.h> #include <thread> #include <chrono> @@ -310,7 +310,7 @@ private: /** * Pointer to the AntennaBoss component. */ - Antenna::AntennaBoss_var m_antennaBoss; + Antenna::AntennaBoss_proxy m_antennaBoss; /** * SRTMinorServoGeneralStatus object containing the status read from the PLC. diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 1b1e57785..7c4052822 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -9,7 +9,7 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_park_thread(nullptr), m_tracking_thread(nullptr), m_scan_thread(nullptr), - m_antennaBoss(Antenna::AntennaBoss::_nil()), + m_antennaBoss("IDL:alma/Antenna/AntennaBoss:1.0", m_component.getContainerServices()), m_status(), m_motion_status(MOTION_STATUS_UNCONFIGURED), m_commanded_setup("Unknown"), @@ -146,6 +146,14 @@ bool SRTMinorServoBossCore::status() m_tracking.store(Management::MNG_FALSE); } } + else if(motion_status == MOTION_STATUS_CONFIGURED) + { + m_tracking.store(Management::MNG_TRUE); + } + else + { + m_tracking.store(Management::MNG_FALSE); + } return true; } @@ -1162,33 +1170,18 @@ void SRTMinorServoBossCore::closeScan(ACS::Time& close_time) double SRTMinorServoBossCore::getElevation(const ACS::Time& acs_time) { AUTO_TRACE("SRTMinorServoBossCore::getElevation()"); - // TODO automatically try to get a new reference if the AntennaBoss component were to be deallocated - // What happens if we lose the reference? m_antennaBoss will not be _nil but getRawCoordinates will behave unexpectedly - // Retrieve the AntennaBoss component if it was not initialized yet + double azimuth, elevation; + try { - if(CORBA::is_nil(m_antennaBoss)) - { - m_antennaBoss = m_component.getContainerServices()->getComponent<Antenna::AntennaBoss>("ANTENNA/Boss"); - } - - double azimuth, elevation; m_antennaBoss->getRawCoordinates(acs_time, azimuth, elevation); elevation *= DR2D; - // If the antennaBoss didn't command any movement to the telescope yet we get an elevation of 0° - // We don't want to track an elevation of 0°, especially when DISCOS just started - // There is a high chance the antenna is still at around 90° of elevation - // We "initialize" the tracking to an elevation of 45° return elevation == 0.0 ? 45.0 : elevation; } - catch(maciErrType::CannotGetComponentExImpl& impl) + catch(ComponentErrors::CouldntGetComponentExImpl& ex) { - m_antennaBoss = Antenna::AntennaBoss::_nil(); - _EXCPT(ComponentErrors::CouldntGetComponentExImpl, ex, "SRTMinorServoBossCore::getElevation()"); - ex.setComponentName("ANTENNA/Boss"); ex.addData("Reason", "Cannot get the ANTENNA/Boss component"); - ex.log(LM_DEBUG); throw ex.getComponentErrorsEx(); } } -- GitLab From 30c445f15447d66c3c9a4244e27e633c823aa142 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 18 Mar 2024 09:19:49 +0000 Subject: [PATCH 093/150] Updated SRTActiveSurface setProfile method --- .../SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp index a63fa676f..bfe1c7c69 100644 --- a/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp +++ b/SRT/Servers/SRTActiveSurfaceBoss/src/SRTActiveSurfaceBossCore.cpp @@ -1381,7 +1381,7 @@ void CSRTActiveSurfaceBossCore::setProfile(const ActiveSurface::TASProfile& newP if(!usdCorrections) { ACS_SHORT_LOG ((LM_INFO, "File %s not found", m_lut.c_str())); - exit(-1); + return; } actuatorsCorrections.length(NPOSITIONS); for (int i = 1; i <= CIRCLES; i++) @@ -1402,7 +1402,6 @@ void CSRTActiveSurfaceBossCore::setProfile(const ActiveSurface::TASProfile& newP usdCounter = 0; for(unsigned int i = 0; i < SECTORS; i++) { - m_sector[i] = false; usdCounter += usdCounters[i]; } -- GitLab From e6601d4ad8edbf7db4f699a3c49583916bb4e6d7 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 18 Mar 2024 11:45:10 +0000 Subject: [PATCH 094/150] Updated CCG procedure --- .../CDB/alma/Procedures/StationProcedures/StationProcedures.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 1c63bba48..4d86ea178 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -20,6 +20,7 @@ <Procedure name="setupCCG" args="0"> <body> antennaSetup=CCG + servoSetup=CCG receiversSetup=CCG chooseBackend=TotalPower initialize=CCG -- GitLab From 1c47fe51e46f60f365a73d6cb88a4d061eca7087 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Mon, 18 Mar 2024 12:48:22 +0100 Subject: [PATCH 095/150] Fix #847, commented `throw` in ComponentProxy lib (#848) --- Common/Libraries/ComponentProxy/include/ComponentProxy.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/Libraries/ComponentProxy/include/ComponentProxy.h b/Common/Libraries/ComponentProxy/include/ComponentProxy.h index 6a798f295..849d6b30e 100644 --- a/Common/Libraries/ComponentProxy/include/ComponentProxy.h +++ b/Common/Libraries/ComponentProxy/include/ComponentProxy.h @@ -55,10 +55,10 @@ class ComponentProxy ComponentProxy(); ComponentProxy(const char*, maci::ContainerServices*); virtual ~ComponentProxy(); - void loadDefault() throw (ComponentErrors::CouldntGetComponentExImpl); + void loadDefault(); //throw (ComponentErrors::CouldntGetComponentExImpl); void unload(); //ComponentVar getComponentVar(){ return m_component_var;}; - ComponentVar& operator->() throw (ComponentErrors::CouldntGetComponentExImpl); + ComponentVar& operator->(); //throw (ComponentErrors::CouldntGetComponentExImpl); void setError(){ m_error = true;}; void resetError(){ m_error = false;}; bool isError(){ return m_error;}; @@ -103,7 +103,7 @@ ComponentProxy<ComponentClass, ComponentVar>::~ComponentProxy() template <typename ComponentClass, typename ComponentVar> void ComponentProxy<ComponentClass, ComponentVar>::loadDefault() -throw (ComponentErrors::CouldntGetComponentExImpl) +//throw (ComponentErrors::CouldntGetComponentExImpl) { if(m_name == "") { @@ -230,7 +230,7 @@ ComponentProxy<ComponentClass, ComponentVar>::setContainerServices( template <typename ComponentClass, typename ComponentVar> ComponentVar& ComponentProxy<ComponentClass, ComponentVar>::operator->() -throw (ComponentErrors::CouldntGetComponentExImpl) +//throw (ComponentErrors::CouldntGetComponentExImpl) { loadDefault(); //return m_component_var.out(); -- GitLab From c66bd5f676884810f54b153343e0090b50d073d2 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 21 Mar 2024 11:09:25 +0000 Subject: [PATCH 096/150] Updated Sardara configuration for CLow and CHigh --- Common/Servers/Sardara/include/CommandLine.h | 1 - Common/Servers/Sardara/src/CommandLine.cpp | 28 +++++++--- .../CDB/alma/DataBlock/Sardara/Sardara.xml | 54 ++++++++++++++----- 3 files changed, 64 insertions(+), 19 deletions(-) diff --git a/Common/Servers/Sardara/include/CommandLine.h b/Common/Servers/Sardara/include/CommandLine.h index 4b7869e2d..846c9dfa9 100644 --- a/Common/Servers/Sardara/include/CommandLine.h +++ b/Common/Servers/Sardara/include/CommandLine.h @@ -780,7 +780,6 @@ ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::Mal bool m_SC00; bool m_SL00; bool m_SP00; - bool m_SC00S; bool m_SL00S; bool m_SP00S; bool m_SCC00; diff --git a/Common/Servers/Sardara/src/CommandLine.cpp b/Common/Servers/Sardara/src/CommandLine.cpp index e86ac7050..d8dd17334 100644 --- a/Common/Servers/Sardara/src/CommandLine.cpp +++ b/Common/Servers/Sardara/src/CommandLine.cpp @@ -51,7 +51,8 @@ CCommandLine::CCommandLine(ContainerServices *service): CSocket(), // SRT configurations m_SK00=false; m_SK00S=false; m_SK77=false; m_SK77S=false; - m_SC00=false; m_SC00S=false; + m_SCC00=false; m_SCC00S=false; + m_SCH00=false; m_SCH00S=false; m_SL00=false; m_SL00S=false; m_SP00=false; m_SP00S=false; m_stationSRT=false; @@ -780,7 +781,8 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C if (m_stationSRT==true) { m_SK77=m_SK77S=false; m_SK00=m_SK00S=false; - m_SC00=m_SC00S=false; + m_SCC00=m_SCC00S=false; + m_SCH00=m_SCH00S=false; m_SL00=m_SL00S=false; m_SP00=m_SP00S=false; m_stokes=false; @@ -797,10 +799,16 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C m_SK00=true; m_CK=true; } - if (config.Compare("SC00")==0) { + if (config.Compare("SCC00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SCC00=true; + m_CK=true; + } + if (config.Compare("SCH00")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; - m_SC00=true; + m_SCH00=true; m_CK=true; } if (config.Compare("SL00")==0) { @@ -833,11 +841,19 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C m_stokes=true; m_CK=true; } - if (config.Compare("SC00S")==0) { + if (config.Compare("SCC00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SCC00S=true; + m_stokes=true; + m_CK=true; + } + if (config.Compare("SCH00S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; - m_SC00S=true; + m_SCH00S=true; m_stokes=true; m_CK=true; } diff --git a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml index 3209a7141..8f3f05847 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml @@ -12,7 +12,7 @@ <inputPort>GREGORIAN</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> + <attenuation>7.0</attenuation> <section_boards>0 1</section_boards> <polarizations>L R</polarizations> <feed>0 0</feed> @@ -27,7 +27,7 @@ <inputPort>GREGORIAN</inputPort> <beams>7</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> + <attenuation>7.0</attenuation> <section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards> <polarizations>L R L R L R L R L R L R L R</polarizations> <feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed> @@ -36,13 +36,28 @@ </Configuration> <Configuration> - <configurationID>SC00</configurationID> + <configurationID>SCC00</configurationID> <sections>2</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>BWG</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>9.0</attenuation> + <attenuation>9.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SCH00</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>BWG</inputPort> + <beams>1</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>9.0</attenuation> <section_boards>0 1</section_boards> <polarizations>L R</polarizations> <feed>0 0</feed> @@ -57,7 +72,7 @@ <inputPort>PRIMARY</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>10.0</attenuation> + <attenuation>10.0</attenuation> <section_boards>2 3</section_boards> <polarizations>L R</polarizations> <feed>0 0</feed> @@ -72,7 +87,7 @@ <inputPort>PRIMARY</inputPort> <beams>1</beams> <bandWidth>500.0</bandWidth> - <attenuation>10.0</attenuation> + <attenuation>10.0</attenuation> <section_boards>0 1</section_boards> <polarizations>L R</polarizations> <feed>0 0</feed> @@ -87,7 +102,7 @@ <inputPort>GREGORIAN</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> + <attenuation>7.0</attenuation> <section_boards>0 1 2 3</section_boards> <polarizations>S S</polarizations> <feed>0 0</feed> @@ -102,7 +117,7 @@ <inputPort>GREGORIAN</inputPort> <beams>7</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> + <attenuation>7.0</attenuation> <section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards> <polarizations>S S S S S S S S S S S S S S</polarizations> <feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed> @@ -111,13 +126,28 @@ </Configuration> <Configuration> - <configurationID>SC00S</configurationID> + <configurationID>SCC00S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>BWG</inputPort> + <beams>1</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>9.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SCH00S</configurationID> <sections>2</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>BWG</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>9.0</attenuation> + <attenuation>9.0</attenuation> <section_boards>0 1</section_boards> <polarizations>S S</polarizations> <feed>0 0</feed> @@ -132,7 +162,7 @@ <inputPort>PRIMARY</inputPort> <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>10.0</attenuation> + <attenuation>10.0</attenuation> <section_boards>2 3</section_boards> <polarizations>S S</polarizations> <feed>0 0</feed> @@ -147,7 +177,7 @@ <inputPort>PRIMARY</inputPort> <beams>1</beams> <bandWidth>500.0</bandWidth> - <attenuation>10.0</attenuation> + <attenuation>10.0</attenuation> <section_boards>0 1</section_boards> <polarizations>S S</polarizations> <feed>0 0</feed> -- GitLab From c26c005a20266aa30b3f06b63d2b461a64138351 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 2 Apr 2024 10:32:59 +0200 Subject: [PATCH 097/150] Fix #853, allowed setSection=*,... to configure all sections (#854) * Fix #853, allowed setSection=*,... to configure all sections This fix is for TotalPower and Sardara backends * Fix #853, updated changelog --- CHANGELOG.md | 1 + Common/Servers/Sardara/src/CommandLine.cpp | 468 +++++++++--------- Common/Servers/TotalPower/src/CommandLine.cpp | 159 +++--- 3 files changed, 332 insertions(+), 296 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f12d48bf9..df21abc5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,3 +108,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/ ## Changed issue #689 - The dataset provided by weather station has been enlarged by the wind direction. The correctponding RAL 'wx' command will noe provided wind direction readout, as well issue #621 - The maximum number of chars of the schedule file name is now 37 (extension included). This is done for fits file and archive issue with the lenght of the schedule name. + issue #853 - The setSection command can now accept a wildcard (*) as section identifier. This will allow to configure all backend sections with a single command diff --git a/Common/Servers/Sardara/src/CommandLine.cpp b/Common/Servers/Sardara/src/CommandLine.cpp index d8dd17334..050946a6a 100644 --- a/Common/Servers/Sardara/src/CommandLine.cpp +++ b/Common/Servers/Sardara/src/CommandLine.cpp @@ -353,241 +353,259 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const BackendsErrors::BackendBusyExImpl) { AUTO_TRACE("CCommandLine::setConfiguration()"); - double newBW,newSR,newFreq; - long newBins, newFeed, newPol; + std::vector<double> newBW(m_sectionsNumber); + std::vector<double> newSR(m_sectionsNumber); + std::vector<double> newFreq(m_sectionsNumber); + std::vector<long> newBins(m_sectionsNumber); + std::vector<long> newFeed(m_sectionsNumber); + std::vector<long> newPol(m_sectionsNumber); double filter; int j; + size_t minSection, maxSection; - if (m_SardaraInitialized == true) { - /* if (getIsBusy()) { + if (m_SardaraInitialized == true) { + /* if (getIsBusy()) { _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setConfiguration()"); throw impl; - }*/ - if (inputId>=0) { //check the section id is in valid ranges - //if (inputId>=m_sectionsNumber) { - if (inputId>m_sectionsNumber) { - _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setReason("the section identifier is out of range"); - throw impl; - } - } - else { - _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setReason("the section identifier is out of range"); - throw impl; - } + }*/ + if (inputId>=0) { //check the section id is in valid ranges + //if (inputId>=m_sectionsNumber) { + if (inputId>m_sectionsNumber) { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setReason("the section identifier is out of range"); + throw impl; + } + minSection=inputId; + maxSection=minSection+1; + } + else if (inputId==-1) + { + minSection=0; + maxSection=m_sectionsNumber; + } + else { + _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setReason("the section identifier is out of range"); + throw impl; + } - if (bw>=0) { // the user ask for a new value - if (bw<MIN_BAND_WIDTH) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("bandWidth"); - impl.setValueLimit(MIN_BAND_WIDTH); - throw impl; - } - else if (bw>MAX_BAND_WIDTH) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("bandWidth"); - impl.setValueLimit(MAX_BAND_WIDTH); - throw impl; - } - newBW=bw; - } - else { // else keep the present value - newBW=m_bandWidth[inputId]; - } + for(size_t i=minSection; i<maxSection; i++) + { + if (bw>=0) { // the user ask for a new value + if (bw<MIN_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MIN_BAND_WIDTH); + throw impl; + } + else if (bw>MAX_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MAX_BAND_WIDTH); + throw impl; + } + newBW[i]=bw; + } + else { // else keep the present value + newBW[i]=m_bandWidth[i]; + } - if (sr>=0) {// the user ask for a new value - if ((sr > MAX_SAMPLE_RATE) || (sr != 2*newBW)) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("sampleRate"); - impl.setValueLimit(MAX_SAMPLE_RATE); - throw impl; - } - newSR=sr; - } - else { - newSR=m_sampleRate[inputId]; - } + if (sr>=0) {// the user ask for a new value + if ((sr > MAX_SAMPLE_RATE) || (sr != 2*newBW[i])) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("sampleRate"); + impl.setValueLimit(MAX_SAMPLE_RATE); + throw impl; + } + newSR[i]=sr; + } + else { + newSR[i]=m_sampleRate[i]; + } - if (freq >= 0) { // the user ask for a new value - if (freq >= MIN_FREQUENCY && freq <= MAX_FREQUENCY) { - newFreq = freq; - } - else { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("freq"); - throw impl; - } - } - else - newFreq = m_frequency[inputId]; + if (freq >= 0) { // the user ask for a new value + if (freq >= MIN_FREQUENCY && freq <= MAX_FREQUENCY) { + newFreq[i] = freq; + } + else { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("freq"); + throw impl; + } + } + else + newFreq[i] = m_frequency[i]; + + if (feed >= 0) { // the user ask for a new value + if (feed != 0) { // BUT for the moment is it possible to use ONLY feed 0 + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("feed"); + throw impl; + } + newFeed[i] = feed; + } + else + newFeed[i] = m_feedNumber[i]; - if (feed >= 0) { // the user ask for a new value - if (feed != 0) { // BUT for the moment is it possible to use ONLY feed 0 - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("feed"); - throw impl; - } - newFeed = feed; - } - else - newFeed = m_feedNumber[inputId]; - - if (pol >= 0) { // the user ask for a new value - if ((pol == 0) || (pol == 1)) { // LCP or RCP - newPol = pol; - } - if (pol == 2) { // FULL STOKES - newPol = pol; - } - if (pol >= 3) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("pol"); - throw impl; - } - newPol = pol; - } - else - newPol = m_polarization[inputId]; - - if (bins>=0) { // the user ask for a new value - if (bins != MIN_BINS && bins != MAX_BINS) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("bins"); - /*if (bins != MIN_BINS) - impl.setValue(MIN_BINS); - if (bins != MAX_BINS) - impl.setValue(MAX_BINS);*/ - throw impl; - } - newBins=bins; - } - else - newBins = m_bins[inputId]; - - if (m_stationSRT == true) { - try { - Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); - Message reply = sendBackendCommand(request); - if (reply.is_success_reply()) { - for (j=0;j<m_sectionsNumber;j++) - m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others - m_commonSampleRate=newSR; - if (m_stokes==true) { - m_frequency[2*inputId]=newFreq; - m_frequency[2*inputId+1]=newFreq; - m_bandWidth[2*inputId]=newBW; - m_bandWidth[2*inputId+1]=newBW; - } - else { - m_frequency[inputId]=newFreq; - m_bandWidth[inputId]=newBW; - } - m_feedNumber[inputId]=newFeed; - m_bins[inputId]=newBins; - m_polarization[inputId]=newPol; - IRA::CString temp; - if (m_polarization[inputId]==Backends::BKND_LCP) - temp="LCP"; - else if (m_polarization[inputId]==Backends::BKND_RCP) - temp="RCP"; - else - temp="FULL_STOKES"; - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], (const char *)temp,newSR,m_bins[inputId])); - if (m_CK == true) { - if (newBW==420.00) - filter=300.00; - if (newBW==1500.00) - filter=1250.00; - if (newBW==2300.00) - filter=2350.00; - if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) { - for (j=0; j<m_inputsNumber; j++) - m_totalPower->setSection(j,-1, filter, -1, -1, -1, -1); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter)); - } - } - /*if ((m_SL00==true || m_SL00S==true) && m_stationSRT == true) { - try { - if (newBW==128.00) { - m_ifDistributor->setup("BW-NARROW"); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-NARROW")); - } - if (newBW==420.00) { - m_ifDistributor->setup("BW-MEDIUM"); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-MEDIUM")); - } - if (newBW==500.00) { - m_ifDistributor->setup("BW-WIDE"); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-WIDE")); - } - if (newBW==512.00) { - m_ifDistributor->setup("BW-UNFILTERED"); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-UNFILTERED")); - } - } - catch (...) { - _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCommandLine::setAttenuation()"); - impl.log(LM_ERROR); - } - }*/ - } - } - catch (...) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); - } - } + if (pol >= 0) { // the user ask for a new value + if ((pol == 0) || (pol == 1)) { // LCP or RCP + newPol[i] = pol; + } + if (pol == 2) { // FULL STOKES + newPol[i] = pol; + } + if (pol >= 3) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("pol"); + throw impl; + } + newPol[i] = pol; + } + else + newPol[i] = m_polarization[i]; + + if (bins>=0) { // the user ask for a new value + if (bins != MIN_BINS && bins != MAX_BINS) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bins"); + /*if (bins != MIN_BINS) + impl.setValue(MIN_BINS); + if (bins != MAX_BINS) + impl.setValue(MAX_BINS);*/ + throw impl; + } + newBins[i]=bins; + } + else + newBins[i] = m_bins[i]; + } - if (m_stationMEDNT == true) { - try { - Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); - Message reply = sendBackendCommand(request); - if (reply.is_success_reply()) { - for (int j=0;j<m_sectionsNumber;j++) - m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others - m_commonSampleRate=newSR; - if (m_stokes==true) { - m_frequency[2*inputId]=newFreq; - m_frequency[2*inputId+1]=newFreq; - m_bandWidth[2*inputId]=newBW; - m_bandWidth[2*inputId+1]=newBW; - } - else { - m_frequency[inputId]=newFreq; - m_bandWidth[inputId]=newBW; - } - m_feedNumber[inputId]=newFeed; - m_bins[inputId]=newBins; - m_polarization[inputId]=newPol; - IRA::CString temp; - if (m_polarization[inputId]==Backends::BKND_LCP) - temp="LCP"; - else if (m_polarization[inputId]==Backends::BKND_RCP) - temp="RCP"; - else - temp="FULL_STOKES"; - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], (const char *)temp,newSR,m_bins[inputId])); - if (m_CK==true) { - if (newBW==420.00) - filter=300.00; - if (newBW==1500.00) - filter=1250.00; - if (newBW==2300.00) - filter=2350.00; - if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) { - for (j=0; j<m_inputsNumber; j++) { - m_totalPower->setSection(j,-1, filter, -1, -1, -1, -1); - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter)); - } - } - } - } - } - catch (...) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); - } - } - } + for(size_t i=minSection; i<maxSection; i++) + { + if (m_stationSRT == true) { + try { + Message request = Command::setSection(i, newFreq[i], newBW[i], newFeed[i], newPol[i], newSR[i], newBins[i]); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + for (j=0;j<m_sectionsNumber;j++) + m_sampleRate[j]=newSR[i]; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR[i]; + if (m_stokes==true) { + m_frequency[2*i]=newFreq[i]; + m_frequency[2*i+1]=newFreq[i]; + m_bandWidth[2*i]=newBW[i]; + m_bandWidth[2*i+1]=newBW[i]; + } + else { + m_frequency[i]=newFreq[i]; + m_bandWidth[i]=newBW[i]; + } + m_feedNumber[i]=newFeed[i]; + m_bins[i]=newBins[i]; + m_polarization[i]=newPol[i]; + IRA::CString temp; + if (m_polarization[i]==Backends::BKND_LCP) + temp="LCP"; + else if (m_polarization[i]==Backends::BKND_RCP) + temp="RCP"; + else + temp="FULL_STOKES"; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",i,m_frequency[i],newBW[i],m_feedNumber[i], (const char *)temp,newSR[i],m_bins[i])); + if (m_CK == true) { + if (newBW[i]==420.00) + filter=300.00; + if (newBW[i]==1500.00) + filter=1250.00; + if (newBW[i]==2300.00) + filter=2350.00; + if (newBW[i] == 420.00 || newBW[i] == 1500.00 || newBW[i] == 2300.00) { + for (j=0; j<m_inputsNumber; j++) + m_totalPower->setSection(j,-1, filter, -1, -1, -1, -1); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",i,filter)); + } + } + /*if ((m_SL00==true || m_SL00S==true) && m_stationSRT == true) { + try { + if (newBW[i]==128.00) { + m_ifDistributor->setup("BW-NARROW"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-NARROW")); + } + if (newBW[i]==420.00) { + m_ifDistributor->setup("BW-MEDIUM"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-MEDIUM")); + } + if (newBW[i]==500.00) { + m_ifDistributor->setup("BW-WIDE"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-WIDE")); + } + if (newBW[i]==512.00) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_FILTER_BW-UNFILTERED")); + } + } + catch (...) { + _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCommandLine::setAttenuation()"); + impl.log(LM_ERROR); + } + }*/ + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); + } + } + + if (m_stationMEDNT == true) { + try { + Message request = Command::setSection(i, newFreq[i], newBW[i], newFeed[i], newPol[i], newSR[i], newBins[i]); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + for (int j=0;j<m_sectionsNumber;j++) + m_sampleRate[j]=newSR[i]; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR[i]; + if (m_stokes==true) { + m_frequency[2*i]=newFreq[i]; + m_frequency[2*i+1]=newFreq[i]; + m_bandWidth[2*i]=newBW[i]; + m_bandWidth[2*i+1]=newBW[i]; + } + else { + m_frequency[i]=newFreq[i]; + m_bandWidth[i]=newBW[i]; + } + m_feedNumber[i]=newFeed[i]; + m_bins[i]=newBins[i]; + m_polarization[i]=newPol[i]; + IRA::CString temp; + if (m_polarization[i]==Backends::BKND_LCP) + temp="LCP"; + else if (m_polarization[i]==Backends::BKND_RCP) + temp="RCP"; + else + temp="FULL_STOKES"; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",i,m_frequency[i],newBW[i],m_feedNumber[i], (const char *)temp,newSR[i],m_bins[i])); + if (m_CK==true) { + if (newBW[i]==420.00) + filter=300.00; + if (newBW[i]==1500.00) + filter=1250.00; + if (newBW[i]==2300.00) + filter=2350.00; + if (newBW[i] == 420.00 || newBW[i] == 1500.00 || newBW[i] == 2300.00) { + for (j=0; j<m_inputsNumber; j++) { + m_totalPower->setSection(j,-1, filter, -1, -1, -1, -1); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",i,filter)); + } + } + } + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); + } + } + } + } } void CCommandLine::getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, diff --git a/Common/Servers/TotalPower/src/CommandLine.cpp b/Common/Servers/TotalPower/src/CommandLine.cpp index bfee25488..7ec0519e9 100644 --- a/Common/Servers/TotalPower/src/CommandLine.cpp +++ b/Common/Servers/TotalPower/src/CommandLine.cpp @@ -488,7 +488,10 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const WORD len; char sBuff[SENDBUFFERSIZE]; char rBuff[RECBUFFERSIZE]; - double newBW,newAtt,newSR; + std::vector<double> newBW(m_sectionsNumber); + std::vector<double> newAtt(m_sectionsNumber); + std::vector<double> newSR(m_sectionsNumber); + size_t minSection, maxSection; if (getIsBusy()) { _EXCPT(BackendsErrors::BackendBusyExImpl,impl,"CCommandLine::setConfiguration()"); throw impl; @@ -499,94 +502,108 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const impl.setReason("the section identifier is out of range"); throw impl; } + minSection=inputId; + maxSection=minSection+1; + } + else if (inputId==-1) + { + minSection=0; + maxSection=m_sectionsNumber; } else { _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCommandLine::setConfiguration()"); impl.setReason("the section identifier is out of range"); throw impl; } - if (bw>=0) { // the user ask for a new value - if (bw<MIN_BAND_WIDTH) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("bandWidth"); - impl.setValueLimit(MIN_BAND_WIDTH); - throw impl; - } - else if (bw>MAX_BAND_WIDTH) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("bandWidth"); - impl.setValueLimit(MAX_BAND_WIDTH); - throw impl; + + for(size_t i=minSection; i<maxSection; i++) + { + if (bw>=0) { // the user ask for a new value + if (bw<MIN_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MIN_BAND_WIDTH); + throw impl; + } + else if (bw>MAX_BAND_WIDTH) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("bandWidth"); + impl.setValueLimit(MAX_BAND_WIDTH); + throw impl; + } + newBW[i]=bw; } - newBW=bw; - } - else { // else keep the present value - newBW=m_bandWidth[inputId]; - } - if (sr>=0) {// the user ask for a new value - if (sr>MAX_SAMPLE_RATE) { - _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); - impl.setValueName("sampleRate"); - impl.setValueLimit(MAX_SAMPLE_RATE); - throw impl; + else { // else keep the present value + newBW[i]=m_bandWidth[i]; } - newSR=sr; - } - else { - newSR=m_sampleRate[inputId]; + if (sr>=0) {// the user ask for a new value + if (sr>MAX_SAMPLE_RATE) { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl,impl,"CCommandLine::setConfiguration()"); + impl.setValueName("sampleRate"); + impl.setValueLimit(MAX_SAMPLE_RATE); + throw impl; + } + newSR[i]=sr; + } + else { + newSR[i]=m_sampleRate[i]; + } + newAtt[i]=m_attenuation[i]; } - newAtt=m_attenuation[inputId]; if (!checkConnection()) { _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::setConfiguration()"); } - len=CProtocol::setConfiguration(sBuff,inputId,m_input[inputId],newAtt,newBW,m_boards); // get the buffer - if ((res=sendBuffer(sBuff,len))==SUCCESS) { - res=receiveBuffer(rBuff,RECBUFFERSIZE); - } - if (res>0) { // operation was ok. - if (!CProtocol::isAck(rBuff)) { - _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::setConfiguration()"); - } - m_bandWidth[inputId]=newBW; - for (int j=0;j<m_sectionsNumber;j++) m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others - m_commonSampleRate=newSR; - m_integration=0; - // log warning about configuration that are ignored. - if (freq>=0) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_FREQUENCY")); - } - if (feed>=0) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_FEED")); - } - if (bins>=0) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_BINS_NUMBER")); + for(size_t i=minSection; i<maxSection; i++) + { + len=CProtocol::setConfiguration(sBuff,i,m_input[i],newAtt[i],newBW[i],m_boards); // get the buffer + if ((res=sendBuffer(sBuff,len))==SUCCESS) { + res=receiveBuffer(rBuff,RECBUFFERSIZE); } - if (pol>=0) { - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_POLARIZATION")); + if (res>0) { // operation was ok. + if (!CProtocol::isAck(rBuff)) { + _THROW_EXCPT(BackendsErrors::NakExImpl,"CCommandLine::setConfiguration()"); + } + m_bandWidth[i]=newBW[i]; + for (int j=0;j<m_sectionsNumber;j++) m_sampleRate[j]=newSR[i]; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR[i]; + m_integration=0; + // log warning about configuration that are ignored. + if (freq>=0) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_FREQUENCY")); + } + if (feed>=0) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_FEED")); + } + if (bins>=0) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_BINS_NUMBER")); + } + if (pol>=0) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_WARNING,"CANNOT_CHANGE_POLARIZATION")); + } + IRA::CString temp; + if (m_polarization[i]==Backends::BKND_LCP) { //FULL STOKE not possible.... + temp="LCP"; + } + else { + temp="RCP"; + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",i,m_frequency[i],newBW[i],m_feedNumber[i], + (const char *)temp,newSR[i],m_bins[i])); } - IRA::CString temp; - if (m_polarization[inputId]==Backends::BKND_LCP) { //FULL STOKE not possible.... - temp="LCP"; + else if (res==FAIL) { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); + dummy.setCode(m_Error.getErrorCode()); + dummy.setDescription((const char*)m_Error.getDescription()); + m_Error.Reset(); + _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::setConfiguration()"); + } + else if (res==WOULDBLOCK) { + _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::setConfiguration()"); } else { - temp="RCP"; + _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::setConfiguration()"); } - ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], - (const char *)temp,newSR,m_bins[inputId])); - } - else if (res==FAIL) { - _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl,dummy,m_Error); - dummy.setCode(m_Error.getErrorCode()); - dummy.setDescription((const char*)m_Error.getDescription()); - m_Error.Reset(); - _THROW_EXCPT_FROM_EXCPT(ComponentErrors::SocketErrorExImpl,dummy,"CCommandLine::setConfiguration()"); - } - else if (res==WOULDBLOCK) { - _THROW_EXCPT(ComponentErrors::TimeoutExImpl,"CCommandLine::setConfiguration()"); } - else { - _THROW_EXCPT(BackendsErrors::ConnectionExImpl,"CCommandLine::setConfiguration()"); - } } void CCommandLine::getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, -- GitLab From 00d690fe0985b3f2ef45d2d208dc665aa43ce751 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 4 Apr 2024 08:12:00 +0000 Subject: [PATCH 098/150] Fix #839, set a longer timeout for SRT minor servos setup and park --- SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h | 4 ++-- SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h index c2af90348..031e058a8 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -11,8 +11,8 @@ #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" -// TODO: fine-tune this with the real hardware. The correct procedure can easily exceed this timeout, it should be increased accordingly. -#define PARK_TIMEOUT 60 +// Same timeout as the one defined for the SETUP procedure +#define PARK_TIMEOUT 120 class SRTMinorServoBossCore; diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h index 747c458a4..2a1f4297f 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -11,8 +11,8 @@ #include <ComponentErrors.h> #include "SRTMinorServoBossCore.h" -// TODO: fine-tune this with the real hardware. The correct procedure can easily exceed this timeout, it should be increased accordingly. -#define SETUP_TIMEOUT 60 +// GFR from -160 to 160 takes approximately 110 seconds +#define SETUP_TIMEOUT 120 class SRTMinorServoBossCore; -- GitLab From 3272ed2f9e495d7e0a1323019f6768e355c31ace Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 9 Apr 2024 12:30:53 +0200 Subject: [PATCH 099/150] Updated CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f12d48bf9..494cfef17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -103,6 +103,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/ This command must be placed in the <schedule_name>.bck file in order to work properly. issue #619 - Active surface components are now capable of changing look-up tables on the fly via the `asSetLUT` command issue #806 Added support for the C-band receiver at the SRT + project #2 - Completed integration of new SRT Minor Servos ## Fixed ## Changed -- GitLab From 7e45a034668538bf0cfde31a040f93a8eda4c183 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 9 Apr 2024 12:31:53 +0200 Subject: [PATCH 100/150] SRT new Minor Servos (#852) * Fix #672, fix #637, some improvements for the SRTMinorServoCommandLibrary (#674) Fix #672, wrote all the commands in capital letters Fix #673, added the OFFSET command to the library Also, fixed changed the start_time parameter to be written as an integer * Fix #646, wrote a Python wrapper for the `SRTMinorServoCommandLibrary` (#650) * Fix #646, wrote a Python wrapper for the `SRTMinorServoCommandLibrary` * Fix #646, Added a python module that uses the wrapper library It has been commented in order to replicate the behavior in any future python wrapped C++ library * Fix #646, fixed a few small things regarding some include and the Makefile * Fix #646, added documentation about the Python wrapper Also, fixed some small inconsistencies with the new C++ implementation * Issue #637, removed an unneeded include statement * Fix #684, fixed tests for the SRTMinorServoCommandLibrary and its python wrapper (#685) * Fix #771, first implementation of parseAnswer and related tests (#772) * Issue #771, first implementation of parseAnswer and related tests Right now the function is not robust, it should check for errors in the answer format * Fix #771, complete implementation of `parseAnswer` function Tests were updated as well * Moved old SRT Minor Servos to another directory * Fix #782, wrote a singleton socket class for SRT new minor servos (#783) * Fix #782, wrote a singleton socket class for SRT new minor servos This is the first implementation, connection checks for the socket should be added in order to avoid some disconnection errors * Fix #782, improved SRT MS singleton socket and tests The socket is now set to non-blocking, therefore some checks were added in order to accomodate to this change. Fixed a wrong behavior regarding the singleton design pattern. Previously it was possible to call the getInstance(ip_address, port) method multiple times with multiple addresses, but only the first instance was returned, meaning that only the first instance was actually opened to the correct IP address and port. Now if the user tries to open a second socket on a different IP address and port an exception is raised. * Updated the SRTMinorServoCommandLibrary * Added a test for SRP Program Track * Some minor fixes for the SRTMinorServoCommandLibrary * Updated SRPProgramTrackTest * Improved SRP tests * Updated SRPProgramTrackTest * Updated SRPProgramTrackTest Added a script to plot trajectories * Added .gitignore in order to ignore test folders * Updated SRPProgramTrackTest Added a separate trajectories test * Updated SRPProgramTrackTest.cpp * Fix SRTMinorServoCommandLibrary programTrack start_time issue * Minor fixes for SRTMinorServoCommandLibrary * Updated SRP and Derotator programTrack tests * Small update for plotting scripts * Updated SRPProgramTrackTest.cpp * First skeleton of combined SRP and Derotator tests * Added sine wave tests * Added combined test and plotting script * Included rotations in sine wave tests * Updated new minor servos tests * Minor Servos update * Some updates * Updated CDB and schemas * Updated SRTMinorServoLibraries * Updated SRTMinorServoSocket and tests * Commented new interfaces * Updated CDB schemas and configurations * Updated SRTMinorServo interfaces * Updated SRT MinorServo Libraries and tests * Commented new SRT minor servo files. Commented pretty much every file. I will perform some more tests with the simulators before tweaking the system to be used with the current Leonardo minor servo system status. * Fixed a couple bugs in SRTMinorServoBoss component * Updated procedures in order to use new minor servos * Fixes STOW command for the gregorian cover * Minor improvement on the MS motion status DevIO * Fix #834, avoided Leonardo Minor Servo SETUP command * Updated CDBs, getting ready for production * Updates for SRTMinorServos * Updated SRTMinorServo setup and park procedures * Updated SRTMinorServoLibrary * Updates for the SRTMinorServos * First working implementation with the actual hardware Libraries and components were slightly reworked and tweaked in order to work correctly with the current hardware status. The gregorian cover movement was took out of the setup and park procedures, since it is currently locked in place and won't move. We will add it again later. All the currently unavailable minor servos components were took out from the Boss control by commenting them. They can still be accessed via objexp and check their status. The GFR was took out as well since it keeps blocking during movements. For now it has to be moved manually, it can be done via objexp as well, but resetting the errors from VBrain. I rewrote the SRPProgramTrackTest.cpp in order to test the behavior of the SRP with new libraries. The test acts just like before. Other tests need to be reworked, keeping the same logic behind. Further investigation must be put into the scanning procedure, in particular when the recorder retrieves the coordinates. * Updated logging for SRTMinorServos * Updated SRTMinorServo socket disconnect logging * Fixed small bug in servos axes naming, improved logging * Removed most of get_sync calls * Fixed a couple more things * Refactored SRTMinorServos * Updated SRTMinorServoAnswerMap socket handling * Added some log for the SRTMinorServoAnswerMap * Updated branch * Updated AntennaBoss component retrieving method * Updated CCG procedure * Fix #839, set a longer timeout for SRT minor servos setup and park * Updated CHANGELOG.md --- CHANGELOG.md | 1 + .../include/MinorServoBossTextClient.h | 4 +- .../MinorServoBossTextClient/src/Makefile | 3 + .../src/MinorServoBossTextClient.cpp | 2 +- .../MACI/Components/MINORSERVO/Boss/Boss.xml | 9 +- .../MACI/Components/MINORSERVO/GFR/GFR.xml | 7 +- .../MACI/Components/MINORSERVO/M3R/M3R.xml | 5 +- .../MACI/Components/MINORSERVO/PFP/PFP.xml | 4 +- .../MACI/Components/MINORSERVO/SRP/SRP.xml | 8 +- .../MinorServoBossContainer.xml | 31 - .../GFR/LookupTables/LookupTables.xml | 32 + .../MinorServo/GFR/Properties/Properties.xml | 24 + .../M3R/LookupTables/LookupTables.xml | 18 + .../MinorServo/M3R/Properties/Properties.xml | 24 + .../PFP/LookupTables/LookupTables.xml | 33 + .../MinorServo/PFP/Properties/Properties.xml | 36 + .../SRP/LookupTables/LookupTables.xml | 125 ++ .../MinorServo/SRP/Properties/Properties.xml | 47 + .../DataBlock/PointingModel/PointingModel.xml | 46 +- .../CalibrationTool/CalibrationTool.xml | 2 +- .../alma/MANAGEMENT/FitsZilla/FitsZilla.xml | 2 +- SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- SRT/CDB/alma/MANAGEMENT/Point/Point.xml | 2 +- SRT/CDB/alma/MINORSERVO/Boss/Boss.xml | 206 +-- SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 373 +---- SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 374 +---- SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 381 +---- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 382 +---- SRT/CDB/alma/MINORSERVO/Socket/Socket.xml | 12 + .../StationProcedures/StationProcedures.xml | 38 +- .../MACI/Components/MINORSERVO/Boss/Boss.xml | 9 +- .../MACI/Components/MINORSERVO/GFR/GFR.xml | 7 +- .../MACI/Components/MINORSERVO/M3R/M3R.xml | 5 +- .../MACI/Components/MINORSERVO/PFP/PFP.xml | 4 +- .../MACI/Components/MINORSERVO/SRP/SRP.xml | 8 +- .../MinorServoBossContainer.xml | 31 - .../GFR/LookupTables/LookupTables.xml | 32 + .../MinorServo/GFR/Properties/Properties.xml | 24 + .../M3R/LookupTables/LookupTables.xml | 18 + .../MinorServo/M3R/Properties/Properties.xml | 24 + .../PFP/LookupTables/LookupTables.xml | 33 + .../MinorServo/PFP/Properties/Properties.xml | 36 + .../SRP/LookupTables/LookupTables.xml | 125 ++ .../MinorServo/SRP/Properties/Properties.xml | 47 + .../DataBlock/PointingModel/PointingModel.xml | 46 +- .../CalibrationTool/CalibrationTool.xml | 2 +- .../alma/MANAGEMENT/FitsZilla/FitsZilla.xml | 2 +- .../CDB/alma/MANAGEMENT/Gavino/Gavino.xml | 2 +- .../CDB/alma/MANAGEMENT/Point/Point.xml | 2 +- .../CDB/alma/MINORSERVO/Boss/Boss.xml | 206 +-- .../CDB/alma/MINORSERVO/GFR/GFR.xml | 373 +---- .../CDB/alma/MINORSERVO/M3R/M3R.xml | 374 +---- .../CDB/alma/MINORSERVO/PFP/PFP.xml | 381 +---- .../CDB/alma/MINORSERVO/SRP/SRP.xml | 382 +---- .../CDB/alma/MINORSERVO/Socket/Socket.xml | 13 + .../StationProcedures/StationProcedures.xml | 1 + .../SRTMinorServoInterface/idl/.gitignore | 1 + .../idl/SRTMinorServo.idl | 283 ++++ .../idl/SRTMinorServoBoss.idl | 86 ++ .../idl/SRTMinorServoCommon.midl | 102 ++ .../SRTMinorServoInterface/src/Makefile | 64 + .../SRTMinorServoInterface/test/Makefile | 92 ++ .../test/external/__init__.py | 0 .../test/functional/__init__.py | 0 .../test/functional/commands}/__init__.py | 0 .../functional/commands/test_servoSetup.py | 62 + .../commands/test_setServoASConfiguration.py | 44 + .../test_setServoElevationTracking.py | 46 + .../commands/test_setServoOffset.py | 38 + .../test/functional/test_clearUserOffset.py | 58 + .../test/functional/test_getAxesInfo.py | 92 ++ .../test/functional/test_getAxesPosition.py | 87 ++ .../functional/test_getCentralScanPosition.py | 58 + .../test/functional/test_position.py | 126 ++ .../test/functional/test_scan.py | 430 ++++++ .../functional/test_setASConfiguration.py | 56 + .../functional/test_setElevationTracking.py | 56 + .../test/functional/test_systemOffset.py | 95 ++ .../test/functional/test_userOffset.py | 96 ++ .../test/pyunit/__init__.py | 0 .../SRTMinorServoInterface}/test/unittest.cpp | 0 .../include/PySRTMinorServoCommandLibrary.h | 130 ++ .../include/SRTMinorServoCommandLibrary.h | 123 +- .../include/SRTMinorServoContainers.h | 894 +++++++++++ .../include/SRTMinorServoSocket.h | 203 +++ .../include/SRTMinorServoTestingSocket.h | 25 + .../include/SRTMinorServoUtils.h | 144 ++ .../SRTMinorServoLibrary/src/Makefile | 29 +- .../src/PySRTMinorServoCommandLibrary.cpp | 69 + .../src/SRTMinorServoCommandLibrary.cpp | 142 +- .../src/SRTMinorServoCommandLibrary/README.md | 19 + .../SRTMinorServoCommandLibrary/__init__.py | 17 + .../src/SRTMinorServoSocket.cpp | 237 +++ .../SRTMinorServoLibrary/tests/.discos | 5 + .../SRTMinorServoLibrary/tests/Makefile | 97 ++ .../tests/SRTMinorServoCommandLibraryTest.cpp | 108 ++ .../tests/SRTMinorServoSocketTest.cpp | 214 +++ .../tests/external/__init__.py | 0 .../tests/functional/__init__.py | 0 .../tests/pyunit/__init__.py | 102 ++ .../SRTScripts/app-defaults/discosStartup.xml | 11 +- .../app-defaults/simulationStartup.xml | 9 - .../config/CDB/schemas/SRTMinorServo.xsd | 88 ++ .../config/CDB/schemas/SRTMinorServoBoss.xsd | 83 ++ .../CDB/schemas/SRTMinorServoLookupTable.xsd | 52 + .../CDB/schemas/SRTMinorServoProperties.xsd | 35 + .../SRTMinorServoSocketConfiguration.xsd | 32 + SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 317 ++++ .../include/SRTMinorServoBossCore.h | 437 ++++++ .../include/SRTMinorServoBossImpl.h | 548 +++++++ .../include/SRTMinorServoCommon.h | 38 + .../SRTMinorServo/include/SRTMinorServoImpl.h | 745 ++++++++++ .../include/SRTMinorServoParkThread.h | 78 + .../include/SRTMinorServoScanThread.h | 96 ++ .../include/SRTMinorServoSetupThread.h | 87 ++ .../include/SRTMinorServoStatusThread.h | 87 ++ .../include/SRTMinorServoTrackingThread.h | 85 ++ .../SRTMinorServo/include/SuppressWarnings.h | 13 + SRT/Servers/SRTMinorServo/src/Makefile | 66 +- .../src/SRTBaseMinorServoImpl.cpp | 811 ++++++++++ .../src/SRTGenericMinorServoImpl.cpp | 13 + .../src/SRTMinorServoBossCore.cpp | 1316 +++++++++++++++++ .../src/SRTMinorServoBossImpl.cpp | 422 ++++++ .../src/SRTMinorServoParkThread.cpp | 93 ++ .../src/SRTMinorServoScanThread.cpp | 237 +++ .../src/SRTMinorServoSetupThread.cpp | 255 ++++ .../src/SRTMinorServoStatusThread.cpp | 112 ++ .../src/SRTMinorServoTrackingThread.cpp | 142 ++ .../src/SRTProgramTrackMinorServoImpl.cpp | 173 +++ SRT/Servers/SRTMinorServo/src/_cover.py | 42 + SRT/Servers/SRTMinorServo/test/.gitignore | 3 + .../test/CombinedProgramTrackTest.cpp | 532 +++++++ .../test/DerotatorProgramTrackTest.cpp | 495 +++++++ SRT/Servers/SRTMinorServo/test/Makefile | 38 +- .../SRTMinorServo/test/ReadStatusOnlyTest.cpp | 216 +++ .../test/SRPProgramTrackTest.cpp | 632 ++++++++ .../SRTMinorServo/test/TESTS/plotCombined.py | 112 ++ .../test/TESTS/plotDerotatorTrajectory.py | 47 + .../test/TESTS/plotSRPTrajectories.py | 134 ++ .../config/CDB/schemas/MinorServo.xsd | 0 .../doc/derotator/derotator.pdf | Bin .../doc/derotator/icd.pdf | Bin .../doc/derotator/icd_bus.pdf | Bin .../doc/derotator/sensor.pdf | Bin .../doc/minor_servo/gimbal.pdf | Bin .../doc/minor_servo/minor_servo_system.pdf | Bin .../include/DerotatorImpl.h | 0 .../include/DevIOASConfiguration.h | 0 .../include/DevIOActualSetup.h | 0 .../include/DevIOElevationTrack.h | 0 .../include/DevIOMotionInfo.h | 0 .../include/DevIOParking.h | 0 .../include/DevIOReady.h | 0 .../include/DevIOScanActive.h | 0 .../include/DevIOScanning.h | 0 .../include/DevIOStarting.h | 0 .../include/DevIOTracking.h | 0 .../include/MSBossConfiguration.h | 0 .../include/MSBossPublisher.h | 0 .../include/MSParameters.h | 0 .../include/MinorServoBossImpl.h | 0 .../include/ParkThread.h | 0 .../include/PdoubleSeqDevIO.h | 0 .../include/RequestDispatcher.h | 0 .../include/ScanThread.h | 0 .../include/SetupThread.h | 0 .../include/SocketListener.h | 0 .../include/SubsystemStatusDevIO.h | 0 .../include/SubsystemVStatusDevIO.h | 0 .../include/TrackingThread.h | 0 .../include/WPServoImpl.h | 0 .../include/WPServoSocket.h | 0 .../include/WPServoTalker.h | 0 .../include/WPStatusDevIO.h | 0 .../include/WPStatusUpdater.h | 0 .../include/WPUtils.h | 0 .../include/libCom.h | 0 .../include/macros.def | 0 .../include/utils.h | 0 .../src/MSBossConfiguration.cpp | 0 .../src/MSBossPublisher.cpp | 0 SRT/Servers/SRTOldMinorServo/src/Makefile | 75 + .../src/MinorServoBossImpl.cpp | 0 .../src/ParkThread.cpp | 0 .../src/RequestDispatcher.cpp | 0 .../src/ScanThread.cpp | 0 .../src/SetupThread.cpp | 0 .../src/SocketListener.cpp | 0 .../src/TrackingThread.cpp | 0 .../src/WPServoImpl.cpp | 0 .../src/WPServoSocket.cpp | 0 .../src/WPServoTalker.cpp | 0 .../src/WPStatusUpdater.cpp | 0 .../src/WPUtils.cpp | 0 .../src/libCom.cpp | 0 .../src/utils.cpp | 0 SRT/Servers/SRTOldMinorServo/test/Makefile | 90 ++ .../test/external/__init__.py | 0 .../test/functional/__init__.py | 0 .../test/functional/test_container_crash.py | 0 .../test/functional/test_failure.py | 0 .../test/functional/test_setup.py | 0 .../test_setup_after_manual_movement.py | 0 .../test/no_auto/Makefile | 0 .../test/no_auto/commissioning/05082013.rst | 0 .../SRP_linear/plot_positions.py | 0 .../SRP_linear/test_SRP_linear_movement.py | 0 .../test/no_auto/commissioning/TODO.rst | 0 .../test/no_auto/commissioning/clean_test.py | 0 .../no_auto/commissioning/command_input.py | 0 .../getAxesPosition/test_getAxesPosition.py | 0 .../test_getAxesPositionSpeed.py | 0 .../getFromHistory/test_getFromHistory.py | 0 .../offsets/testSRP_after_startFocusScan.py | 0 .../offsets/testSRP_before_startFocusScan.py | 0 .../test/no_auto/commissioning/parameters.py | 0 .../no_auto/commissioning/plot_positions.py | 0 .../property/property_sampler.py | 0 .../sampling_time/test_getstatus_speed.py | 0 .../scan/testSRP_checkFocusScan.py | 0 .../scan/testSRP_checkMinPositioninTime.py | 0 .../scan/testSRP_multiple_startFocusScan.py | 0 .../scan/testSRP_pointingDuringScan.py | 0 .../scan/testSRP_startFocusScan.py | 0 .../scan/testSRP_startFocusScanNow.py | 0 .../commissioning/scan/testSRP_stopScan.py | 0 .../timed_pos/timed_positions1SRP.py | 0 .../timed_pos/timed_positions2PFP.py | 0 .../timed_pos/timed_positions2SRP.py | 0 .../tracking/test_SRP_elevation_tracking.py | 0 .../performances/get_axes_positions.py | 0 .../test/no_auto/real2virtual.c | 0 .../test/no_auto/send_command.py | 0 .../test/no_auto/simple_talk.py | 0 .../no_auto/srp_refsystems/hexlib/Makefile | 0 .../no_auto/srp_refsystems/hexlib/hexdata.txt | 0 .../no_auto/srp_refsystems/hexlib/hexlib.c | 0 .../no_auto/srp_refsystems/hexlib/hexlib.h | 0 .../srp_refsystems/hexlib/real2virtual.c | 0 .../srp_refsystems/hexlib/virtual2real.c | 0 .../no_auto/srp_refsystems/srp_refsystems.pyw | 0 .../test/no_auto/virtual2real.c | 0 .../test/no_auto/wpservo_test.py | 0 .../SRTOldMinorServo/test/pyunit/__init__.py | 0 .../SRTOldMinorServo/test/unittest.cpp | 6 + SystemMake/Makefile | 2 +- 246 files changed, 14385 insertions(+), 3470 deletions(-) delete mode 100644 SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml create mode 100644 SRT/CDB/alma/MINORSERVO/Socket/Socket.xml delete mode 100644 SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml create mode 100644 SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml create mode 100644 SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl create mode 100644 SRT/Interfaces/SRTMinorServoInterface/src/Makefile create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/Makefile rename SRT/{Servers/SRTMinorServo => Interfaces/SRTMinorServoInterface}/test/external/__init__.py (100%) rename SRT/{Servers/SRTMinorServo => Interfaces/SRTMinorServoInterface}/test/functional/__init__.py (100%) rename SRT/{Servers/SRTMinorServo/test/pyunit => Interfaces/SRTMinorServoInterface/test/functional/commands}/__init__.py (100%) create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py create mode 100644 SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py rename SRT/{Servers/SRTMinorServo => Interfaces/SRTMinorServoInterface}/test/unittest.cpp (100%) create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py create mode 100644 SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/.discos create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/Makefile create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py create mode 100644 SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd create mode 100644 SRT/Servers/SRTMinorServo/include/MSDevIOs.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h create mode 100644 SRT/Servers/SRTMinorServo/include/SuppressWarnings.h create mode 100644 SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp create mode 100644 SRT/Servers/SRTMinorServo/src/_cover.py create mode 100644 SRT/Servers/SRTMinorServo/test/.gitignore create mode 100644 SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp create mode 100755 SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py create mode 100755 SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py create mode 100755 SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/config/CDB/schemas/MinorServo.xsd (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/derotator.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/icd.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/icd_bus.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/derotator/sensor.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/minor_servo/gimbal.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/doc/minor_servo/minor_servo_system.pdf (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DerotatorImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOASConfiguration.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOActualSetup.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOElevationTrack.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOMotionInfo.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOParking.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOReady.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOScanActive.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOScanning.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOStarting.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/DevIOTracking.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSBossConfiguration.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSBossPublisher.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MSParameters.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/MinorServoBossImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/ParkThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/PdoubleSeqDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/RequestDispatcher.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/ScanThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SetupThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SocketListener.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SubsystemStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/SubsystemVStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/TrackingThread.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoImpl.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoSocket.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPServoTalker.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPStatusDevIO.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPStatusUpdater.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/WPUtils.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/libCom.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/macros.def (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/include/utils.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MSBossConfiguration.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MSBossPublisher.cpp (100%) create mode 100644 SRT/Servers/SRTOldMinorServo/src/Makefile rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/MinorServoBossImpl.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/ParkThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/RequestDispatcher.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/ScanThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/SetupThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/SocketListener.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/TrackingThread.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoImpl.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoSocket.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPServoTalker.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPStatusUpdater.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/WPUtils.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/libCom.cpp (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/src/utils.cpp (100%) create mode 100644 SRT/Servers/SRTOldMinorServo/test/Makefile create mode 100644 SRT/Servers/SRTOldMinorServo/test/external/__init__.py create mode 100644 SRT/Servers/SRTOldMinorServo/test/functional/__init__.py rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_container_crash.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_failure.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_setup.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/functional/test_setup_after_manual_movement.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/05082013.rst (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/SRP_linear/plot_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/TODO.rst (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/clean_test.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/command_input.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/parameters.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/plot_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/property/property_sampler.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_startFocusScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/scan/testSRP_stopScan.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/performances/get_axes_positions.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/real2virtual.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/send_command.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/simple_talk.py (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/Makefile (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexdata.txt (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexlib.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/hexlib.h (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/real2virtual.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/hexlib/virtual2real.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/srp_refsystems/srp_refsystems.pyw (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/virtual2real.c (100%) rename SRT/Servers/{SRTMinorServo => SRTOldMinorServo}/test/no_auto/wpservo_test.py (100%) create mode 100644 SRT/Servers/SRTOldMinorServo/test/pyunit/__init__.py create mode 100644 SRT/Servers/SRTOldMinorServo/test/unittest.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index df21abc5a..9fd35d937 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -103,6 +103,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/ This command must be placed in the <schedule_name>.bck file in order to work properly. issue #619 - Active surface components are now capable of changing look-up tables on the fly via the `asSetLUT` command issue #806 Added support for the C-band receiver at the SRT + project #2 - Completed integration of new SRT Minor Servos ## Fixed ## Changed diff --git a/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h b/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h index 97cdc5198..3656b750c 100644 --- a/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h +++ b/Common/Clients/MinorServoBossTextClient/include/MinorServoBossTextClient.h @@ -78,10 +78,12 @@ /* define name and component interface */ /* ********************************** */ #define COMPONENT_NAME "MINORSERVO/Boss" /* the name of the instantiation of the component */ -#define COMPONENT_INTERFACE_TPYE "IDL:alma/MinorServo/MinorServoBoss:1.0" /* the type of the interface */ #define COMPONENT_IDL_MODULE MinorServo /* the IDL module that contains the component interface */ #define COMPONENT_IDL_INTERFACE MinorServoBoss /* the IDL interface of the component */ #define COMPONENT_SMARTPOINTER MinorServoBoss_var /* the component type */ +#ifndef COMPONENT_INTERFACE_TPYE + #define COMPONENT_INTERFACE_TPYE "IDL:alma/MinorServo/MinorServoBoss:1.0" +#endif /* ********************************** */ /* define user input command style */ diff --git a/Common/Clients/MinorServoBossTextClient/src/Makefile b/Common/Clients/MinorServoBossTextClient/src/Makefile index 39d35e743..246fd626e 100644 --- a/Common/Clients/MinorServoBossTextClient/src/Makefile +++ b/Common/Clients/MinorServoBossTextClient/src/Makefile @@ -69,6 +69,9 @@ _tui_MinorServoBossTextClient_LIBS = MinorServoBossStubs IRALibrary Managme TextWindowLibrary ClientErrors ComponentErrors ManagementErrors MinorServoErrors AntennaDefinitionsStubs \ MinorServoDefinitionsStubs +ifeq ($(STATION),SRT) + MinorServoBossTextClient_CFLAGS = -DCOMPONENT_INTERFACE_TPYE="\"IDL:alma/MinorServo/SRTMinorServoBoss:1.0\"" +endif SCRIPTS = minorservoBossTui diff --git a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp index 9f490e5ba..c90158e95 100644 --- a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp +++ b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp @@ -289,7 +289,7 @@ int main(int argc, char *argv[]) { status_box->setStatusLook(Management::MNG_OK,CStyle(BLACK_GREEN,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_WARNING,CStyle(BLACK_YELLOW,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_FAILURE,CStyle(BLACK_RED,CStyle::BOLD)); - _TW_SET_COMPONENT(motionInfo_field,18,3,23,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(motionInfo_field,18,3,30,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); /* ****************************************************************** */ _TW_SET_COMPONENT(userInput,0,WINDOW_HEIGHT-6,WINDOW_WIDTH-1,1,USER_INPUT_COLOR_PAIR,USER_INPUT_STYLE,NULL); diff --git a/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml b/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml index 2705230c3..b7a0bfd41 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Boss" - Code="MinorServoBossImpl" + Code="SRTMinorServoBossImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/MinorServoBoss:1.0" - Container="MinorServoBossContainer" - Default="true" - + Type="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" + Container="MinorServoContainer" + Default="true" /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml b/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml index ed2c44f77..23da6db86 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="GFR" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" - Default="true" - + Default="true" /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml b/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml index 8a01ba209..94efe94c9 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="M3R" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" Default="true" - /> diff --git a/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml b/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml index d75a83d75..a5801b66d 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml @@ -6,9 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="PFP" - Code="WPServoImpl" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" Default="true" diff --git a/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml b/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml index 4534c3d82..b957480d6 100644 --- a/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml @@ -5,11 +5,11 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Name="SRP" - Code="WPServoImpl" + Name="SRP" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" - Default="true" + Default="true" /> diff --git a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml deleted file mode 100644 index 64fcda240..000000000 --- a/SRT/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<Container xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - ImplLang="cpp" - Recovery="false"> - - <Autoload> - <cdb:e string="baci" /> - </Autoload> - - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> - -</Container> - - - diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml new file mode 100644 index 000000000..00e681dfa --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -0,0 +1,32 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG> + <CCG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG_ASACTIVE> + <KKG> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG> + <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG_ASACTIVE> + <WWG> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG> + <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG_ASACTIVE> + <QQG> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG> + <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG_ASACTIVE> + <TRI> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI> + <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI_ASACTIVE> + <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> + <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> + + <!-- BWG - GFR open --> + <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml new file mode 100644 index 000000000..fccec0b0f --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCB> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0</coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..086b3785b --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <LLP> <axis>TX</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>TZ</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></LLP> + + <PPP> <axis>TX</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>TZ</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PPP> + + <PLP> <axis>TX</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>TZ</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PLP> + + <HHP> <axis>TX</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>TZ</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>RTHETA</axis> <coefficients>0 </coefficients></HHP> + + <XKP> <axis>TX</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>TZ</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>RTHETA</axis> <coefficients>0 </coefficients></XKP> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml new file mode 100644 index 000000000..688491e30 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -0,0 +1,36 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>X_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_X</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_SLAVE</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_SLAVE</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RTHETA</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..6869a5c77 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -0,0 +1,125 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG> + <CCG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCG> + <CCG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCG> + <CCG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCG> + <CCG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCG> + <CCG> <axis>RZ</axis><coefficients>0 </coefficients></CCG> + + <CCG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCG_ASACTIVE> + + <KKG> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG> + <KKG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></KKG> + <KKG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></KKG> + <KKG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></KKG> + <KKG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></KKG> + <KKG> <axis>RZ</axis><coefficients>0 </coefficients></KKG> + + <KKG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></KKG_ASACTIVE> + + <WWG> <axis>TX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TZ</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RZ</axis><coefficients>0 </coefficients></WWG> + + <WWG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + + <QQG> <axis>TX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TZ</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RZ</axis><coefficients>0 </coefficients></QQG> + + <QQG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + + <TRI> <axis>TX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TZ</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RZ</axis><coefficients>0 </coefficients></TRI> + + <TRI_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + + <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> + <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> + + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> + + <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> + <CCB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCB> + <CCB> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCB> + <CCB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCB> + <CCB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCB> + <CCB> <axis>RZ</axis><coefficients>0 </coefficients></CCB> + + <CCB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TZ</axis><coefficients>91.5590595452,-16.4202062811,1.16941963489,-0.040640240455,0.000733782714288,-6.62393455442e-06,2.36410838911e-08 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCB_ASACTIVE> + + <XB> <axis>TX</axis><coefficients>-1.5 </coefficients></XB> + <XB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></XB> + <XB> <axis>TZ</axis><coefficients>7.92754535681,-1.73279985542,0.147346047014,-0.00516934108597,7.69094654954e-05,-4.0697957632e-07 </coefficients></XB> + <XB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></XB> + <XB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></XB> + <XB> <axis>RZ</axis><coefficients>0 </coefficients></XB> + + <XB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TZ</axis><coefficients>-38.3143893309,4.30888128547,-0.18265795755,0.00350049382452,-3.17057523513e-05,1.11006707448e-07 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml new file mode 100644 index 000000000..165d5198f --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>Z1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z3_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>X1_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_Z1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z2</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z3</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y2</property_name></physical_positions> + <physical_positions><property_name>ELONG_X1</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TY</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RX</property_name></virtual_positions> + <virtual_positions><property_name>RY</property_name></virtual_positions> + <virtual_positions><property_name>RZ</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RZ</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml index b1cf45978..14a8fbca7 100644 --- a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -38,36 +38,36 @@ <Receiver> <receiverCode>KKG</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> - <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> - <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> - <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> - <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> - <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> - <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> - <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> - <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> - <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> - <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> - <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> - <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> - <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> </Receiver> <Receiver> diff --git a/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml b/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml index 221b861fd..c4ab33015 100644 --- a/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml +++ b/SRT/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="1" diff --git a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml index c17f54267..df04e8a0e 100644 --- a/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +++ b/SRT/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml @@ -20,7 +20,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > diff --git a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 2fde0991d..422590f78 100644 --- a/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -23,7 +23,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" ActiveSurfaceBossInterface="IDL:alma/ActiveSurface/SRTActiveSurfaceBoss:1.0" CustomLoggerInterface="IDL:alma/Management/CustomLogger:1.0" WeatherStationInstance="IDL:alma/Weather/GenericWeatherStation:1.0" diff --git a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml index 88c537650..02eb3b0a2 100644 --- a/SRT/CDB/alma/MANAGEMENT/Point/Point.xml +++ b/SRT/CDB/alma/MANAGEMENT/Point/Point.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="0" diff --git a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml index d4e2d5e3d..4dab29cf9 100644 --- a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -1,197 +1,37 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - Andrea Orlati, aorlati@ira.inaf.it + Authors: + Giuseppe Carboni, giuseppe.carboni@inaf.it --> -<!-- ASACTIVE means the active sufrace is enabled and changing with the elevation, - otherwise the code without the ASACTIVE suffice is the configuration with - no active sufrace enabled. ---> -<!-- The order of axises of every minor servo have to be the same as MSCU one. - Legend: - * TX means translation in X - * RX means rotation in X - - Given a setup code , if we have the following values: (C0, C1, C2), the axis value will be: - - C0 + C1*E + C2*E^2 - - Let's suppose the PFP LX is (2.222, 1.111, 0), we'll have the following value for - the PFP x axis: - - x = 2.222 + 1.111*E + 0*E**2 - - PS. The rotation unit is sec, not arc sec. ---> -<!-- The action order must be: park; active servos; none --> -<MinorServoBoss - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServoBoss + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - - CCB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (91.5590595452, -16.4202062811, 1.16941963489, -0.040640240455, 0.000733782714288, -6.62393455442e-06, 2.36410838911e-08); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (286.67); - " - CCB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (286.67); - " - - XB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-38.3143893309, 4.30888128547, -0.18265795755, 0.00350049382452, -3.17057523513e-05, 1.11006707448e-07); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (860.8); - " - XB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ = (7.92754535681, -1.73279985542, 0.147346047014, -0.00516934108597, 7.69094654954e-05, -4.0697957632e-07 ); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (860.8); - " - - KKG_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - KKG_TEST_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (83.53947196, -9.17664589, 0.42877766, -0.00940768, 0.00009361, -0.00000035); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - - KKG=" - @ PFP: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " + status_thread_period="0.05" + active_surface_configuration="ON" + elevation_tracking_enabled="ON"> - LLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm)= (-46.2); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PPP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - HHP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.72); TX(mm) = (1312.0); TZ(mm) = (-40.0); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - XKP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (-1060); TZ(mm) = (-45.9); - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - - slaves="GFR, M3R, PFP, SRP" -> - <!-- MinorServo Status --> - <status description="The summary status of MinorServoBoss"/> + <connected description="Boolean indicating whether the component is connected to the Leonardo Minor Servo System" /> + <status description="The summary status of MinorServoBoss"/> <actualSetup description="Mnemonic code that defines a setup" /> - <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." /> + <motionInfo description="Description of the movement in progress" /> <ready description="True if the system is ready" /> <starting description="True if the system is starting" /> <asConfiguration description="True if the the AS configuration is active" /> - <elevationTrack description="True if the M2 position is tracking the elevation" /> + <elevationTrack description="True if the SRP is tracking the elevation" /> <scanActive description="True if a scan is active" /> <scanning description="True if the system is performing a scan" /> - <tracking description="Is the minor servo system in tracking?" /> - - <!-- - MinorServoBoss Verbose Status (ROpattern) - <verbose_status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServoBoss verbose status" - format="I don't know" - units="none" - resolution="65535" - alarm_mask="1" - alarm_trigger="0" - alarm_timer_trig="0" - bitDescription="Ok, Tracking, Configuring, Parking, Parked, Warning, Failure" - whenSet="3,3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0,0" - archive_priority="1" - archive_min_int="1" - archive_max_int="1" - archive_delta="1" - /> - --> - - -</MinorServoBoss> + <tracking description="Is the minor servo system tracking?" /> + <current_configuration description="Current minor servos focal configuration" /> + <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> + <plc_time description="UNIX time of the minor servo PLC" /> + <plc_version description="PLC software version" /> + <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> + <power description="All drive cabinets power status" /> + <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> + <gregorian_cover description="Status of the gregorian cover" /> + <last_executed_command description="UNIX time of the last correctly executed command" /> + +</SRTMinorServoBoss> diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index e13e504db..75f01dc18 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -1,356 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-1745,1745) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="2" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-1745, 1745)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + physical_axes="2" + virtual_axes="1" + max_speed="3.5" + acceleration="2" + min_range="-166" + max_range="168.5"> - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature (ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index c741e7cd8..83ebde14b 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -1,357 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-945,945) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="2" + virtual_axes="1" + max_speed="3.14" + acceleration="1.57" + min_range="-165" + max_range="165"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="3" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-945, 945)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 0c7cd46b3..6fdbf0722 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -1,358 +1,39 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - modified: 23/05/2013: limits - modified: 29/01/2018: changed the limits of PFP theta + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_y(-28.51,2740), x(-1400,1400), z(-199,40) --> -<!-- Park position: theta_y(2730.15), x(0), z(-195) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="5" + virtual_axes="3" + max_speed="1, 1, 1" + acceleration="1, 1, 1" + min_range="0, 0, 0" + max_range="0, 0, 0" + tracking_delta="1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="3" - number_of_slaves="5" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="0" - zero="0" - park_position="2730.15,0,-195" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-28.51, 2740); (-1480, 1480); (-199, 40)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm or degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index 44730072b..eebfba2c7 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -1,359 +1,39 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 - + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits: x(-50,50), y(-110,110), z(-110,110), theta_x(-0.25,0.25), theta_y(-0.25,0.25), theta_z(-0.25,0.25) --> -<!-- Elongation Limits: Z1(-125,125), Z2(-125,125), Z3(-125,125), Y4(-125,125), Y5(-125,125), X6(-125,125) --> -<!-- Park position (elongations): Z1(-125), Z2(-125), Z3(-125), Y4(0), Y5(0), X6(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="6" + virtual_axes="6" + max_speed="4, 4, 4, 0.38, 0.38, 0.38" + acceleration="8, 8, 8, 0.76, 0.76, 0.76" + min_range="-50, -110, -50, -0.25, -0.25, -0.25" + max_range="50, 110, 50, 0.25, 0.25, 0.25" + tracking_delta="1, 1, 1, 1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="6" - number_of_slaves="7" - scale_factor="1" - scale_offset="0" - server_ip="127.0.0.1" - server_port="10000" - timeout="2000000" - servo_address="1" - zero="1570.00" - park_position="-5,5,-125,0,0,0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "1" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-50, 50); (-110, 110); (-110, 110); (-0.25, 0.25); (-0.25, 0.25); (-0.25, 0.25)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml new file mode 100644 index 000000000..b1de61c19 --- /dev/null +++ b/SRT/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -0,0 +1,12 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoSocketConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IPAddress="127.0.0.1" + Port="12800"/> diff --git a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index b6d47acd7..4d86ea178 100644 --- a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -6,7 +6,7 @@ <Procedure name="setupCCB" args="0"> <body> antennaSetup=CCB - servoSetup=CCB + servoSetup=CCB receiversSetup=CCB chooseBackend=TotalPower initialize=CCB @@ -19,16 +19,22 @@ <Procedure name="setupCCG" args="0"> <body> + antennaSetup=CCG + servoSetup=CCG receiversSetup=CCG chooseBackend=TotalPower + initialize=CCG + device=0 calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupKKG" args="0"> <body> antennaSetup=KKG - servoSetup=KKG + servoSetup=KKG receiversSetup=KKG receiversMode=SINGLEDISH chooseBackend=TotalPower @@ -43,7 +49,7 @@ <Procedure name="setupLLP" args="0"> <body> antennaSetup=LP - servoSetup=LLP + servoSetup=LLP receiversSetup=LLP receiversMode=XXC4 chooseBackend=TotalPower @@ -58,7 +64,7 @@ <Procedure name="setupPPP" args="0"> <body> antennaSetup=LP - servoSetup=PPP + servoSetup=PPP receiversSetup=PPP receiversMode=C3XX chooseBackend=TotalPower @@ -73,7 +79,7 @@ <Procedure name="setupPLP" args="0"> <body> antennaSetup=LP - servoSetup=PLP + servoSetup=PLP receiversSetup=PLP receiversMode=C3C4 chooseBackend=TotalPower @@ -88,28 +94,28 @@ <Procedure name="setupXB" args="0"> <body> antennaSetup=XB - servoSetup=XB + servoSetup=XB receiversSetup=CCB chooseBackend=TotalPower initialize=XB device=0 restFrequency=0 - setLO=7500 + setLO=7500 azelOffsets=0d,0d </body> </Procedure> <Procedure name="setupSSP" args="0"> <body> - antennaSetup=LP - servoSetup=SSP - receiversSetup=CCB - chooseBackend=TotalPower - initialize=PPP - device=0 - calOff - restFrequency=0 - azelOffsets=0d,0d + antennaSetup=LP + servoSetup=SSP + receiversSetup=CCB + chooseBackend=TotalPower + initialize=PPP + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d </body> </Procedure> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml index 2705230c3..b7a0bfd41 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/Boss/Boss.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="Boss" - Code="MinorServoBossImpl" + Code="SRTMinorServoBossImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/MinorServoBoss:1.0" - Container="MinorServoBossContainer" - Default="true" - + Type="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" + Container="MinorServoContainer" + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml index ed2c44f77..23da6db86 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/GFR/GFR.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="GFR" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" - Default="true" - + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml index 8a01ba209..94efe94c9 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/M3R/M3R.xml @@ -6,10 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="M3R" - Code="WPServoImpl" + Code="SRTGenericMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTGenericMinorServo:1.0" Container="MinorServoContainer" Default="true" - /> diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml index d75a83d75..a5801b66d 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/PFP/PFP.xml @@ -6,9 +6,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="PFP" - Code="WPServoImpl" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" Default="true" diff --git a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml index 4534c3d82..b957480d6 100644 --- a/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/MACI/Components/MINORSERVO/SRP/SRP.xml @@ -5,11 +5,11 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Name="SRP" - Code="WPServoImpl" + Name="SRP" + Code="SRTProgramTrackMinorServoImpl" ImplLang="cpp" - Type="IDL:alma/MinorServo/WPServo:1.0" + Type="IDL:alma/MinorServo/SRTProgramTrackMinorServo:1.0" Container="MinorServoContainer" - Default="true" + Default="true" /> diff --git a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml b/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml deleted file mode 100644 index 64fcda240..000000000 --- a/SRT/Configuration/CDB/MACI/Containers/MinorServoBossContainer/MinorServoBossContainer.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<Container xmlns="urn:schemas-cosylab-com:Container:1.0" - xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - Timeout="30.0" - UseIFR="true" - ManagerRetry="10" - ImplLang="cpp" - Recovery="false"> - - <Autoload> - <cdb:e string="baci" /> - </Autoload> - - <LoggingConfig - centralizedLogger="Log" - minLogLevel="5" - minLogLevelLocal="5" - dispatchPacketSize="0" - immediateDispatchLevel="8" - flushPeriodSeconds="1" - > - </LoggingConfig> - -</Container> - - - diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml new file mode 100644 index 000000000..00e681dfa --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -0,0 +1,32 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG> + <CCG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-88.70659 </coefficients></CCG_ASACTIVE> + <KKG> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG> + <KKG_ASACTIVE> <axis>ROTATION</axis> <coefficients>-159.8899 </coefficients></KKG_ASACTIVE> + <WWG> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG> + <WWG_ASACTIVE> <axis>ROTATION</axis> <coefficients>90.971610 </coefficients></WWG_ASACTIVE> + <QQG> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG> + <QQG_ASACTIVE> <axis>ROTATION</axis> <coefficients>162.771 </coefficients></QQG_ASACTIVE> + <TRI> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI> + <TRI_ASACTIVE> <axis>ROTATION</axis> <coefficients>55.373967 </coefficients></TRI_ASACTIVE> + <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> + <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> + + <!-- BWG - GFR open --> + <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml new file mode 100644 index 000000000..fccec0b0f --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/LookupTables/LookupTables.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCB> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB> + <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></CCB_ASACTIVE> + <XB> <axis>ROTATION</axis> <coefficients>0</coefficients></XB> + <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0</coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml new file mode 100644 index 000000000..d68395104 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/M3R/Properties/Properties.xml @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>CLOCKWISE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>COUNTERCLOCKWISE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>CLOCKWISE</property_name></physical_positions> + <physical_positions><property_name>COUNTERCLOCKWISE</property_name></physical_positions> + + <virtual_positions><property_name>ROTATION</property_name></virtual_positions> + + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..086b3785b --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/LookupTables/LookupTables.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <LLP> <axis>TX</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>TZ</axis> <coefficients>0 </coefficients></LLP> + <LLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></LLP> + + <PPP> <axis>TX</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>TZ</axis> <coefficients>0 </coefficients></PPP> + <PPP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PPP> + + <PLP> <axis>TX</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>TZ</axis> <coefficients>0 </coefficients></PLP> + <PLP> <axis>RTHETA</axis> <coefficients>0 </coefficients></PLP> + + <HHP> <axis>TX</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>TZ</axis> <coefficients>0 </coefficients></HHP> + <HHP> <axis>RTHETA</axis> <coefficients>0 </coefficients></HHP> + + <XKP> <axis>TX</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>TZ</axis> <coefficients>0 </coefficients></XKP> + <XKP> <axis>RTHETA</axis> <coefficients>0 </coefficients></XKP> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml new file mode 100644 index 000000000..688491e30 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/PFP/Properties/Properties.xml @@ -0,0 +1,36 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>X_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_X</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z_SLAVE</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_MASTER</property_name></physical_positions> + <physical_positions><property_name>ELONG_THETA_SLAVE</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RTHETA</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml new file mode 100644 index 000000000..6869a5c77 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -0,0 +1,125 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoLookupTable xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <CCG> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG> + <CCG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCG> + <CCG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCG> + <CCG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCG> + <CCG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCG> + <CCG> <axis>RZ</axis><coefficients>0 </coefficients></CCG> + + <CCG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCG_ASACTIVE> + <CCG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCG_ASACTIVE> + + <KKG> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG> + <KKG> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></KKG> + <KKG> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></KKG> + <KKG> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></KKG> + <KKG> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></KKG> + <KKG> <axis>RZ</axis><coefficients>0 </coefficients></KKG> + + <KKG_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></KKG_ASACTIVE> + <KKG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></KKG_ASACTIVE> + + <WWG> <axis>TX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>TZ</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RX</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RY</axis><coefficients>0 </coefficients></WWG> + <WWG> <axis>RZ</axis><coefficients>0 </coefficients></WWG> + + <WWG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + <WWG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></WWG_ASACTIVE> + + <QQG> <axis>TX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>TZ</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RX</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RY</axis><coefficients>0 </coefficients></QQG> + <QQG> <axis>RZ</axis><coefficients>0 </coefficients></QQG> + + <QQG_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + <QQG_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></QQG_ASACTIVE> + + <TRI> <axis>TX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>TZ</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RX</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RY</axis><coefficients>0 </coefficients></TRI> + <TRI> <axis>RZ</axis><coefficients>0 </coefficients></TRI> + + <TRI_ASACTIVE> <axis>TX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>TZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RX</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> + + <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> + <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> + + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> + + <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> + <CCB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></CCB> + <CCB> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></CCB> + <CCB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></CCB> + <CCB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></CCB> + <CCB> <axis>RZ</axis><coefficients>0 </coefficients></CCB> + + <CCB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>TZ</axis><coefficients>91.5590595452,-16.4202062811,1.16941963489,-0.040640240455,0.000733782714288,-6.62393455442e-06,2.36410838911e-08 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></CCB_ASACTIVE> + <CCB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></CCB_ASACTIVE> + + <XB> <axis>TX</axis><coefficients>-1.5 </coefficients></XB> + <XB> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></XB> + <XB> <axis>TZ</axis><coefficients>7.92754535681,-1.73279985542,0.147346047014,-0.00516934108597,7.69094654954e-05,-4.0697957632e-07 </coefficients></XB> + <XB> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></XB> + <XB> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></XB> + <XB> <axis>RZ</axis><coefficients>0 </coefficients></XB> + + <XB_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>TZ</axis><coefficients>-38.3143893309,4.30888128547,-0.18265795755,0.00350049382452,-3.17057523513e-05,1.11006707448e-07 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409,0.00014822163433269445,0.000027586713698,-0.000000077732053 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></XB_ASACTIVE> + <XB_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></XB_ASACTIVE> + +</SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml new file mode 100644 index 000000000..165d5198f --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/Properties/Properties.xml @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + - Author: Giuseppe Carboni + - History: + - 14-03-23 Created +--> + +<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <physical_axes_enabled><property_name>Z1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Z3_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y1_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>Y2_ENABLED</property_name></physical_axes_enabled> + <physical_axes_enabled><property_name>X1_ENABLED</property_name></physical_axes_enabled> + + <physical_positions><property_name>ELONG_Z1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z2</property_name></physical_positions> + <physical_positions><property_name>ELONG_Z3</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y1</property_name></physical_positions> + <physical_positions><property_name>ELONG_Y2</property_name></physical_positions> + <physical_positions><property_name>ELONG_X1</property_name></physical_positions> + + <virtual_positions><property_name>TX</property_name></virtual_positions> + <virtual_positions><property_name>TY</property_name></virtual_positions> + <virtual_positions><property_name>TZ</property_name></virtual_positions> + <virtual_positions><property_name>RX</property_name></virtual_positions> + <virtual_positions><property_name>RY</property_name></virtual_positions> + <virtual_positions><property_name>RZ</property_name></virtual_positions> + + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>mm</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + <virtual_axes_units><property_name>degree</property_name></virtual_axes_units> + + <virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RX</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RY</property_name></virtual_offsets> + <virtual_offsets><property_name>OFFSET_RZ</property_name></virtual_offsets> +</SRTMinorServoProperties> diff --git a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml index b1cf45978..14a8fbca7 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -38,36 +38,36 @@ <Receiver> <receiverCode>KKG</receiverCode> <phi>90.0</phi> - <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2964186668 </coefficientVal00> - <coefficientNum01> 1 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> - <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0061030770 </coefficientVal02> - <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0035287447 </coefficientVal03> - <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0014408963 </coefficientVal04> - <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0017973853 </coefficientVal05> - <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0719125122 </coefficientVal06> - <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.0925239921 </coefficientVal07> - <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0 </coefficientVal08> - <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0 </coefficientVal09> - <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> 0.0128885703 </coefficientVal10> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> - <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0006690503 </coefficientVal12> - <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000107827 </coefficientVal13> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> - <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0 </coefficientVal20> - <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0 </coefficientVal21> - <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0 </coefficientVal22> - <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0 </coefficientVal23> - <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0 </coefficientVal24> - <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0 </coefficientVal25> - <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0 </coefficientVal26> - <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0 </coefficientVal27> - <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0 </coefficientVal28> - <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> </Receiver> <Receiver> diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml index d18bf0948..43a777280 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/CalibrationTool/CalibrationTool.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="1" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml index 66f145487..f139a84fc 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml @@ -20,7 +20,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml index 3b8c89f50..eb9ea73b8 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Gavino/Gavino.xml @@ -23,7 +23,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" ActiveSurfaceBossInterface="IDL:alma/ActiveSurface/SRTActiveSurfaceBoss:1.0" CustomLoggerInterface="IDL:alma/Management/CustomLogger:1.0" WeatherStationInstance="IDL:alma/Weather/GenericWeatherStation:1.0" diff --git a/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml b/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml index 88c537650..02eb3b0a2 100644 --- a/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml +++ b/SRT/Configuration/CDB/alma/MANAGEMENT/Point/Point.xml @@ -15,7 +15,7 @@ RepetitionExpireTime="8000000" TrackingFlagDutyCycle="100000" AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" - MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" + MinorServoBossInterface="IDL:alma/MinorServo/SRTMinorServoBoss:1.0" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" GenerateFile="0" diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml index ac992a0c5..4dab29cf9 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -1,197 +1,37 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - Andrea Orlati, aorlati@ira.inaf.it + Authors: + Giuseppe Carboni, giuseppe.carboni@inaf.it --> -<!-- ASACTIVE means the active sufrace is enabled and changing with the elevation, - otherwise the code without the ASACTIVE suffice is the configuration with - no active sufrace enabled. ---> -<!-- The order of axises of every minor servo have to be the same as MSCU one. - Legend: - * TX means translation in X - * RX means rotation in X - - Given a setup code , if we have the following values: (C0, C1, C2), the axis value will be: - - C0 + C1*E + C2*E^2 - - Let's suppose the PFP LX is (2.222, 1.111, 0), we'll have the following value for - the PFP x axis: - - x = 2.222 + 1.111*E + 0*E**2 - - PS. The rotation unit is sec, not arc sec. ---> -<!-- The action order must be: park; active servos; none --> -<MinorServoBoss - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTMinorServoBoss + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - - CCB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (91.5590595452, -16.4202062811, 1.16941963489, -0.040640240455, 0.000733782714288, -6.62393455442e-06, 2.36410838911e-08); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (286.67); - " - CCB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (286.67); - " - - XB_ASACTIVE=" - @ PFP: park; - @ GFR: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (3.784814450130462, -0.7954923078498634, 0.05492195534135681, -0.0017439121752343607, 2.3615081491728947e-05, -1.1325543951011324e-07); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ M3R: RZ = (860.8); - " - XB=" - @ PFP: park; - @ GFR: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ = (7.92754535681, -1.73279985542, 0.147346047014, -0.00516934108597, 7.69094654954e-05, -4.0697957632e-07 ); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ M3R: RZ(mm) = (860.8); - " - - KKG_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (29.556666666666498, 0.263472663139432, -0.018206701940039, 0.000072373113855); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - KKG_TEST_ASACTIVE=" - @ PFP: park; - @ SRP: TX = (-1.5); - TY = (83.53947196, -9.17664589, 0.42877766, -0.00940768, 0.00009361, -0.00000035); - TZ = (-15.6669651675, 1.9293068324, -0.0628990613, 0.0007771141, -0.0000032940); - RX = (-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053); - RY = (-0.036111111111111108); - RZ = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " - - KKG=" - @ PFP: park; - @ SRP: TX(mm) = (-1.5); - TY(mm) = (28.256852219272844, -0.002707044952, -0.009870218853, 0.000031617958); - TZ(mm) = (9.530113849340003, -0.169826241752, 0.000419997047, 0.000003985237); - RX(degree) = (-0.011392527142374848, -0.0001426193499425, 0.000039508844799, -0.000000131010010); - RY(degree) = (-0.03611111111111111); - RZ(degree) = (0); - @ GFR: RZ(mm) = (1323.5); - @ M3R: RZ(mm) = (860); - " + status_thread_period="0.05" + active_surface_configuration="ON" + elevation_tracking_enabled="ON"> - LLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm)= (-46.2); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PPP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - PLP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (458); TZ(mm) = (-45.9); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - HHP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.72); TX(mm) = (1312.0); TZ(mm) = (-40.0); - @ PFP: power_off_encoder; - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - XKP=" - @ SRP: park; - @ PFP: RY(mm) = (-25.75); TX(mm) = (-1060); TZ(mm) = (-45.9); - @ GFR: RZ(mm) = (-600); - @ M3R: RZ(mm) = (860); - " - - - slaves="GFR, M3R, PFP, SRP" -> - <!-- MinorServo Status --> - <status description="The summary status of MinorServoBoss"/> + <connected description="Boolean indicating whether the component is connected to the Leonardo Minor Servo System" /> + <status description="The summary status of MinorServoBoss"/> <actualSetup description="Mnemonic code that defines a setup" /> - <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." /> + <motionInfo description="Description of the movement in progress" /> <ready description="True if the system is ready" /> <starting description="True if the system is starting" /> <asConfiguration description="True if the the AS configuration is active" /> - <elevationTrack description="True if the M2 position is tracking the elevation" /> + <elevationTrack description="True if the SRP is tracking the elevation" /> <scanActive description="True if a scan is active" /> <scanning description="True if the system is performing a scan" /> - <tracking description="Is the minor servo system in tracking?" /> - - <!-- - MinorServoBoss Verbose Status (ROpattern) - <verbose_status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServoBoss verbose status" - format="I don't know" - units="none" - resolution="65535" - alarm_mask="1" - alarm_trigger="0" - alarm_timer_trig="0" - bitDescription="Ok, Tracking, Configuring, Parking, Parked, Warning, Failure" - whenSet="3,3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0,0" - archive_priority="1" - archive_min_int="1" - archive_max_int="1" - archive_delta="1" - /> - --> - - -</MinorServoBoss> + <tracking description="Is the minor servo system tracking?" /> + <current_configuration description="Current minor servos focal configuration" /> + <simulation_enabled description="Boolean indicating whether the servos are acting in simulated mode" /> + <plc_time description="UNIX time of the minor servo PLC" /> + <plc_version description="PLC software version" /> + <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> + <power description="All drive cabinets power status" /> + <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> + <gregorian_cover description="Status of the gregorian cover" /> + <last_executed_command description="UNIX time of the last correctly executed command" /> + +</SRTMinorServoBoss> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml index 9535f226d..75f01dc18 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -1,356 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-1745,1745) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="2" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-1745, 1745)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + physical_axes="2" + virtual_axes="1" + max_speed="3.5" + acceleration="2" + min_range="-166" + max_range="168.5"> - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature (ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml index cd650b487..83ebde14b 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -1,357 +1,33 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_z(-945,945) --> -<!-- Park position: theta_z(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTGenericMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="2" + virtual_axes="1" + max_speed="3.14" + acceleration="1.57" + min_range="-165" + max_range="165"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="1" - number_of_slaves="3" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="3" - zero="0" - park_position="0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-945, 945)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> - -</WPServo> +</SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml index c5f176b8a..6fdbf0722 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -1,358 +1,39 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - modified: 23/05/2013: limits - modified: 29/01/2018: changed the limits of PFP theta + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits in mm: theta_y(-34.00,2740), x(-1400,1400), z(-199,40) --> -<!-- Park position: theta_y(2730.15), x(0), z(-195) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="5" + virtual_axes="3" + max_speed="1, 1, 1" + acceleration="1, 1, 1" + min_range="0, 0, 0" + max_range="0, 0, 0" + tracking_delta="1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="3" - number_of_slaves="5" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="0" - zero="0" - park_position="2730.15,0,-195" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "0" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-34.0, 2740); (-1480, 1480); (-199, 40)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm or degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm or degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index 90a39717c..eebfba2c7 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -1,359 +1,39 @@ <?xml version='1.0' encoding='ISO-8859-1'?> <!-- - Authors: - Marco Buttu, mbuttu@oa-cagliari.inaf.it - - Created: Tue Oct 13 09:36:00 CEST 2009 - Last Modified: Fri Jun 7 12:20:32 UTC 2013 - + Authors: Giuseppe Carboni giuseppe.carboni@inaf.it --> - -<!-- Expire time in seconds --> -<!-- Limits: x(-50,50), y(-110,110), z(-110,110), theta_x(-0.25,0.25), theta_y(-0.25,0.25), theta_z(-0.25,0.25) --> -<!-- Elongation Limits: Z1(-125,125), Z2(-125,125), Z3(-125,125), Y4(-125,125), Y5(-125,125), X6(-125,125) --> -<!-- Park position (elongations): Z1(-125), Z2(-125), Z3(-125), Y4(0), Y5(0), X6(0) --> -<WPServo - xmlns="urn:schemas-cosylab-com:MinorServo:1.0" +<SRTProgramTrackMinorServo + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + physical_axes="6" + virtual_axes="6" + max_speed="4, 4, 4, 0.38, 0.38, 0.38" + acceleration="8, 8, 8, 0.76, 0.76, 0.76" + min_range="-50, -110, -50, -0.25, -0.25, -0.25" + max_range="50, 110, 50, 0.25, 0.25, 0.25" + tracking_delta="1, 1, 1, 1, 1, 1"> - actionThreadStackSize="2048" - monitoringThreadStackSize="4096" - number_of_axis="6" - number_of_slaves="7" - scale_factor="1" - scale_offset="0" - server_ip="192.168.200.16" - server_port="10000" - timeout="2000000" - servo_address="1" - zero="1570.00" - park_position="-5,5,-125,0,0,0" - max_speed="0" - min_speed="0" - driver_type = "unknown" - virtual_rs = "1" - require_calibration = "0" - expire_time = "0.05000" - tracking_delta = "1.0" - limits="(-50, 50); (-110, 110); (-110, 110); (-0.25, 0.25); (-0.25, 0.25); (-0.25, 0.25)" -> - - <!-- Actual Position (ROdoubleSeq) --> - <actPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Plain Actual Position (ROdoubleSeq) --> - <plainActPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo plain actual position (actPos - user_offset)" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Commanded Position (RwdoubleSeq) --> - <cmdPos - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo commanded position" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - graph_min="0" - graph_max="0" - min_step="0" - /> - - <!-- Position Difference (ROdoubleSeq) --> - <posDiff - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo position difference" - units="mm, mm, mm, degree, degree, degree" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Actual Elongation (ROdoubleSeq) --> - <actElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Virtual Actual Elongation (ROdoubleSeq) --> - <virtualActElongation - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo virtual actual elongation" - units="mm, mm, mm, mm, mm, mm" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Temperature (ROdoubleSeq) --> - <engTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave engine" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Counturing Error (ROdoubleSeq) --> - <counturingErr - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Counturing Error of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Torque Percentage (ROdoubleSeq) --> - <torquePerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Torque Percentage of slaves" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Current (ROdoubleSeq) --> - <engCurrent - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Current of slaves" - units="Ampere" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Temperature (ROdoubleSeq) --> - <driTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Temperature of slave drivers" - units="celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Utilization Percentage (ROdoubleSeq) --> - <utilizationPerc - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Utilization Percentage" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Drive Cabinet Temperature(ROdoubleSeq) --> - <dcTemperature - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Drive Cabinet Temperature" - units="Celsius" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Engine Voltage (ROdoubleSeq) --> - <engVoltage - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Engine Voltage" - units="Volt" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Driver Status (ROdoubleSeq) --> - <driverStatus - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Driver Status" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- Error Code (ROdoubleSeq) --> - <errorCode - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="Error Code" - units="" - resolution="65535" - alarm_low_on="0" - alarm_high_on="0" - alarm_low_off="0" - alarm_high_off="0" - graph_min="0" - graph_max="0" - min_step="0" - alarm_timer_trig="0" - /> - - <!-- MinorServo Hardware Status (ROpattern) --> - <status - default_timer_trig="0" - min_timer_trig="0" - initialize_devio="0" - default_value="0" - description="MinorServo hardware status" - units="none" - resolution="65535" - alarm_mask="0" - alarm_trigger="1" - alarm_timer_trig="0" - bitDescription="Ready, Warning, Failure, Setup, Park, Tracking" - whenSet="3,3,3,3,3,3" - whenCleared="0,0,0,0,0,0" - /> + <enabled description="All physical axes enabled" /> + <drive_cabinet_status description="Drive cabinet status" /> + <block description="Minor servo in block status" /> + <operative_mode description="Minor servo operating mode" /> + <physical_axes description="Number of physical axes" /> + <physical_axes_enabled description="Sequence, physical axes enabled" /> + <physical_positions description="Sequence, physical axes positions" /> + <virtual_axes description="Number of virtual axes" /> + <plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" /> + <virtual_positions description="Sequence, virtual axes positions, without offsets" /> + <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> + <virtual_user_offsets description="Sequence, virtual user axes offsets" /> + <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> + <current_setup description="The name of the current configuration" /> + <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> + <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> + <total_trajectory_points description="Number of points sent for the current trajectory" /> + <remaining_trajectory_points description="Remaining points of the current trahectory" /> + <tracking_error description="The tracking error of each axis" /> -</WPServo> +</SRTProgramTrackMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml new file mode 100644 index 000000000..5ca037aaa --- /dev/null +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Socket/Socket.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoSocketConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IPAddress="192.168.200.13" + Port="4758" + SocketTimeout="1"/> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 1c63bba48..4d86ea178 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -20,6 +20,7 @@ <Procedure name="setupCCG" args="0"> <body> antennaSetup=CCG + servoSetup=CCG receiversSetup=CCG chooseBackend=TotalPower initialize=CCG diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore b/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore new file mode 100644 index 000000000..981c93f21 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/.gitignore @@ -0,0 +1 @@ +SRTMinorServoCommon.idl diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl new file mode 100644 index 000000000..5c3eb142a --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -0,0 +1,283 @@ +#ifndef __SRTMINORSERVO_IDL__ +#define __SRTMINORSERVO_IDL__ +/***************************************************************\ + * Authors: + * Giuseppe Carboni <giuseppe.carboni@inaf.it> + * + * Created: Mon Mar 06 12:30:00 CEST 2023 +\***************************************************************/ + +#include "SRTMinorServoCommon.idl" + +#pragma prefix "alma" + +module MinorServo +{ + /** + * This IDL interface describes the CORBA interface of a common SRTMinorServo component. + * This is simply the base interface from which the SRTGenericMinorServo and SRTProgramTrackMinorServo interfaces inherit. + */ + interface SRTBaseMinorServo : ACS::CharacteristicComponent + { + /** + * This property tells if all the servo axes are enabled + */ + readonly attribute Management::ROTBoolean enabled; + + /** + * This property tells the status of the servo drive cabinet + */ + readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status; + + /** + * This property tells if the servo is in blocked state and cannot move + */ + readonly attribute Management::ROTBoolean block; + + /** + * This property returns the current operative mode of the servo + */ + readonly attribute ROSRTMinorServoOperativeMode operative_mode; + + /** + * This property returns the sequence of statuses of the servo physical axes + */ + readonly attribute ACS::RObooleanSeq physical_axes_enabled; + + /** + * This property returns the sequence of current positions of the physical axes of the servo + */ + readonly attribute ACS::ROdoubleSeq physical_positions; + + /** + * This property returns the number of virtual axes of the servo + */ + readonly attribute ACS::ROlong virtual_axes; + + /** + * This property returns the current plain positions of the virtual axes of the servo + * The plain positions are the positions returned from the Leonardo servo system, without subtracting the offsets + */ + readonly attribute ACS::ROdoubleSeq plain_virtual_positions; + + /** + * This property returns the current positions of the virtual axes of the servo + * The positions returned by this property equals to the plain virtual positions minus the offsets + */ + readonly attribute ACS::ROdoubleSeq virtual_positions; + + /** + * This property returns the current offsets of the virtual axes of the servo + * The offset values are the sum of user and system offsets + */ + readonly attribute ACS::ROdoubleSeq virtual_offsets; + + /** + * This property returns the current user offsets of the virtual axes of the servo + */ + readonly attribute ACS::ROdoubleSeq virtual_user_offsets; + + /** + * This property returns the current system offsets of the virtual axes of the servo + */ + readonly attribute ACS::ROdoubleSeq virtual_system_offsets; + + /** + * This property indicates whether the servo is in use in the current configuration + */ + readonly attribute Management::ROTBoolean in_use; + + /** + * This property returns the configuration of the servo. Each configuration has different positioning coefficients + */ + readonly attribute ACS::ROstring current_setup; + + /** + * This method asks the PLC the status for the corresponding servo + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware + * @return true if the servo is not in an error state, false otherwise + */ + boolean status() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method commands a STOW operation to the servo + * @param stow_position the index of the position we want the servo to stow to + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + */ + void stow(in long stow_position) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method commands a STOP operation to the servo + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted + */ + void stop() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method commands a PRESET operation to the servo + * @param coordinates, a sequence of double + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted + */ + void preset(in ACS::doubleSeq coordinates) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method loads from the CDB the positioning coefficients related to the given configuration + * @param configuration the string representing the name of the table from which the coefficients will be loaded + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration + * @return true if the servo is in use with the current configuration, false otherwise + */ + boolean setup(in string configuration) raises (ComponentErrors::ComponentErrorsEx); + + /** + * This method calculates the servo coordinates for a given elevation + * @param elevation the elevation to use for the coordinates calculation, expressed in degrees + * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculation + * @return the calculated coordinates as a sequence of doubles + */ + ACS::doubleSeq calcCoordinates(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the user offsets of the servo + * @return the user offsets as a sequence of doubles + */ + ACS::doubleSeq getUserOffsets(); + + /** + * This method sets the user offset of the servo for a given axis + * @param axis_name a string corresponding to the axis we want to set the offset for + * @param offset the absolute user offset value for the given servo axis + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted + */ + void setUserOffset(in string axis_name, in double offset) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method sets the user offsets to zero for all the servo axes + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void clearUserOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the system offsets of the servo + * @return the system offsets as a sequence of doubles + */ + ACS::doubleSeq getSystemOffsets(); + + /** + * This method sets the system offset of the servo for a given axis + * @param axis_name a string corresponding to the axis we want to set the offset for + * @param offset the absolute system offset value for the given servo axis + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted + */ + void setSystemOffset(in string axis_name, in double offset) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method sets the system offsets to zero for all the servo axes + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void clearSystemOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method resets the Leonardo offsets to the sum of the DISCOS user and system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted + */ + void reloadOffsets() raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns in the two parameters passed as reference, the names and the units of measure of the axes of the servo, respectively + * @param axes_names the sequence of strings containing the names of the virtual axes of the servo + * @param axes_units the sequence of strings containing the units of measure of each virtual axis of the servo + */ + void getAxesInfo(out ACS::stringSeq axes_names, out ACS::stringSeq axes_units); + + /** + * This method returns the positions of all the axes of the servo for a given time + * @param acs_time the ACS::Time for which we want to retrieve the servo positions + * @throw MinorServoErrors::MinorServoErrorsEx when the position history is empty + * @return a sequence of doubles containing the positions of the servo for the given time + */ + ACS::doubleSeq getAxesPositions(in ACS::Time acs_time) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This method returns the time it would take for the servo to get from a starting position to a destination position + * An empty starting position means the function will calculate the travel time from the current position, taking into account the current speed as well + * To account for the current speed, it is sufficient to call the method in this way: + * getTravelTime(ACS::doubleSeq(), <destination_position>); + * @param starting_position the sequence of starting axes positions or an empty sequence + * @param destination_position the sequence of destination axes positions, mandatory + * @throw MinorServoErrors::MinorServoErrorsEx when receiving a starting position sequence of length different from zero or the number of virtual axes of the servo, + * when receiving a destination position sequence of lenght different from the number of virtual axes of the servo + * @return an ACS::TimeInterval object representing the total duration of the movement from the starting position to the destination position + */ + ACS::TimeInterval getTravelTime(in ACS::doubleSeq starting_position, in ACS::doubleSeq destination_position); + + /** + * This method returns the minimum and maximun ranges for all the servo axes in the given sequence passed by reference + * @param min_ranges the minimum range of the servo axes + * @param max_ranges the maximum range of the servo axes + */ + void getAxesRanges(out ACS::doubleSeq min_ranges, out ACS::doubleSeq max_ranges); + }; + + /** + * This IDL interface describes the CORBA interface of a generic SRTMinorServo component. + * This interface is derived from the SRTBaseMinorServo and it is empty. + * It's sole purpose is to generate the POA_MinorServo::SRTGenericMinorServo class needed for the components. + */ + interface SRTGenericMinorServo : SRTBaseMinorServo {}; + + /** + * This IDL interface describes the CORBA interface of a ProgramTrack-capable SRTMinorServo component. + * It extends the SRTBaseMinorServo interface with some more attributes and methods described below. + */ + interface SRTProgramTrackMinorServo : SRTBaseMinorServo + { + /** + * This property indicates whether the servo system is tracking the given trajectory + */ + readonly attribute Management::ROTBoolean tracking; + + /** + * This property indicates the ID of the trajectory. It always corresponds to starting time of the trajectory, expressed as the UNIX Epoch * 1000 (long) + */ + readonly attribute ACS::ROlong trajectory_id; + + /** + * This property indicates the total number of points loaded into the current trajectory + */ + readonly attribute ACS::ROlong total_trajectory_points; + + /** + * This property indicates the number of points of the current trajectory which remain to be tracked + */ + readonly attribute ACS::ROlong remaining_trajectory_points; + + /** + * This property returns the sequence of tracking error for each virtual axis of the servo + */ + readonly attribute ACS::ROdoubleSeq tracking_error; + + /** + * This method loads a set of coordinates that have to be tracked by the servo system + * @param trajectory_id the ID of the trajectory to which the current point belongs + * @param point_id the ID of the point inside the current trajectory. It must be a consecutive number for the servo system to acknowledge + * @param point_time an ACS::Time object indicating the time associated with the coordinates to be tracked. + * Only the start time is sent to the servo system and the points after are spaced by 0.2 seconds from one another. + * It is still necessary to fill this field in order to associate a time to the coordinates inside the component. + * @param coordinates the coordinates to track at the given time + * @throw MinorServoErrorsEx when the length of the coordinates sequence does not match the number of virtual axis of the servo system, + * when there has been a communication error or when the command was not accepted + */ + void programTrack(in long trajectory_id, in long point_id, in ACS::Time point_time, in ACS::doubleSeq coordinates); + + /** + * This method returns a boolean indicating if the servo is tracking or not + * @return true if the servo is tracking, false otherwise + */ + boolean isTracking(); + }; +}; + +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl new file mode 100644 index 000000000..9748e827e --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -0,0 +1,86 @@ +#ifndef __SRTMINORSERVOBOSS_IDL__ +#define __SRTMINORSERVOBOSS_IDL__ +/***************************************************************\ + * Authors: + * Giuseppe Carboni <giuseppe.carboni@inaf.it> + * + * Created: Mon Mar 06 12:30:00 CEST 2023 + * Last Modified: Mon Mar 06 12:30:00 CEST 2023 +\***************************************************************/ + +#include <MinorServoBoss.idl> +#include "SRTMinorServoCommon.idl" + +#pragma prefix "alma" + +module MinorServo +{ + interface SRTMinorServoBoss: MinorServoBoss + { + /** + * Boolean indicating whether the component is connected to the Leonardo Minor Servo system + */ + readonly attribute Management::ROTBoolean connected; + + /** + * Current configuration of the Leonardo minor servo system + */ + readonly attribute ROSRTMinorServoFocalConfiguration current_configuration; + + /** + * Boolean indicating whether the system is in simulation mode or not + */ + readonly attribute Management::ROTBoolean simulation_enabled; + + /** + * UNIX Epoch of the Leonardo minor servo system PLC machine + */ + readonly attribute ACS::ROdouble plc_time; + + /** + * Version of the software on the PLC machine + */ + readonly attribute ACS::ROstring plc_version; + + /** + * Enumeration indicating whether the system is controlled by VBrain or DISCOS + */ + readonly attribute ROSRTMinorServoControlStatus control; + + /** + * Boolean indicating whether all the axes are powered or not + */ + readonly attribute Management::ROTBoolean power; + + /** + * Boolean indicating whether the system entered an emergency status + */ + readonly attribute Management::ROTBoolean emergency; + + /** + * Position of the gregorian cover + */ + readonly attribute ROSRTMinorServoGregorianCoverStatus gregorian_cover; + + /** + * UNIX Epoch of the last executed command (STATUS commands are not shown here) + */ + readonly attribute ACS::ROdouble last_executed_command; + + /** + * This command sets all the minor servos involved in the current focal configuration to their position calculated from the elevation argument + * @param elevation, the elevation the minor servos should use to calculate their position + * @throw MinorServoErrors::MinorServoErrorsEx + */ + void preset(in double elevation) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This command opens or closes the gregorian cover + * @param value, the desired gregorian cover position, accepted values are 'open', 'OPEN', 'closed' or 'CLOSED' + * @throw MinorServoErrors::MinorServoErrorsEx + */ + //void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); + }; +}; + +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl new file mode 100644 index 000000000..6addf4c0d --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -0,0 +1,102 @@ +/***************************************************************\ + * Author: Giuseppe Carboni <giuseppe.carboni@inaf.it> +\***************************************************************/ +#ifndef __SRTMINORSERVOCOMMON_MIDL__ +#define __SRTMINORSERVOCOMMON_MIDL__ + +#include <baci.idl> +#include <enumpropMACRO.idl> +#include <ManagmentDefinitions.idl> +#include <MinorServoDefinitions.idl> +#include <ComponentErrors.idl> +#include <MinorServoErrors.idl> + +#pragma prefix "alma" + +module MinorServo +{ + /** + * Enumerator which indicates a Leonardo minor servo configuration + */ + enum SRTMinorServoFocalConfiguration + { + CONFIGURATION_UNKNOWN, + CONFIGURATION_PARK, + CONFIGURATION_PRIMARY, + CONFIGURATION_GREGORIAN1, + CONFIGURATION_GREGORIAN2, + CONFIGURATION_GREGORIAN3, + CONFIGURATION_GREGORIAN4, + CONFIGURATION_GREGORIAN5, + CONFIGURATION_GREGORIAN6, + CONFIGURATION_GREGORIAN7, + CONFIGURATION_GREGORIAN8, + CONFIGURATION_BWG1, + CONFIGURATION_BWG2, + CONFIGURATION_BWG3, + CONFIGURATION_BWG4 + }; + ACS_ENUM(SRTMinorServoFocalConfiguration); + + /** + * Enumerator which indicates the status of the control for the Leonardo minor servo system + */ + enum SRTMinorServoControlStatus + { + CONTROL_DISCOS, + CONTROL_VBRAIN + }; + ACS_ENUM(SRTMinorServoControlStatus); + + /** + * Enumerator which indicates the position of the gregorian cover + */ + enum SRTMinorServoGregorianCoverStatus + { + COVER_STATUS_UNKNOWN, + COVER_STATUS_CLOSED, + COVER_STATUS_OPEN + }; + ACS_ENUM(SRTMinorServoGregorianCoverStatus); + + /** + * Enumerator which indicates the status of a servo drive cabinet + */ + enum SRTMinorServoCabinetStatus + { + DRIVE_CABINET_OK, + DRIVE_CABINET_WARNING, + DRIVE_CABINET_ERROR + }; + ACS_ENUM(SRTMinorServoCabinetStatus); + + /** + * Enumerator which indicates the operating mode of a single servo + */ + enum SRTMinorServoOperativeMode + { + OPERATIVE_MODE_UNKNOWN, + OPERATIVE_MODE_SETUP, + OPERATIVE_MODE_STOW, + OPERATIVE_MODE_STOP, + OPERATIVE_MODE_PRESET, + OPERATIVE_MODE_PROGRAMTRACK + }; + ACS_ENUM(SRTMinorServoOperativeMode); + + /** + * Enumerator which indicates the type of movement made by the whole system (i.e.: performing setup, parking, tracking...) + */ + enum SRTMinorServoMotionStatus + { + MOTION_STATUS_UNCONFIGURED, + MOTION_STATUS_STARTING, + MOTION_STATUS_CONFIGURED, + MOTION_STATUS_TRACKING, + MOTION_STATUS_PARKING, + MOTION_STATUS_PARKED, + MOTION_STATUS_ERROR + }; + ACS_ENUM(SRTMinorServoMotionStatus); +}; +#endif diff --git a/SRT/Interfaces/SRTMinorServoInterface/src/Makefile b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile new file mode 100644 index 000000000..9cac56365 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/src/Makefile @@ -0,0 +1,64 @@ +#************************************************************************************** +# E.S.O. - ACS project +# +# Makefile of SRTMinorServo IDL +# +#-------------------------------------------------------------------------------------- +# Giuseppe Carboni (giuseppe.carboni@inaf.it) +#-------------------------------------------------------------------------------------- +# +#************************************************************************************** + +#************************************************************************************** +# This Makefile follows VLT Standards (see Makefile(5) for more). +#************************************************************************************** + +MAKE_PDF = ON + +# list of all possible C-sources (used to create automatic dependencies) +# ------------------------------ +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +# +# IDL FILES +# +IDL_FILES = SRTMinorServoBoss SRTMinorServo SRTMinorServoCommon + +SRTMinorServoCommonStubs_LIBS = baciStubs ManagmentDefinitionsStubs MinorServoDefinitionsStubs ComponentErrorsStubs MinorServoErrorsStubs +SRTMinorServoStubs_LIBS = SRTMinorServoCommonStubs +SRTMinorServoBossStubs_LIBS = SRTMinorServoCommonStubs MinorServoBossStubs + +# +# INCLUDE STANDARDS +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + + +# TARGETS +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + $(RM) *~ ../include/*~ ../idl/*~ ../*~ ../../*~ core + $(RM) ../doc/html + $(RM) tmp.txt acsexmplbeans.jar ../doc/abeans.log + @echo " . . . clean done" + +clean_dist : clean clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + # cp ../doc/html/group__ACSEXMPLDOC.html ../doc/html/main.html + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + +#___oOo___ diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/Makefile b/SRT/Interfaces/SRTMinorServoInterface/test/Makefile new file mode 100644 index 000000000..e70daa63e --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/Makefile @@ -0,0 +1,92 @@ +# CPP UNIT TESTING SETUP +#-------------- +# GTEST_HOME=/usr/local/include/gtest +# GMOCK_HOME=/usr/local/include/gmock +# GTEST_LIBS=gtest gtest_main + +# USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# USER_LIBS=C++ pthread +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +# EXECUTABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + python -m unittest functional/commands + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + rm -rf ../lib/python/site-packages/* + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Servers/SRTMinorServo/test/external/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/external/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/external/__init__.py rename to SRT/Interfaces/SRTMinorServoInterface/test/external/__init__.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/__init__.py rename to SRT/Interfaces/SRTMinorServoInterface/test/functional/__init__.py diff --git a/SRT/Servers/SRTMinorServo/test/pyunit/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/__init__.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/pyunit/__init__.py rename to SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/__init__.py diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py new file mode 100644 index 000000000..aa862cae0 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_servoSetup.py @@ -0,0 +1,62 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestServoSetupCmd(unittest.TestCase): + """Test the servoSetup command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_code(self): + success, answer = self.boss.command('servoSetup=FOO') + self.assertFalse(success) + time.sleep(0.2) + if self.boss.isStarting(): + self.wait_ready() + + def test_right_code(self): + success, answer = self.boss.command('servoSetup=' + self.setup_code) + self.assertTrue(success) + time.sleep(0.2) + if self.boss.isStarting(): + self.wait_ready() + + def wait_ready(self): + while not self.boss.isReady(): + time.sleep(0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from PyMinorServoTest import simunittest + simunittest.run(TestServoSetupCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py new file mode 100644 index 000000000..a4d0b257d --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoASConfiguration.py @@ -0,0 +1,44 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from PyMinorServoTest import simunittest +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoASConfigurationCmd(unittest.TestCase): + """Test the setServoASConfiguration command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_axis_code(self): + success, answer = self.boss.command('setServoASConfiguration=FOO') + self.assertFalse(success) + + def test_right_axis_code(self): + success, answer = self.boss.command('setServoASConfiguration=on') + self.assertTrue(success) + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + simunittest.run(TestSetServoASConfigurationCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py new file mode 100644 index 000000000..7d67f7ad1 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoElevationTracking.py @@ -0,0 +1,46 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoElevationTrackingCmd(unittest.TestCase): + """Test the setServoElevationTracking command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_flag(self): + success, answer = self.boss.command('setServoElevationTracking=FOO') + self.assertFalse(success) + + def test_right_flag(self): + #FIXME: we need servoSetup before this + success, answer = self.boss.command('setServoElevationTracking=on') + self.assertTrue(success) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from PyMinorServoTest import simunittest + simunittest.run(TestSetServoElevationTrackingCmd) diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py new file mode 100644 index 000000000..64888d527 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/commands/test_setServoOffset.py @@ -0,0 +1,38 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetServoOffsetCmd(unittest.TestCase): + """Test the setServoOffset command""" + + telescope = os.getenv('STATION') + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.boss.park() + self.client.releaseComponent('MINORSERVO/Boss') + + def test_wrong_axis_code(self): + success, answer = self.boss.command('setServoOffset=FOO_TX,0') + self.assertFalse(success) + + +if __name__ == '__main__': + unittest.main() diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py new file mode 100644 index 000000000..98ab9110f --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_clearUserOffset.py @@ -0,0 +1,58 @@ +from __future__ import with_statement + +import os +import math +import time +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestClearUserOffset(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.clearUserOffset('FOO') + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestClearUserOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py new file mode 100644 index 000000000..ed2b37f2c --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesInfo.py @@ -0,0 +1,92 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime + +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestGetAxesInfo(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + cls.client.disconnect() + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + with self.assertRaises(MinorServoErrorsEx): + axes, units = self.boss.getAxesInfo() + + def test_ready(self): + """Get the axes information""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + axes, units = self.boss.getAxesInfo() + self.assertTrue(any(axes)) + self.assertTrue(any(units)) + self.assertEqual(len(units), len(axes)) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetAxesInfo, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py new file mode 100644 index 000000000..7a1f57511 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getAxesPosition.py @@ -0,0 +1,87 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime + +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestGetAxesPosition(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + + def tearDown(self): + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + with self.assertRaises(MinorServoErrorsEx): + position = self.boss.getAxesPosition(0) + + def test_ready(self): + """Get the axes position""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + position = self.boss.getAxesPosition(0) + self.assertTrue(any(position)) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetAxesPosition, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py new file mode 100644 index 000000000..600c3ea58 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_getCentralScanPosition.py @@ -0,0 +1,58 @@ +from __future__ import with_statement + +import os + +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + +class TestGetCentralScanPosition(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + + @classmethod + def tearDownClass(cls): + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.client = PySimpleClient() + self.boss = self.client.getComponent('MINORSERVO/Boss') + + def tearDown(self): + self.client.releaseComponent('MINORSERVO/Boss') + + def test_scan_not_active(self): + """Raise a MinorServoErrorsEx if the scan is not active""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.getCentralScanPosition() + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestGetCentralScanPosition, 'srt-mscu-sim') + diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py new file mode 100644 index 000000000..892aa9be6 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_position.py @@ -0,0 +1,126 @@ +from __future__ import with_statement +import random +import math +import time +import os +from datetime import datetime + +import unittest +import Management +import MinorServo +import Antenna + +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp +from Acspy.Clients.SimpleClient import PySimpleClient +from Acspy.Util import ACSCorba + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class PositionTest(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.axis_code='SRP_TZ' if self.telescope == 'SRT' else 'Z' + setupCode = 'KKG' if self.telescope == 'SRT' else 'CCC' + # Wait (maximum one minute) in case the boss is parking + if self.boss.isParking(): + t0 = datetime.now() + while self.boss.isParking() and (datetime.now() - t0).seconds < 60: + time.sleep(2) + if self.boss.isParking(): + self.fail('The system can not exit form a parking state') + + if self.boss.getActualSetup() != setupCode: + self.boss.setup(setupCode) + # Wait (maximum 5 minutes) in case the boss is starting + t0 = datetime.now() + while not self.boss.isReady() and (datetime.now() - t0).seconds < 60*5: + time.sleep(2) + if not self.boss.isReady(): + self.fail('The system is not ready for executing the tests') + self.boss.setElevationTracking('OFF') + self.boss.setASConfiguration('OFF') + axes, units = self.boss.getAxesInfo() + self.idx = axes.index(self.axis_code) + + def tearDown(self): + # self.boss.clearUserOffset(self.axis_code) + self.boss.setUserOffset(self.axis_code, 0) + self.wait_tracking() + + def test_get_current_position(self): + timestamp = getTimeStamp().value + position = self.get_position() + position_now = self.get_position(timestamp) + self.assertAlmostEqual(position, position_now, delta=0.1) + + def test_get_offset_position(self): + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + position_now = self.get_position() + self.assertAlmostEqual(position_now, position + 10, delta=0.1) + + def test_get_past_position(self): + timestamp = getTimeStamp().value + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + position_past = self.get_position(timestamp) + self.assertAlmostEqual(position, position_past, delta=0.1) + + def test_get_past_position_with_sleep(self): + timestamp = getTimeStamp().value + position = self.get_position() + self.boss.setUserOffset(self.axis_code, 10) + self.wait_tracking() + time.sleep(10) + position_past = self.get_position(timestamp) + self.assertAlmostEqual(position, position_past, delta=0.1) + + def wait_tracking(self): + time.sleep(1) # Give the time to command the new position + # TODO: we need a better solution than this sleep to be sure the tests + # procuce always the same results + while not self.boss.isTracking(): + time.sleep(0.1) + + def get_position(self, timestamp=0): + return self.boss.getAxesPosition(timestamp)[self.idx] + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main(verbosity=2, failfast=True) # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(PositionTest, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py new file mode 100644 index 000000000..1c0c266f8 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_scan.py @@ -0,0 +1,430 @@ +from __future__ import with_statement +import random +import math +import time +import os +from datetime import datetime + +import unittest +import Management +import MinorServo +import Antenna + +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp +from Acspy.Clients.SimpleClient import PySimpleClient +from Acspy.Util import ACSCorba + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class ScanBaseTest(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + cls.client.disconnect() + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.antennaInfo = Antenna.TRunTimeParameters( + targetName='dummy', + azimuth=math.pi, + elevation=math.pi/2 * 1/random.randrange(2, 10), + rightAscension=0, + declination=0, + startEpoch=getTimeStamp().value + 100000000, + onTheFly=False, + slewingTime=100000000, + section=Antenna.ANT_SOUTH, + axis=Management.MNG_TRACK, + timeToStop=0) + + self.scan = MinorServo.MinorServoScan( + range=20, + total_time=100000000, # 10 seconds + axis_code='SRP_TZ' if self.telescope == 'SRT' else 'Z', + is_empty_scan=False) + + def tearDown(self): + if self.boss.isScanActive(): + t = self.boss.closeScan() + self.waitUntilTime(t) + + def waitUntilTime(self, targetTime): + while getTimeStamp().value < targetTime: + time.sleep(0.1) + + def waitUntil(self, action, value): + """For instance: waitUntil(isReady, True)""" + while action() != value: + time.sleep(0.1) + + +class ScanTest(ScanBaseTest): + """Test checkScan(), startScan() and closeScan()""" + + def setUp(self): + super(ScanTest, self).setUp() + setupCode = 'KKG' if self.telescope == 'SRT' else 'CCC' + + # Wait (maximum one minute) in case the boss is parking + if self.boss.isParking(): + t0 = datetime.now() + while self.boss.isParking() and (datetime.now() - t0).seconds < 60: + time.sleep(2) + if self.boss.isParking(): + self.fail('The system can not exit form a parking state') + + if self.boss.getActualSetup() != setupCode or not self.boss.isReady(): + self.boss.setup(setupCode) + + # Wait (maximum 5 minutes) in case the boss is starting + t0 = datetime.now() + while not self.boss.isReady() and (datetime.now() - t0).seconds < 60*5: + time.sleep(2) + + if not self.boss.isReady(): + self.fail('The system is not ready for executing the tests') + + self.boss.setElevationTracking('OFF') + self.boss.setASConfiguration('OFF') + axes, units = self.boss.getAxesInfo() + self.idx = axes.index(self.scan.axis_code) + + getPosition = getattr(self, 'get%sPosition' %self.telescope) + centerScanPosition = getPosition( + self.boss.getActualSetup(), + 'SRP', + math.degrees(self.antennaInfo.elevation)) + self.centerScan = centerScanPosition[self.idx] + + def test_startScan_empty_scan_system_ready(self): + """Do nothing in case of empty scan and system ready""" + self.scan.is_empty_scan = True + startTime = 0 + self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_startScan_empty_scan_system_not_ready(self): + """Do nothing in case of empty scan and system NOT ready""" + self.scan.is_empty_scan = True + startTime = 0 + self.boss.park() + self.waitUntil(self.boss.isReady, False) + self.assertFalse(self.boss.isReady()) + self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_startScan_ASAP(self): + """Starting time unknown: the scan must start ASAP""" + startTime = 0 + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertGreater(t, getTimeStamp().value) + self.isAssertScan(t) + + def test_startScan_ASAP_at_checkScan_time(self): + """Starting time given by checkScan()""" + startTime = 0 + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + startTime = msInfo.startEpoch + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertGreater(t, getTimeStamp().value) + self.isAssertScan(t) + + def test_startScan_at_given_time(self): + """Start at given time""" + startTime = getTimeStamp().value + 60*10**7 # Start in one minute + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.assertEqual(t, startTime) + self.isAssertScan(t) + + def test_startScan_too_fast(self): + """Servo not enough fast for accomplishing the scan in total_time""" + startTime = getTimeStamp().value + 60*10**7 # Start in one minute + self.scan.total_time = 5000000 # 0.5 seconds + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_startScan_out_of_range(self): + """Scan out of the servo position limits""" + startTime = 0 + self.scan.range = 5000 # 5 meters + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_startScan_time_too_close_to_now(self): + """Starting time too close to the current time""" + startTime = getTimeStamp().value + 1*10**7 # Start in 1 second from now + with self.assertRaises(MinorServoErrorsEx): + self.boss.startScan(startTime, self.scan, self.antennaInfo) + + def test_closeScan_time_to_stop(self): + """Return the time_to_stop""" + startTime = 0 + t = self.boss.startScan(startTime, self.scan, self.antennaInfo) + self.waitUntilTime(startTime) + time_to_stop = self.boss.closeScan() + # The time_to_stop should be greater than now + self.assertGreater(time_to_stop, getTimeStamp().value) + + def test_checkScan_with_scanActive(self): + """checkScan() raises an exception in case there is an active scan.""" + startTime = getTimeStamp().value + 15*10**7 # Start in 15 seconds + self.boss.startScan(startTime, self.scan, self.antennaInfo) + # Wait untill the scan finishes (one second after the scan) + targetTime = startTime + self.scan.total_time + 1*10**7 + self.waitUntilTime(targetTime) + with self.assertRaises(MinorServoErrorsEx): + self.boss.checkScan(startTime, self.scan, self.antennaInfo) + + def test_checkScan_with_scan_in_execution(self): + """checkScan() raises an exception in case there is a scan in execution.""" + startTime = getTimeStamp().value + 15*10**7 # Start in 15 seconds + self.boss.startScan(startTime, self.scan, self.antennaInfo) + # Wait untill the scan starts + targetTime = startTime + 2*10**7 # 2 seconds after the starting time + self.waitUntilTime(targetTime) + with self.assertRaises(MinorServoErrorsEx): + self.boss.checkScan(startTime, self.scan, self.antennaInfo) + + def test_checkScan_empty_scan_start_ASAP(self): + """Starting time unknown: the scan must start ASAP""" + startTime = 0 + self.scan.is_empty_scan = True + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertGreater(msInfo.startEpoch, getTimeStamp().value) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual(msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_not_empty_scan_start_ASAP(self): + """Scan not empty: starting time unknown, the scan must start ASAP""" + startTime = 0 + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertTrue(msInfo.onTheFly) + self.assertGreater(msInfo.startEpoch, getTimeStamp().value) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_empty_scan_start_at_given_time(self): + """Starting time known and achievable""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute + self.scan.is_empty_scan = True + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertFalse(msInfo.onTheFly) + self.assertEqual(msInfo.startEpoch, startTime) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_not_empty_scan_start_at_given_time(self): + """Scan not empty: starting time known and achievable""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute + + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertTrue(res) + self.assertAlmostEqual(msInfo.centerScan, self.centerScan, delta=0.01) + self.assertTrue(msInfo.onTheFly) + self.assertEqual(msInfo.startEpoch, startTime) + self.assertEqual(msInfo.scanAxis, self.scan.axis_code) + self.assertEqual( + msInfo.timeToStop, + msInfo.startEpoch + self.scan.total_time) + + def test_checkScan_too_fast(self): + """Servo not enough fast for accomplishing the scan in total_time""" + startTime = getTimeStamp().value + 60*10**7 # Start in a minute from now + self.scan.total_time = 5000000 # 0.5 seconds + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def test_checkScan_out_of_range(self): + """The scan goes out of the servo position limits""" + startTime = 0 + self.scan.range = 1000 # 1 meter + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def test_checkScan_start_time_too_close_to_now(self): + """Starting time too close to the current time""" + startTime = getTimeStamp().value + 1*10**6 # Start in 0.1 second from now + res, msInfo = self.boss.checkScan(startTime, self.scan, self.antennaInfo) + self.assertFalse(res) + + def isAssertScan(self, startTime): + self.assertFalse(self.boss.isScanning()) + self.assertTrue(self.boss.isScanActive()) + # Assertions to verify right after startTime + self.waitUntilTime(startTime) + self.assertTrue(self.boss.isScanning()) + self.assertTrue(self.boss.isScanActive()) + self.assertAlmostEqual( + self.boss.getCentralScanPosition(), + self.centerScan, + delta=0.1) + # Wait untill the scan finishes (one second after the scan) + targetTime = startTime + self.scan.total_time + 1*10**7 + self.waitUntilTime(targetTime) + startPos = self.boss.getAxesPosition(startTime)[self.idx] + endPos = self.boss.getAxesPosition(targetTime)[self.idx] + self.assertTrue(self.boss.isScanActive()) + self.assertFalse(self.boss.isScanning()) + self.assertAlmostEqual(startPos + self.scan.range, endPos, delta=0.1) + + def getSRTPosition(self, conf_code, servo_name, elevation=45): + """Return the servo position related to the elevation. + + Parameters: + - conf_code: value returned by getActualSetup() (CCB, CCB_ASACTIVE,...) + - servo_name: SRP, GFR, M3R, PFP + - elevation: the antenna elevation, in degrees + """ + dal = ACSCorba.cdb() + dao = dal.get_DAO_Servant('alma/MINORSERVO/Boss') + body = dao.get_field_data(conf_code) + configurations = body.strip().split('@') + servos_conf = {} + for conf in configurations: + if conf: + name, value = conf.split(':') + servos_conf[name.strip()] = value.strip() + + # Example of servo_conf: + # >>> servos_conf['PFP'] + # 'RY(mm)=(-25.75); TX(mm)=(458); TZ(mm)=(-46.2);' + srp_conf = servos_conf[servo_name] + srp_items = [item.strip() for item in srp_conf.split(';')] + srp_axes = [] + for item in srp_items: + if '=' in item: + name, value = item.split('=') + srp_axes.append(value.strip()) + + # Example of srp_axes: + # >>> srp_axes + # ['(-25.75)', '(458)', '(-46.2)'] + position = [] + for axis in srp_axes: + axis = axis.lstrip('(') + axis = axis.rstrip(')') + # At this point, axis is something like '-0.23, 0.01, 3.2' + coeffs = [float(item) for item in axis.split(',')] + value = 0 + for idx, coeff in enumerate(coeffs): + value += coeff * elevation**idx + # Value: -25.75*elevation**0 + 485*elevation**1 -46.2*elevation**2 + position.append(value) + return position + + def getMEDPosition(self, conf_code, servo_name="", elevation=45): + """Return the servo position related to the elevation for MED + radiotelescope. + + Parameters: + - conf_code: value returned by getActualSetup() (CCC, KKC,...) + - servo_name: "" not use at Med + - elevation: the antenna elevation, in degrees + """ + from xml.dom.minidom import parseString + dal = ACSCorba.cdb() + dao = dal.get_DAO('alma/DataBlock/MinorServoParameters') + root = parseString(dao).documentElement + position = [] + coefficients = [] + for minorservo in root.getElementsByTagName("MinorServo"): + for code in minorservo.getElementsByTagName("code"): + if code.firstChild.data == conf_code: + if minorservo.getElementsByTagName("primary")[0].firstChild.data == "1": + yp_string_poly = minorservo.getElementsByTagName("YPaxis")[0].firstChild.data + coefficients.append(map(float,yp_string_poly.split(",")[3:])) + zp_string_poly = minorservo.getElementsByTagName("ZPaxis")[0].firstChild.data + coefficients.append(map(float,zp_string_poly.split(",")[3:])) + else: + x_string_poly = minorservo.getElementsByTagName("Xaxis")[0].firstChild.data + coefficients.append(map(float,x_string_poly.split(",")[3:])) + y_string_poly = minorservo.getElementsByTagName("Yaxis")[0].firstChild.data + coefficients.append(map(float,y_string_poly.split(",")[3:])) + z_string_poly = minorservo.getElementsByTagName("Zaxis")[0].firstChild.data + coefficients.append(map(float,z_string_poly.split(",")[3:])) + tx_string_poly = minorservo.getElementsByTagName("THETAXaxis")[0].firstChild.data + coefficients.append(map(float,tx_string_poly.split(",")[3:])) + ty_string_poly = minorservo.getElementsByTagName("THETAYaxis")[0].firstChild.data + coefficients.append(map(float,ty_string_poly.split(",")[3:])) + for coefficient in coefficients: + axis_position = 0 + for exp, coeff in enumerate(coefficient): + axis_position += (elevation)**(exp) * coeff + position.append(axis_position) + return position + + +class ScanInterfaceTest(ScanBaseTest): + """Test the interface of startScan() and closeScan()""" + + def test_checkScan_not_empty_system_not_ready(self): + """Raise a MinorServoErrorsEx in case the system is not ready""" + try: + with self.assertRaises(MinorServoErrorsEx): + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + except: + with self.assertRaises(MinorServoErrorsEx): + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + + def _test_checkScan_empty_scan_system_not_ready(self): + """Do nothing in case of empty scan and system NOT ready""" + self.scan.is_empty_scan = True + self.assertFalse(self.boss.isReady()) + t = self.boss.checkScan(0, self.scan, self.antennaInfo) + self.assertFalse(self.boss.isScanActive()) + + def test_closeScan_scan_not_active(self): + """Do nothing in case no scan is active""" + try: + self.boss.closeScan() + except: + self.boss.closeScan() + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main(verbosity=2, failfast=True) # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(ScanTest, 'srt-mscu-sim') + simulator.run(ScanInterfaceTest, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py new file mode 100644 index 000000000..b9cf28096 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setASConfiguration.py @@ -0,0 +1,56 @@ +from __future__ import with_statement + +import os +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetASConfiguration(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_right_flag(self): + """Set the AS configuration properly""" + self.boss.setASConfiguration('on') + self.assertTrue(self.boss.isASConfiguration()) + + def test_wrong_flag(self): + """Raise a MinorServoErrorsEx in case of wrong code""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.setASConfiguration('foo') + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSetASConfiguration, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py new file mode 100644 index 000000000..8f24da6d3 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_setElevationTracking.py @@ -0,0 +1,56 @@ +from __future__ import with_statement + +import os +import unittest + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSetElevationTracking(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def test_right_flag(self): + """Set the elevation tracking properly""" + self.boss.setElevationTracking('on') + self.assertTrue(self.boss.isElevationTrackingEn()) + + def test_wrong_flag(self): + """Raise a MinorServoErrorsEx in case of wrong code""" + with self.assertRaises(MinorServoErrorsEx): + self.boss.setElevationTracking('foo') + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSetElevationTracking, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py new file mode 100644 index 000000000..e25314614 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_systemOffset.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestSystemOffset(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + self.axis_code = "SRP_TX" if self.telescope == "SRT" else "X" + + def tearDown(self): + #self.boss.clearSystemOffset(self.axis_code) + self.boss.setSystemOffset(self.axis_code, 0) # TODO + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + with self.assertRaises(MinorServoErrorsEx): + self.boss.setSystemOffset(self.axis_code + "WRONG", 0) + + def test_get_offset(self): + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + target_offset = 5.0 + self.boss.setSystemOffset(self.axis_code, target_offset) + offset = self.boss.getSystemOffset()[0] # SRP_TX and X both have index 0 + self.assertAlmostEqual(offset, target_offset, delta=0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestSystemOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py new file mode 100644 index 000000000..269c44ce6 --- /dev/null +++ b/SRT/Interfaces/SRTMinorServoInterface/test/functional/test_userOffset.py @@ -0,0 +1,96 @@ +from __future__ import with_statement + +import os +import math +import time +import datetime +import unittest + +import MinorServo +import Management +import Antenna + +from Acspy.Clients.SimpleClient import PySimpleClient +from MinorServoErrors import MinorServoErrorsEx +from Acspy.Common.TimeHelper import getTimeStamp + +from acswrapper.system import acs +from acswrapper.containers import ( + Container, ContainerError, start_containers_and_wait, + stop_containers_and_wait +) + + +__author__ = "Marco Buttu <mbuttu@oa-cagliari.inaf.it>" + + +class TestUserOffset(unittest.TestCase): + + telescope = os.getenv('STATION') + + @classmethod + def setUpClass(cls): + if not acs.is_running(): + acs.start() + cls.containers = [ + Container('MinorServoContainer', 'cpp'), + Container('MinorServoBossContainer', 'cpp'), + ] + try: + start_containers_and_wait(cls.containers) + except ContainerError, ex: + cls.fail(ex.message) + cls.client = PySimpleClient() + cls.boss = cls.client.getComponent('MINORSERVO/Boss') + + @classmethod + def tearDownClass(cls): + cls.client.releaseComponent('MINORSERVO/Boss') + stop_containers_and_wait(cls.containers) + + def setUp(self): + self.setup_code = "CCB" if self.telescope == "SRT" else "CCC" + self.axis_code = "SRP_TX" if self.telescope == "SRT" else "X" + + def tearDown(self): + # self.boss.clearUserOffset(self.axis_code) + self.boss.setUserOffset(self.axis_code, 0) # TODO + self.boss.park() + time.sleep(0.2) + self.wait_parked() + + def test_wrong_servo_name(self): + """Raise a MinorServoErrorsEx in case of wrong servo name""" + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + with self.assertRaises(MinorServoErrorsEx): + self.boss.setUserOffset(self.axis_code + "WRONG", 0) + + def test_get_offset(self): + self.boss.setup(self.setup_code) + counter = 0 # Seconds + now = time_ref = datetime.datetime.now() + while not self.boss.isReady() or (time_ref - now).seconds < 20: + time.sleep(1) + now = datetime.datetime.now() + + target_offset = 5.0 + self.boss.setUserOffset(self.axis_code, target_offset) + offset = self.boss.getUserOffset()[0] # SRP_TX and X both have index 0 + self.assertAlmostEqual(offset, target_offset, delta=0.1) + + def wait_parked(self): + while self.boss.isParking(): + time.sleep(0.1) + + +if __name__ == '__main__': + if 'Configuration' in os.getenv('ACS_CDB'): + unittest.main() # Real test using the antenna CDB + else: + from testing import simulator + simulator.run(TestUserOffset, 'srt-mscu-sim') diff --git a/SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py b/SRT/Interfaces/SRTMinorServoInterface/test/pyunit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTMinorServo/test/unittest.cpp b/SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/test/unittest.cpp rename to SRT/Interfaces/SRTMinorServoInterface/test/unittest.cpp diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h new file mode 100644 index 000000000..a3a33a3bc --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/PySRTMinorServoCommandLibrary.h @@ -0,0 +1,130 @@ +#ifndef _PYSRTMINORSERVOCOMMANDLIBRARY_H +#define _PYSRTMINORSERVOCOMMANDLIBRARY_H + +/** + * PySRTMinorServoCommandLibrary.h + * 2021/12/13 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <boost/python.hpp> +#include <Python.h> +#include "SRTMinorServoCommandLibrary.h" + + +namespace MinorServo +{ + /** + * SRT Minor Servo Command Library Python Wrapper + * + * This class wraps the SRTMinorServoCommandLibrary with boost_python in order to grant access to its static functions via Python + */ + class PySRTMinorServoCommandLibrary : public SRTMinorServoCommandLibrary + { + public: + /** + * Builds the command used to ask the general status of the minor servos or, eventually, a single servo + * @param servo_id the ID string of the eventual single servo to retrieve the status. Send no servo_id argument to retrieve the general status of the system + * @return the composed message + */ + static boost::python::object status(const std::string servo_id = ""); + + /** + * Builds the command used to configure the telescope for a specific focal path + * @param configuration the desired focal path to command to the minor servo systems + * @return the composed message + */ + static boost::python::object setup(const std::string& configuration); + + /* + * Builds the command used to stow a single servo system to a given stow position + * @param servo_id the ID string of the single servo to be stowed + * @param stow_position the position to which the servo have to stow to + * @return the composed message + */ + static boost::python::object stow(const std::string& servo_id, unsigned int stow_position = 1); + + /* + * Builds the command used to stop a single servo system + * @param servo_id the ID string of the single servo to be stopped + * @return the composed message + */ + static boost::python::object stop(const std::string& servo_id); + + /* + * Builds the command used to move a single servo to a given set of coordinates + * This is an overload of the original SRTMinorServoCommandLibrary::preset function + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static boost::python::object preset(const std::string& servo_id, const boost::python::list& coordinates); + + /* + * Builds the command used to provide a single tracking set of coordinates to a single servo + * This is an overload of the original SRTMinorServoCommandLibrary::programTrack function + * @param servo_id the ID of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a Python list containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory + * @return the composed message + */ + static boost::python::object programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const boost::python::list& coordinates, double start_time=-1); + + /* + * Builds the command used to provide a set of offsets to a given servo + * This is an overload of the original SRTMinorServoCommandLibrary::offset function + * @param servo_id the ID of the single servo to be moved + * @param coordinates a Python list containing the N coordinates to be sent to the servo + * @return the composed message + */ + static boost::python::object offset(const std::string& servo_id, const boost::python::list& coordinates); + + /* + * Parses the received answer by splitting it and synamically populating a std::map + * This is an overload of the original SRTMinorServoCommandLibrary::parseAnswer function + * @param answer the string containing the answer received from the VBrain proxy + * @return a Python dictionary containing the answer splitted into keys and values. The keys are always strings, the values can either be int, double or strings. + */ + static boost::python::dict parseAnswer(const std::string& answer); + private: + /* + * Converts the given Python list into a C++ std::vector object + * @param py_list the given Python list to be converted + * @return the composed C++ std::vector containing doubles + */ + static std::vector<double> pylist2cppvector(const boost::python::list& py_list); + + /** + * Converts the given std::string to a Python bytestring + * @param command a reference to the given command string + * @return the bytestring containing the given command string + */ + static boost::python::object stringToBytes(const std::string& command); + }; +} + +/* + * The following 3 lines of code allow the overloaded functions to ignore the optional parameter and use the default one defined in the original SRTMinorServoCommandLibrary header file + */ +BOOST_PYTHON_FUNCTION_OVERLOADS(status, MinorServo::PySRTMinorServoCommandLibrary::status, 0, 1) +BOOST_PYTHON_FUNCTION_OVERLOADS(stow, MinorServo::PySRTMinorServoCommandLibrary::stow, 1, 2) +BOOST_PYTHON_FUNCTION_OVERLOADS(programTrack, MinorServo::PySRTMinorServoCommandLibrary::programTrack, 4, 5) + +/* + * Python module definition. Since the original SRTMinorServoCommandLibrary only contains static functions, we write the Python module with static functions only, omitting the class + */ +BOOST_PYTHON_MODULE(libPySRTMinorServoCommandLibrary) +{ + using namespace boost::python; + def("status", &MinorServo::PySRTMinorServoCommandLibrary::status, status(arg("servo_id") = "")); + def("setup", &MinorServo::PySRTMinorServoCommandLibrary::setup); + def("stow", &MinorServo::PySRTMinorServoCommandLibrary::stow, stow(arg("stow_position") = 1)); + def("stop", &MinorServo::PySRTMinorServoCommandLibrary::stop); + def("preset", &MinorServo::PySRTMinorServoCommandLibrary::preset); + def("programTrack", &MinorServo::PySRTMinorServoCommandLibrary::programTrack, programTrack(arg("start_time") = -1)); + def("offset", &MinorServo::PySRTMinorServoCommandLibrary::offset); + def("parseAnswer", &MinorServo::PySRTMinorServoCommandLibrary::parseAnswer); +} +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h index 4eb606149..702334252 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoCommandLibrary.h @@ -7,66 +7,89 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ +#include "SRTMinorServoContainers.h" #include <sstream> #include <vector> -#include <acstimeEpochHelper.h> -#include <IRA> +#include <map> +#include <variant> -/** - * SRT Minor Servo Command Library - * - * This class features static functions used to build commands to be sent to the PON minor servo control unit of the Sardinia Radio Telescope - */ -class SRTMinorServoCommandLibrary + +#define CLOSER std::string("\r\n") + + +namespace MinorServo { -public: /** - * Builds the command used to ask the status of the MSCU or, eventually, a single servo - * @param servo_id the ID number of the eventual single servo to retrieve the status - * @return the composed message + * SRT Minor Servo Command Library + * + * This class features static functions used to build commands to be sent to the PON minor servo control unit of the Sardinia Radio Telescope */ - static std::string status(int servo_id = -1); + class SRTMinorServoCommandLibrary + { + public: + /** + * Builds the command used to ask the status of the MSCU or, eventually, a single servo + * @param servo_id the ID string of the eventual single servo to retrieve the status. Send no servo_id argument to retrieve the general status of the system + * @return the composed message + */ + static std::string status(const std::string servo_id = ""); - /** - * Builds the command used to configure the telescope for an observation - * @param configuration the desired observing configuration - * @return the composed message - */ - static std::string setup(std::string configuration); + /** + * Builds the command used to configure the telescope for a specific focal path + * @param configuration the desired focal path to command to the minor servo systems + * @return the composed message + */ + static std::string setup(const std::string& configuration); - /* - * Builds the command used to stow a single servo system to a given stow position - * @param servo_id the ID number of the single servo to be stowed - * @param stow_position the position to which the servo have to stow to - * @return the composed message - */ - static std::string stow(unsigned int servo_id, unsigned int stow_position = 0); + /* + * Builds the command used to stow a single servo system to a given stow position + * @param servo_id the ID string of the single servo to be stowed + * @param stow_position the position to which the servo have to stow to + * @return the composed message + */ + static std::string stow(const std::string& servo_id, const unsigned int stow_position = 1); - /* - * Builds the command used to stop a single servo system - * @param servo_id the ID number of the single servo to be stopped - * @return the composed message - */ - static std::string stop(unsigned int servo_id); + /* + * Builds the command used to stop a single servo system + * @param servo_id the ID string of the single servo to be stopped + * @return the composed message + */ + static std::string stop(const std::string& servo_id); - /* - * Builds the command used to move a single servo to a given set of coordinates - * @param servo_id the ID number of the single servo to be moved - * @param coordinates a vector containing the N coordinates to be sent to the servo - * @return the composed message - */ - static std::string preset(unsigned int servo_id, std::vector<double> coordinates); + /* + * Builds the command used to move a single servo to a given set of virtual coordinates + * @param servo_id the ID string of the single servo to be moved + * @param coordinates a vector containing the N coordinates to be sent to the servo + * @return the composed message + */ + static std::string preset(const std::string& servo_id, const std::vector<double>& coordinates); - /* - * Builds the command used to provide a single tracking set of coordinates to a single servo - * @param servo_id the ID number of the single servo to send the command to - * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to - * @param point_id the ID number of the given set of coordinates inside the trajectory - * @param coordinates a vector containing the N coordinates the servo have to move to at the given time - * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX epoch of the starting instant of the trajectory - * @return the composed message - */ - static std::string programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time = -1); -}; + /* + * Builds the command used to provide a single tracking point of virtual coordinates to a single servo + * @param servo_id the ID string of the single servo to send the command to + * @param trajectory_id the ID number of the trajectory the given set of coordinates belongs to + * @param point_id the ID number of the given set of coordinates inside the trajectory + * @param coordinates a vector containing the N coordinates the servo have to move to at the given time + * @param start_time only mandatory for the first point in the trajectory, a double representing the UNIX Epoch of the starting instant of the trajectory + * @return the composed message + */ + static std::string programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const std::vector<double>& coordinates, const double start_time = 0); + + /* + * Builds the command used to send a set of virtual offsets to a single servo + * @param servo_id the ID string of the single servo to send the offsets to + * @param coordinates a vector containing the N offsets to be added the servo coordinates + * @return the composed message + */ + static std::string offset(const std::string& servo_id, const std::vector<double>& coordinates); + + /* + * Parses the received answer by splitting it and dynamically populating a SRTMinorServoAnswerMap object + * @param original_answer the string containing the answer received from the VBrain proxy + * @return a SRTMinorServoAnswerMap dictionary containing the answer splitted into keys and values. The keys are always std::string, the values can either be long, double or std::string. + */ + static SRTMinorServoAnswerMap parseAnswer(const std::string& original_answer); + }; +} #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h new file mode 100644 index 000000000..dfea1df66 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -0,0 +1,894 @@ +#ifndef __SRTMINORSERVOCONTAINERS_H__ +#define __SRTMINORSERVOCONTAINERS_H__ + +/** + * SRTMinorServoContainers.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <map> +#include <vector> +#include <mutex> +#include <shared_mutex> +#include <IRA> +#include <boost/bimap.hpp> +#include <boost/assign.hpp> +#include <SRTMinorServoCommonS.h> +#include "SRTMinorServoUtils.h" + + +namespace MinorServo +{ + /** + * Object used to store some info regarding a scan. + */ + struct SRTMinorServoScan + { + /** + * Name of the servo involved in the scan. + */ + std::string servo_name = ""; + + /** + * Name of the axis involved in the scan. + */ + std::string axis_name = ""; + + /** + * Index of the axis involved in the scan. + */ + size_t axis_index = 0; + + /** + * Range of the scan. + */ + double scan_range = 0; + + /** + * Starting time of the scan. + */ + ACS::Time start_time = 0; + + /** + * Closing time of the scan. + */ + ACS::Time close_time = 0; + + /** + * Duration of the scan. + */ + ACS::TimeInterval scan_duration = 0; + + /** + * Central position of the scan axis. + */ + double central_position = 0; + + /** + * Starting elevation for the scan. + */ + double starting_elevation = 0; + }; + + /** + * This dictionary contains information regarding the possibile focal configurations. + * The key indicates the configuration as known by DISCOS. + * The value is a pair, the first element of the pair is the DISCOS enumeration for the relative Leonardo configuration, + * the second element of the pair indicates whether the configuration has a ASACTIVE twin configuraiton. + */ + 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)}, + {"CCG", std::make_pair(CONFIGURATION_GREGORIAN1, true )}, + {"KKG", std::make_pair(CONFIGURATION_GREGORIAN2, true )}, + {"WWG", std::make_pair(CONFIGURATION_GREGORIAN3, true )}, + {"QQG", std::make_pair(CONFIGURATION_GREGORIAN4, true )}, + {"TRI", std::make_pair(CONFIGURATION_GREGORIAN5, true )}, + {"MISTRAL", std::make_pair(CONFIGURATION_GREGORIAN6, true )}, + {"CCB", std::make_pair(CONFIGURATION_BWG1, true )}, + {"XB", std::make_pair(CONFIGURATION_BWG3, true )}, + }; + + /** + * This dictionary contains the Leonardo focal configurations DISCOS enumerations, alongside their name inside the Leonardo minor servo system. + */ + using LDOConfigurationNameTableType = boost::bimap<SRTMinorServoFocalConfiguration, std::string>; + const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of<LDOConfigurationNameTableType::relation> + (CONFIGURATION_PRIMARY, "Primario") + (CONFIGURATION_GREGORIAN1, "Gregoriano 1") + (CONFIGURATION_GREGORIAN2, "Gregoriano 2") + (CONFIGURATION_GREGORIAN3, "Gregoriano 3") + (CONFIGURATION_GREGORIAN4, "Gregoriano 4") + (CONFIGURATION_GREGORIAN5, "Gregoriano 5") + (CONFIGURATION_GREGORIAN6, "Gregoriano 6") + (CONFIGURATION_GREGORIAN7, "Gregoriano 7") + (CONFIGURATION_GREGORIAN8, "Gregoriano 8") + (CONFIGURATION_BWG1, "BWG1") + (CONFIGURATION_BWG2, "BWG2") + (CONFIGURATION_BWG3, "BWG3") + (CONFIGURATION_BWG4, "BWG4"); + + /** + * This dictionary containes the Leonardo focal configurations DISCOS enumerations, alongside their ID counterpart as read from the Leonardo minor servo system proxy. + */ + using LDOConfigurationIDTableType = boost::bimap<SRTMinorServoFocalConfiguration, unsigned int>; + const LDOConfigurationIDTableType LDOConfigurationIDTable = boost::assign::list_of<LDOConfigurationIDTableType::relation> + (CONFIGURATION_UNKNOWN, 0) + (CONFIGURATION_PRIMARY, 1) + (CONFIGURATION_GREGORIAN1, 11) + (CONFIGURATION_GREGORIAN2, 12) + (CONFIGURATION_GREGORIAN3, 13) + (CONFIGURATION_GREGORIAN4, 14) + (CONFIGURATION_GREGORIAN5, 15) + (CONFIGURATION_GREGORIAN6, 16) + (CONFIGURATION_GREGORIAN7, 17) + (CONFIGURATION_GREGORIAN8, 18) + (CONFIGURATION_BWG1, 21) + (CONFIGURATION_BWG2, 22) + (CONFIGURATION_BWG3, 23) + (CONFIGURATION_BWG4, 24); + + using SRTMinorServoLookupTable = std::map<std::string, std::vector<double>>; + + /** + * This class implements a queue of time tagged positions. it extends a simple std::map with some specific methods. + */ + class SRTMinorServoPositionsQueue : private std::map<ACS::Time, const std::vector<double>> + { + public: + /** + * Default constructor. Used only for lazy initialization. + */ + SRTMinorServoPositionsQueue() : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(0), m_vector_size(0), m_mutex() {} + + /** + * Constructor with queue size as parameter. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + */ + SRTMinorServoPositionsQueue(size_t queue_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(0), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + } + + /** + * Constructor with queue size and vector size as parameters. + * @param queue_size the maximum size of the queue. Once this value is reached the oldest entry gets discarded. + * @param vector_size the length of the vectors that this object will store. Once set it cannot be changed. This assures we are always dealing with the same number of virtual axes. + */ + SRTMinorServoPositionsQueue(size_t queue_size, size_t vector_size) : std::map<ACS::Time, const std::vector<double>>(), m_queue_size(queue_size), m_vector_size(vector_size), m_mutex() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + queueLazyInit(queue_size); + vectorLazyInit(vector_size); + } + + /** + * Custom assignment operator. It locks both the current object and the passed one with a mutex in order for the assignment operation to be thread safe. + * @param other the other SRTMinorServoPositionsQueue we are assigning its value to the current object. + * @return the newly populated SRTMinorServoPositionsQueue object. + */ + SRTMinorServoPositionsQueue& operator=(const SRTMinorServoPositionsQueue& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::unique_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + m_queue_size = other.m_queue_size; + m_vector_size = other.m_vector_size; + std::map<ACS::Time, const std::vector<double>>::operator=(other); + } + + return *this; + } + + /** + * Put method, with initializer list argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::initializer_list<double>& values) + { + put(key, std::vector<double>(values)); + } + + /** + * Put method, with ACS::doubleSeq argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const ACS::doubleSeq& values) + { + put(key, std::vector<double>(values.get_buffer(), values.get_buffer() + values.length())); + } + + /** + * Put method, with std::vector<double> argument. + * @param key the time the given coordinates are related to. + * @param values the given set of coordinates. + */ + void put(ACS::Time key, const std::vector<double>& values) + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + + vectorLazyInit(values.size()); + queueLazyInit(m_queue_size); + if(std::map<ACS::Time, const std::vector<double>>::size() == m_queue_size) + { + // Remove the oldest one + this->erase(this->begin()); + } + this->emplace(std::make_pair(key, values)); + } + + /** + * Get method. It retrieves a set of coordinates from a given ACS::Time, giving back the time as well. + * @param key the time the user wants to retrieve the related coordinates. + * @param exact a boolean indicating whether the user wants to interpolate (false) or not (true). + * @throw std::logic_error when the queue is empty. + * @throw std::out_of_range when the exact point was not found in the queue. + * @return a std::pair containing the ACS::Time as first element and the set of coordinates as second element. + */ + std::pair<ACS::Time, const std::vector<double>> get(ACS::Time key, bool exact = false) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + + if(const SRTMinorServoPositionsQueue::iterator point = this->find(key); point != this->end()) + { + return *point; + } + else if(exact) + { + // Exact point not found, we throw an exception + throw std::out_of_range("Exact point not found!"); + } + else + { + // Key not found, should check outside the boundaries or interpolate + if(key <= this->begin()->first) + { + // Aksed for a timestamp older than the earliest point in the queue + return *this->cbegin(); + } + else if(key >= this->rbegin()->first) + { + // Asked for a timestamp newer than the latest point in the queue + return *this->crbegin(); + } + else + { + std::vector<double> positions(m_vector_size, 0.0); + SRTMinorServoPositionsQueue::iterator p0, p1; + p1 = this->lower_bound(key); + p0 = p1; + p0--; + + // Calculate the linear fit for each position + double fraction = (key - p0->first) / (p1->first - p0->first); + + for(size_t i = 0; i < m_vector_size; i++) + { + positions[i] = p0->second[i] + fraction * (p1->second[i] - p0->second[i]); + } + + return std::make_pair(key, (const std::vector<double>)positions); + } + } + } + + /** + * Size method thread safe override. + * @return the number of elements in the queue. + */ + size_t size() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return std::map<ACS::Time, const std::vector<double>>::size(); + } + + /** + * Clear method, thread safe. It empties the queue. + */ + void clear() + { + std::unique_lock<std::shared_mutex> lock(m_mutex); + std::map<ACS::Time, const std::vector<double>>::clear(); + } + + /** + * This method returns the number of points having a higher tag time than the one passed as argument. + * @param t the time threshold. This method counts and returns the number of points having a higher time than this value. + * @throw std::logic_error when the queue is empty. + * @return the number of points having a higher time than the given one. + */ + size_t getRemainingPoints(ACS::Time t) + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + if(this->empty()) + { + throw std::logic_error("The queue is empty!"); + } + return std::distance(this->lower_bound(t), this->end()); + } + + private: + /** + * This method gets called by the constructors for the lazy intialization of the queue size value. + * @param queue_size the desired maximum queue size. + * @throw std::length_error when the desired queue size is equal to 0 or when it is greater than the maximum size that can be currently allocated. + */ + void queueLazyInit(size_t queue_size) + { + if(m_queue_size == 0) + { + if(queue_size == 0) + { + // The maximum queue size was not set yet + throw std::length_error("Queue length cannot be 0."); + } + else if(queue_size > this->max_size()) + { + // The requested size is greater than the maximum possible queue size + throw std::length_error("Queue length cannot exceed " + std::to_string(this->max_size()) + "."); + } + else + { + m_queue_size = queue_size; + } + } + } + + /** + * This method gets called by the constructors for the lazy initialization of the vector size value. + * @param vector_size the desired length of the vector containing the set of points. + * @throw std::length_error when the desired vector size is equal to 0 or when it is longer than 6. We don't have more than 6 axes, so we hard cap this value to 6. + * It also throws this when the user tries to insert a vector with different lenght then the already defined one. This ensures all stored vecors are of equal length. + */ + void vectorLazyInit(size_t vector_size) + { + if(vector_size == 0) + { + throw std::length_error("Vector length cannot be 0."); + } + else if(vector_size > 6) + { + // Hard cap to 6, we don't need more + throw std::length_error("Vector length cannot be longer than 6."); + } + else if(m_vector_size == 0) + { + m_vector_size = vector_size; + } + else if(m_vector_size != vector_size) + { + throw std::length_error("New vector length does not match the initial one."); + } + } + + /** + * The maximum size of the queue. + */ + size_t m_queue_size; + + /** + * The desired length of the vectors stored by this object. + */ + size_t m_vector_size; + + /** + * The shared mutex used for access synchronization. + */ + mutable std::shared_mutex m_mutex; + }; + + + class SRTMinorServoAnswerMap : private std::map<std::string, std::variant<long, double, std::string>> + { + /** + * This class privately extends the type std::map<std::string, std::variant<long, double, std::string>>. + * It is therefore an std::map which can hold different types of values, such as long, double and str::string, in the same container. + * It is used to store the answers received from the SRTMinorServo Leonardo system. + * This design was critical since all the received values have heterogeneous keys and values. + * With this object, the SRTMinorServoSocket can correctly retrieve and store all the received values without having to know the keys or types a priori. + */ + + /* + * Declare this class as friend since it will have to iterate through the inner map + */ + friend class PySRTMinorServoCommandLibrary; + public: + /** + * Use the same clear method of the parent class + */ + using std::map<std::string, std::variant<long, double, std::string>>::clear; + + /** + * Default constructor, initialize the std::map object and the synchronization mutex + */ + SRTMinorServoAnswerMap() : std::map<std::string, std::variant<long, double, std::string>>(), m_mutex() {} + + /** + * Initialize the std::map with the content of another SRTMinorServoAnswerMap, initialize the mutex, lock both objects + * @param other the SRTMinorServoAnswerMap with which the content of the current object will be initialized + */ + SRTMinorServoAnswerMap(const SRTMinorServoAnswerMap& other) : m_mutex() + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * Assignment operator. It lock both the current object and the assigned one's mutexes + * @param other the SRTMinorServoAnswerMap which values have to be stored in the current object + */ + SRTMinorServoAnswerMap& operator=(const SRTMinorServoAnswerMap& other) + { + if(this != &other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + static_cast<std::map <std::string, std::variant<long, double, std::string>>&>(*this) = static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + return *this; + } + + /** + * Update operator. It merges the current object with the elements of another object + * @param other the SRTMinorServoAnswerMap which values have to be copied inside the current object + */ + SRTMinorServoAnswerMap& operator+=(const SRTMinorServoAnswerMap& other) + { + std::unique_lock<std::shared_mutex> lockThis(m_mutex, std::defer_lock); + std::shared_lock<std::shared_mutex> lockOther(other.m_mutex, std::defer_lock); + std::lock(lockThis, lockOther); + for(const auto& entry : other) + { + this->operator[](entry.first) = entry.second; + } + + return *this; + } + + /** + * Equality operator, only check the std::map and avoid comparing the mutexes, which will obviously be different + * @param other the SRTMinorServoAnswerMap object to compare the current object with + */ + bool operator==(const SRTMinorServoAnswerMap& other) const + { + return static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(*this) == static_cast<const std::map<std::string, std::variant<long, double, std::string>>&>(other); + } + + /** + * get method. It must be used with a template parameter, in order for the SRTMinorServoAnswerMap to be able to retrieve the correct type of object for the given key. + * The method will automatically convert the retrieved long, double or std::string to the given template type. + * @param T the type (i.e.: int, long, double, char*) of the object to be retrieved. It can be anything derived from integral, floating point or string values. + * @param key the key assigned to the value you want to retrieve + * @return the value associated to given key 'key', returned as template type 'T', if possible. Be aware that some casts (i.e.: long to int, double to float) will lose precision and/or overflow + * @throw std::bad_variant_access when retrieving the stored value by asking the wrong type (i.e.: stored type is a double but T is char*) + * @throw std::runtime_error when attempting to retrieve a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + T get(const std::string& key) const + { + if constexpr(std::negation_v<is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::shared_lock<std::shared_mutex> lock(m_mutex); + + try + { + if constexpr(std::is_integral_v<T>) + { + return (T)std::get<long>(this->at(key)); + } + else if constexpr(std::is_floating_point_v<T>) + { + return (T)std::get<double>(this->at(key)); + } + else if constexpr(is_string_v<T>) + { + return (T)std::get<std::string>(this->at(key)).c_str(); + } + } + catch(std::out_of_range& ex) + { + std::cout << "PLAIN_COMMAND: " << this->getPlainCommand(); + std::cout << "PLAIN_ANSWER:" << this->getPlainAnswer(); + throw ex; + } + } + + /** + * put method. The template parameter is automatically deducted from the 'value' argument. Stores the given 'value' associated with key 'key' + * @param key the key associated to the stored value 'value' + * @param value the value we are storing with the given key 'key' + * @throw std::runtime_error when attempting to store a value with a type which cannot be stored in the container (anything not integral, not floating point and not similar to std::string) + */ + template <typename T> + void put(const std::string& key, const T& value) + { + if constexpr(std::negation_v<is_known<T>>) + { + throw std::runtime_error("Unsupported type."); + } + + std::unique_lock<std::shared_mutex> lock(m_mutex); + + if constexpr(std::is_integral_v<T>) + { + this->operator[](key) = long(value); + } + else if constexpr(std::is_floating_point_v<T>) + { + this->operator[](key) = double(value); + } + else if constexpr(is_string_v<T>) + { + this->operator[](key) = std::string(value); + } + } + + /** + * This method checks whether the container holds a value for the given key 'key' + * @param key the key for the value we want to check if it's present in the container + * @return true if the value is present in the container, false otherwise + */ + bool contains(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->find(key) != this->end(); + } + + /** + * This methods returns the std::variant type index for the value associated to the given key 'key' + * @param key the key for the value we want to retrieve the type index + * @throw std::out_of_range if the key is not found in the object + * @return 0 for long, 1 for double, 2 for std::string + */ + unsigned int index(const std::string& key) const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->at(key).index(); + } + + /** + * This method checks whether the contained answer to a command sent to the SRTMinorServo system was positive or not + * @return true if the command was correctly accepted, false if the command was not accepted or the 'OUTPUT' key was not found (unlikely scenario) + */ + const bool checkOutput() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + try + { + if(this->get<std::string>("OUTPUT") == "GOOD") + { + return true; + } + } + catch(std::out_of_range& ex) + { + // Key not found + } + + return false; + } + + /** + * This method retrieves the ACS::Time associated with the received answer map. It converts the value from UNIX Epoch (double) to ACS::Time + * @return the ACS::Time associated with the answer map + */ + const ACS::Time getTimestamp() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return IRA::CIRATools::UNIXEpoch2ACSTime(this->get<double>("TIMESTAMP")); + } + + /** + * This method returns the plain command sent using the socket. Useful for log purposes. + * @return a std::string containing the plain command sent using the socket. + */ + const std::string getPlainCommand() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->get<std::string>("PLAIN_COMMAND"); + } + + /** + * This method returns the plain answer received from the socket. Useful for log purposes. + * @return a std::string containing the plain answer received from the socket. + */ + const std::string getPlainAnswer() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return this->get<std::string>("PLAIN_ANSWER"); + } + + protected: + /** + * Shared mutex to control read and write accesses. Multiple reading access are permitted and will only block writing access. Writing access will block all accesses + */ + mutable std::shared_mutex m_mutex; + }; + + /** + * This class is a specialization of the SRTMinorServoAnswerMap for the general Leonardo Minor Servo System status. + */ + class SRTMinorServoGeneralStatus : public SRTMinorServoAnswerMap + { + public: + /** + * Retrieves the current configuration from the map. + * @return the current SRTMinorServoFocalConfiguration. + */ + SRTMinorServoFocalConfiguration getFocalConfiguration() const + { + return LDOConfigurationIDTable.right.at(this->get<unsigned int>("CURRENT_CONFIG")); + } + + /** + * Retrieves a boolean indicating whether the simulation is enabled or not. + * @returns a boolean indicating whether the simulation is enabled or not. + */ + Management::TBoolean isSimulationEnabled() const + { + return this->get<unsigned int>("SIMULATION_ENABLED") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the PLC time of the reading. + * @return a double indicating the PLC time, expressed as UNIX Epoch. + */ + double getPLCTime() const + { + return this->get<double>("PLC_TIME"); + } + + /** + * Returns the firmware version present on the PLC. + * @return a string containing the firmware version. + */ + ACE_CString getPLCVersion() const + { + return this->get<std::string>("PLC_VERSION").c_str(); + } + + /** + * Returns who is controlling the Leonardo Minor Servo System. + * @return an enum indicating who is controlling the system. + */ + SRTMinorServoControlStatus getControl() const + { + return SRTMinorServoControlStatus(this->get<unsigned int>("CONTROL") - 1); + } + + /** + * Returns a boolean indicating whether the system is powered on or not. + * @return a boolean indicating whether the system is powered on or not. + */ + Management::TBoolean hasPower() const + { + return this->get<unsigned int>("POWER") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Is the emergency stop pressed somewhere? Is there an emergency situation? + * @return a boolean indicating if an emergency is present or not. + */ + Management::TBoolean emergencyPressed() const + { + return this->get<unsigned int>("EMERGENCY") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the position of the gregorian cover. + * @return an enum indicating the position of the gregorian cover. + */ + SRTMinorServoGregorianCoverStatus getGregorianCoverPosition() const + { + return SRTMinorServoGregorianCoverStatus(this->get<unsigned int>("GREGORIAN_CAP")); + } + + /** + * Returns the UNIX Epoch of the last executed command. + * @return a double containing the UNIX Epoch of the last executed command. + */ + double getLastExecutedCommand() const + { + return this->get<double>("LAST_EXECUTED_COMMAND"); + } + }; + + /** + * This class is a specialization of the SRTMinorServoAnswerMap for a single servo status of the Leonardo Minor Servo System. + */ + class SRTMinorServoStatus : public SRTMinorServoAnswerMap + { + public: + /** + * Constructor. Accepts some lists of labels in order to correctly retrieve the values from the map. + * @param servo_name the servo name used as a prefix when retrieving the values. + * @param physical_axes_enabled the labels used to retrieve the status of each physical axis. + * @param physical_positions the labels used to retrieve the position of each physical axis. + * @param virtual_positions the labels used to retrieve the position of each virtual axis. + * @param virtual_offsets the labels used to retrieve the offset of each virtual axis. + */ + SRTMinorServoStatus( + const std::string& servo_name, + const std::vector<std::string>& physical_axes_enabled, + const std::vector<std::string>& physical_positions, + const std::vector<std::string>& virtual_positions, + const std::vector<std::string>& virtual_offsets + ) : + SRTMinorServoAnswerMap(), + m_servo_name(servo_name), + m_physical_axes_enabled(physical_axes_enabled), + m_physical_positions(physical_positions), + m_virtual_positions(virtual_positions), + m_virtual_offsets(virtual_offsets) + {} + + /** + * Returns a boolean indicating whether the servo is enabled. + * @returns true if enabled, false otherwise. + */ + Management::TBoolean isEnabled() const + { + return this->get<unsigned int>(m_servo_name + "_ENABLED") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the status of the servo drive cabinet. + * @returns an enum indicating the status of the servo drive cabinet. + */ + SRTMinorServoCabinetStatus getDriveCabinetStatus() const + { + return SRTMinorServoCabinetStatus(this->get<unsigned int>(m_servo_name + "_STATUS") - 1); + } + + /** + * Returns a boolean indicating whether the servo is blocked or not. + * @return true if the servo is blocked, false otherwise. + */ + Management::TBoolean isBlocked() const + { + return this->get<unsigned int>(m_servo_name + "_BLOCK") == 1 ? Management::MNG_TRUE : Management::MNG_FALSE; + } + + /** + * Returns the operative mode of the servo. + * @return an enum indicating the operative mode of the servo. + */ + SRTMinorServoOperativeMode getOperativeMode() const + { + return SRTMinorServoOperativeMode(this->get<unsigned int>(m_servo_name + "_OPERATIVE_MODE") / 10); + } + + /** + * Returns the status of each physical axis. + * @return a boolean sequence, true if the axis is enabled, false otherwise. + */ + ACS::booleanSeq getPhysicalAxesEnabled() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::booleanSeq>(m_physical_axes_enabled); + } + + /** + * Returns the position of each physical axis. + * @return a double sequence containing the position of each physical axis. + */ + ACS::doubleSeq getPhysicalPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_physical_positions); + } + + /** + * Returns the plain position of each virtual axis. + * @return a double sequence containing the plain position of each virtual axis. + */ + ACS::doubleSeq getPlainVirtualPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_virtual_positions); + } + + /** + * Returns the actual position of each virtual axis, minus the offset. + * @return a double sequence containing the position of each virtual axis, minus the offset. + */ + ACS::doubleSeq getVirtualPositions() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + ACS::doubleSeq virtual_positions = getPlainVirtualPositions(); + ACS::doubleSeq virtual_offsets = getVirtualOffsets(); + for(size_t i = 0; i < virtual_positions.length(); i++) + { + virtual_positions[i] -= virtual_offsets[i]; + } + + return virtual_positions; + } + + /** + * Returns the offset of each virtual axis. + * @return a double sequence containing the offset of each virtual axis. + */ + ACS::doubleSeq getVirtualOffsets() const + { + std::shared_lock<std::shared_mutex> lock(m_mutex); + return getSequence<ACS::doubleSeq>(m_virtual_offsets); + } + + private: + /** + * This method extracts a sequence, either boolean or double, from the map, and returns it. + * @param labels a vector of strings containing the labels to use in order to extract the corresponding values from the map. + * @return the composed sequence of booleans or doubles. + */ + template <typename T, typename = std::enable_if<is_any_v<T, ACS::booleanSeq, ACS::doubleSeq>>> + T getSequence(const std::vector<std::string>& labels) const + { + T sequence; + sequence.length(labels.size()); + + for(size_t i = 0; i < labels.size(); i++) + { + if constexpr(std::is_same_v<T, ACS::booleanSeq>) + { + sequence[i] = (bool)this->get<unsigned int>(m_servo_name + "_" + labels[i]); + } + else if constexpr(std::is_same_v<T, ACS::doubleSeq>) + { + sequence[i] = this->get<double>(m_servo_name + "_" + labels[i]); + } + } + + return sequence; + } + + /** + * The name of the servo, this is used as prefix when retrieving values from the map. + */ + const std::string m_servo_name; + + /** + * The labels for the enabled value of each physical axis. + */ + const std::vector<std::string> m_physical_axes_enabled; + + /** + * The labels for the positions of each physical axis. + */ + const std::vector<std::string> m_physical_positions; + + /** + * The labels for the positions of each virtual axis. + */ + const std::vector<std::string> m_virtual_positions; + + /** + * The labels for the offsets of each virtual axis. + */ + const std::vector<std::string> m_virtual_offsets; + }; +} + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h new file mode 100644 index 000000000..a4a48973a --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoSocket.h @@ -0,0 +1,203 @@ +#ifndef __SRTMINORSERVOSOCKET_H__ +#define __SRTMINORSERVOSOCKET_H__ + +/** + * SRTMinorServoSocket.h + * 2023/02/23 + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <IRA> +#include <mutex> +#include <ComponentErrors.h> +#include <MinorServoErrors.h> +#include <optional> +#include "SRTMinorServoCommandLibrary.h" + +#define SOCKET_TIMEOUT 0.1 +#define CONFIG_DOMAIN "alma/" +#define CONFIG_DIRNAME "/MINORSERVO/Socket" + +namespace MinorServo +{ + /** + * Testing class forward declaration. + * The declaration of this class can be found in the SRTMinorServoTestingSocket.h header file. + * A developer must use this class for testing purposes if he needs to destroy the singleton socket instance as well. + */ + class SRTMinorServoTestingSocket; + + class SRTMinorServoSocket: public IRA::CSocket + { + /** + * This class implements a singleton socket. The singleton pattern was necessary to provide each servo system component communication capabilities with the Leonardo system. + * As long as all the said components run on the same container this will only be instanced once. + */ + public: + /** + * Calls the constructor and returns the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed + * @throw MinorServoErrors::MinorServoErrorsEx when the user calls this method a second time with different IP address and port arguments + * @return the singleton socket instance, eventually connected to the given IP address and port, by reference + */ + static SRTMinorServoSocket& getInstance(std::string ip_address, int port, double timeout=SOCKET_TIMEOUT); + + /** + * Returns the previously generated singleton socket instance + * @throw MinorServoErrors::MinorServoErrorsExImpl when the user calls this method when the instance has not been generated yet + * @return the singleton socket instance, by reference + */ + static SRTMinorServoSocket& getInstance(); + + /** + * Sends a command on the socket and returns the received answer, if any + * @param command the command to be sent over the socket + * @param map, optional SRTMinorServoAnswerMap object. If provided, the 'map' argument content gets updated with the newly received answer + * @throw MinorServoErrors::MinorServoErrorsEx when the operation of sending or receiving fails unexpectedly + * @return the received answer to the given command + */ + SRTMinorServoAnswerMap sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map = {}); + + /** + * Copy constructor operator disabled by default + */ + SRTMinorServoSocket(SRTMinorServoSocket const&) = delete; + + /** + * Copy assignment operator disabled by default + */ + void operator=(SRTMinorServoSocket const&) = delete; + + /** + * Method to check if socket is connected + * @return true if the socket is connected, false otherwise + */ + const bool isConnected() const; + + private: + /** + * Declare the testing class as friend class in order for it to have access to private members for testing purposes + */ + friend class SRTMinorServoTestingSocket; + + /** + * Constructor method. Generates the singleton socket instance + * @param ip_address the IP address to which the socket will connect + * @param port the port to which the socket will connect + * @param timeout the timeout, in seconds, for the communication to be considered failed + */ + SRTMinorServoSocket(std::string ip_address, int port, double timeout); + + /** + * Destructor method. Closes the socket upon destruction + */ + ~SRTMinorServoSocket(); + + /** + * Connection function. It gets called every time the socket gets disconnected + * throw MinorServoErrors::MinorServoErrorsEx when the connection attempt fails + */ + void connect(); + + /** + * Instance of the socket. By default it gets initialized to a null pointer + */ + inline static SRTMinorServoSocket* m_instance = nullptr; + + /** + * IP address and port of the socket. Being object members their values only exist when a singleton socket object is created correctly + */ + std::string m_ip_address; + int m_port; + + /** + * Timeout for communication operations + */ + double m_timeout; + + /** + * Mutex object used to syncronize communications and prevent collisions between multiple threads + */ + std::mutex m_mutex; + + /** + * Library mutex, used only to synchronize the getInstance methods + */ + static std::mutex c_mutex; + + /** + * Socket status enumerator + */ + enum socket_status + { + NOTREADY, + TIMEOUT, + READY + } m_socket_status; + + /** + * Socket error variable. This stores an error condition in case it arises + */ + IRA::CError m_error; + }; + + + class SRTMinorServoSocketConfiguration + { + /** + * This class implements a singleton socket configuration object. The singleton pattern was necessary to provide each servo system component access to the singleton socket parameters. + * As long as all the said components run on the same container this will only be instanced once. + * The first component to instantiate the singleton configuration will also instantiate the socket, opening communications. + */ + public: + /** + * Calls the constructor and returns the singleton socket configuration instance + * @param containerServices, the container services necessary to read the configuration from the CDB + * @return the singleton socket configuration instance + */ + static SRTMinorServoSocketConfiguration& getInstance(maci::ContainerServices* containerServices); + + /** + * Copy constructor operator disabled by default + */ + SRTMinorServoSocketConfiguration(SRTMinorServoSocketConfiguration const&) = delete; + + /** + * Copy assignment operator disabled by default + */ + void operator=(SRTMinorServoSocketConfiguration const&) = delete; + + /** + * IP address and port of the socket configuration + */ + std::string m_ip_address; + int m_port; + + /** + * Timeout for communication operations + */ + double m_timeout; + + private: + /** + * Constructor method + * @param containerServices, the container services necessary to read the configuration from the CDB + * @return the socket configuration object + */ + SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices); + + /** + * Destructor method + */ + ~SRTMinorServoSocketConfiguration(); + + /** + * Instance of the socket configuration object. By default it gets initialized to a null pointer + */ + inline static SRTMinorServoSocketConfiguration* m_instance = nullptr; + }; +} + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h new file mode 100644 index 000000000..da33e9dd9 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoTestingSocket.h @@ -0,0 +1,25 @@ +#include "SRTMinorServoSocket.h" + +namespace MinorServo +{ + class SRTMinorServoTestingSocket: public SRTMinorServoSocket + { + /** + * This class is a friend class of SRTMinorServoSocket. It can be used for testing purposes without altering the behavior of the original class. + */ + public: + /** + * This method explicitly destroys the singleton socket instance. + * Each test in the same test file is executed under the same process, therefore a singleton instance that does not get destroyed will still exist in the next executed tests. + * We want to test a new instance of the socket every time, therefore the existence of this method is critical. + */ + static void destroyInstance() + { + if(SRTMinorServoSocket::m_instance != nullptr) + { + delete SRTMinorServoSocket::m_instance; + SRTMinorServoSocket::m_instance = nullptr; + } + } + }; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h new file mode 100644 index 000000000..5df5c9eb1 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoUtils.h @@ -0,0 +1,144 @@ +#ifndef _SRTMINORSERVOUTILS_H +#define _SRTMINORSERVOUTILS_H +#include <variant> +#include <type_traits> +#include <Cplusplus11Helper.h> +#include <IRA> +#include <ComponentErrors.h> +#include <iostream> + +/** + * The following templates are useful if you want to check if a given type for the SRTMinorServoAnswerMap is accepted + */ +template <typename T> +struct is_atomic { static constexpr bool value = false; }; + +template <typename T> +struct is_atomic<std::atomic<T>> { static constexpr bool value = true; }; + +template <typename T> +inline constexpr bool is_atomic_v = is_atomic<T>::value; + +template <typename T, typename... Ts> +struct is_any : public std::disjunction<std::is_same<T, Ts>...> {}; + +template <typename T, typename... Ts> +inline constexpr bool is_any_v = (std::is_same_v<T, Ts> || ...); + +template <typename T> +struct is_string : public std::disjunction<is_any<std::decay_t<T>, char*, const char*, std::string>> {}; + +template <typename T> +inline constexpr bool is_string_v = is_string<T>::value; + +template <typename T> +struct is_known : public std::disjunction<std::is_arithmetic<std::decay_t<T>>, is_string<std::decay_t<T>>> {}; + +template <typename T> +inline constexpr bool is_known_v = is_known<T>::value; + +template <typename T, typename Enable = std::enable_if_t<std::disjunction_v<is_known<T>, std::is_same<T, std::vector<double>>>>> +struct DB_type +{ + using type = std::conditional_t<std::disjunction_v<is_string<T>, std::is_same<T, std::vector<double>>>, IRA::CString, std::conditional_t<std::is_integral_v<T>, long, double>>; +}; + +template <typename T> +T getCDBValue(maci::ContainerServices* container_services, const std::string& field, const std::string component = "") +{ + using C = typename DB_type<T>::type; + + C temp; + if(IRA::CIRATools::getDBValue(container_services, field.c_str(), temp, "alma/", component.c_str())) + { + if constexpr(std::is_same_v<T, std::vector<double>>) + { + std::vector<double> values; + std::istringstream iss(std::string(temp).c_str()); + std::string token; + while(std::getline(iss, token, ',')) + { + double value; + try + { + value = std::stod(token); + } + catch(std::invalid_argument& ia) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setFieldName(field.c_str()); + throw ex.getComponentErrorsEx(); + } + catch(std::out_of_range& oor) + { + _EXCPT(ComponentErrors::ValueOutofRangeExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setValueName(field.c_str()); + ex.setValueLimit(token.find('-') == std::string::npos ? std::numeric_limits<double>::max() : std::numeric_limits<double>::min()); + throw ex.getComponentErrorsEx(); + } + + values.push_back(value); + } + return values; + } + else if constexpr(std::is_same_v<C, IRA::CString>) + { + return (T)std::string(temp).c_str(); + } + else + { + return T(temp); + } + } + else + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoUtils::getCDBValue()"); + ex.setFieldName(field.c_str()); + throw ex.getComponentErrorsEx(); // Maybe throw the plain ex + } +} + +const char* getReasonFromEx(const auto& ex) +{ + std::string reason = "Unknown reason"; + + for(auto [name, value] : ex.errorTrace.data) + { + if(strcmp(name, "Reason") == 0) + { + reason = value; + break; + } + } + + return reason.c_str(); +} + +const char* getErrorFromEx(const auto& ex) +{ + std::string error(ex.errorTrace.routine); + + for(auto [name, value] : ex.errorTrace.data) + { + if(strcmp(name, "Reason") == 0) + { + error += ": " + std::string(value); + break; + } + } + + return error.c_str(); +} + +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wunused-function") + +static std::ostream& operator<<(std::ostream& out, const std::variant<long, double, std::string>& value) +{ + std::visit([&out](const auto& val) { out << val; }, value); + return out; +} + +C11_IGNORE_WARNING_POP + +#endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile index ab438abf3..9bc719dce 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/Makefile +++ b/SRT/Libraries/SRTMinorServoLibrary/src/Makefile @@ -23,7 +23,7 @@ USER_CFLAGS = -Wall # # additional include and library search paths # USER_INC = /usr/local/include -USER_LIB = -lgsl -lgslcblas -lm +# USER_LIB = # # MODULE CODE DESCRIPTION: @@ -35,11 +35,15 @@ USER_LIB = -lgsl -lgslcblas -lm # C programs (public and local) # ----------------------------- EXECUTABLES = -EXECUTABLES_L = +EXECUTABLES_L = + +xxxxx_OBJECTS = +xxxxx_CFLAGS = +xxxxx_LIBS = # # <brief description of xxxxx program> -xxxxx_OBJECTS = +xxxxx_OBJECTS = xxxxx_LDFLAGS = xxxxx_LIBS = @@ -50,17 +54,24 @@ xxxxx_LIBS = # # Includes (.h) files (public only) # --------------------------------- -INCLUDES = hexlib.h SRTMinorServoCommandLibrary.h +INCLUDES = SRTMinorServoCommandLibrary.h SRTMinorServoSocket.h SRTMinorServoTestingSocket.h SRTMinorServoUtils.h SRTMinorServoContainers.h #hexlib.h # # Libraries (public and local) # ---------------------------- -LIBRARIES = SRTMinorServoLibrary SRTMinorServoCommandLibrary +LIBRARIES = SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary PySRTMinorServoCommandLibrary #SRTMinorServoLibrary LIBRARIES_L = -SRTMinorServoLibrary_OBJECTS = hexlib -SRTMinorServoLibrary_LIBS = +#SRTMinorServoLibrary_OBJECTS = hexlib +#SRTMinorServoLibrary_LIBS = gsl gslcblas m SRTMinorServoCommandLibrary_OBJECTS = SRTMinorServoCommandLibrary -SRTMinorServoCommandLibrary_LIBS = IRALibrary +SRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoCommandLibrary_LIBS = pthread IRALibrary +PySRTMinorServoCommandLibrary_OBJECTS = PySRTMinorServoCommandLibrary +PySRTMinorServoCommandLibrary_CFLAGS = -std=c++17 -fconcepts +PySRTMinorServoCommandLibrary_LIBS = SRTMinorServoCommandLibrary boost_python3 +SRTMinorServoSocketLibrary_OBJECTS = SRTMinorServoSocket +SRTMinorServoSocketLibrary_LIBS = IRALibrary ComponentErrors MinorServoErrors SRTMinorServoCommandLibrary +SRTMinorServoSocket_CFLAGS = -std=c++17 -fconcepts # # <brief description of lllll library> @@ -87,7 +98,7 @@ PY_SCRIPTS_L = PY_MODULES = PY_MODULES_L = -PY_PACKAGES = +PY_PACKAGES = SRTMinorServoCommandLibrary PY_PACKAGES_L = pppppp_MODULES = diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp new file mode 100644 index 000000000..984618e08 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/PySRTMinorServoCommandLibrary.cpp @@ -0,0 +1,69 @@ +#include "PySRTMinorServoCommandLibrary.h" + +using namespace MinorServo; + +boost::python::object PySRTMinorServoCommandLibrary::status(const std::string servo_id) +{ + return stringToBytes(SRTMinorServoCommandLibrary::status(servo_id)); +} + +boost::python::object PySRTMinorServoCommandLibrary::setup(const std::string& configuration) +{ + return stringToBytes(SRTMinorServoCommandLibrary::setup(configuration)); +} + +boost::python::object PySRTMinorServoCommandLibrary::stow(const std::string& servo_id, unsigned int stow_position) +{ + return stringToBytes(SRTMinorServoCommandLibrary::stow(servo_id, stow_position)); +} + +boost::python::object PySRTMinorServoCommandLibrary::stop(const std::string& servo_id) +{ + return stringToBytes(SRTMinorServoCommandLibrary::stop(servo_id)); +} + +boost::python::object PySRTMinorServoCommandLibrary::preset(const std::string& servo_id, const boost::python::list& coordinates) +{ + return stringToBytes(SRTMinorServoCommandLibrary::preset(servo_id, pylist2cppvector(coordinates))); +} + +boost::python::object PySRTMinorServoCommandLibrary::programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const boost::python::list& coordinates, double start_time) +{ + return stringToBytes(SRTMinorServoCommandLibrary::programTrack(servo_id, trajectory_id, point_id, pylist2cppvector(coordinates), start_time)); +} + +boost::python::object PySRTMinorServoCommandLibrary::offset(const std::string& servo_id, const boost::python::list& coordinates) +{ + return stringToBytes(SRTMinorServoCommandLibrary::offset(servo_id, pylist2cppvector(coordinates))); +} + +boost::python::dict PySRTMinorServoCommandLibrary::parseAnswer(const std::string& answer) +{ + auto args = SRTMinorServoCommandLibrary::parseAnswer(answer); + + boost::python::dict dictionary; + + SRTMinorServoAnswerMap::iterator iter; + + for(iter = args.begin(); iter != args.end(); ++iter) + { + std::visit([dictionary, iter](const auto& var) mutable { dictionary[iter->first] = var; }, iter->second); + } + + return dictionary; +} + +std::vector<double> PySRTMinorServoCommandLibrary::pylist2cppvector(const boost::python::list& py_list) +{ + std::vector<double> cpp_vector; + for(unsigned int i = 0; i < len(py_list); i++) + { + cpp_vector.push_back(boost::python::extract<double>(py_list[i])); + } + return cpp_vector; +} + +boost::python::object PySRTMinorServoCommandLibrary::stringToBytes(const std::string& command) +{ + return boost::python::object(boost::python::handle<>(PyBytes_FromString(command.c_str()))); +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp index a3a937a93..6d23c3291 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary.cpp @@ -4,57 +4,62 @@ * Giuseppe Carboni (giuseppe.carboni@inaf.it) */ +#include <iostream> +#include <iomanip> +#include <algorithm> #include "SRTMinorServoCommandLibrary.h" -std::string SRTMinorServoCommandLibrary::status(int servo_id) +using namespace MinorServo; + +std::string SRTMinorServoCommandLibrary::status(const std::string servo_id) { std::stringstream command; - command << "status"; - if(servo_id >= 0) + command << "STATUS"; + if(servo_id != "") { command << "=" << servo_id; } - command << std::endl; + command << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::setup(std::string configuration) +std::string SRTMinorServoCommandLibrary::setup(const std::string& configuration) { std::stringstream command; - command << "setup=" << configuration << std::endl; + command << "SETUP=" << configuration << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::stow(unsigned int servo_id, unsigned int stow_position) +std::string SRTMinorServoCommandLibrary::stow(const std::string& servo_id, const unsigned int stow_position) { std::stringstream command; - command << "stow=" << servo_id << "," << stow_position << std::endl; + command << "STOW=" << servo_id << "," << stow_position << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::stop(unsigned int servo_id) +std::string SRTMinorServoCommandLibrary::stop(const std::string& servo_id) { std::stringstream command; - command << "stop=" << servo_id << std::endl; + command << "STOP=" << servo_id << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::preset(unsigned int servo_id, std::vector<double> coordinates) +std::string SRTMinorServoCommandLibrary::preset(const std::string& servo_id, const std::vector<double>& coordinates) { std::stringstream command; - command << "preset=" << servo_id; + command << "PRESET=" << servo_id; for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { - command << "," << coordinates[coordinate]; + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; } - command << std::endl; + command << CLOSER; return command.str(); } -std::string SRTMinorServoCommandLibrary::programTrack(unsigned int servo_id, unsigned int trajectory_id, unsigned int point_id, std::vector<double> coordinates, double start_time) +std::string SRTMinorServoCommandLibrary::programTrack(const std::string& servo_id, const unsigned long& trajectory_id, const unsigned long& point_id, const std::vector<double>& coordinates, const double start_time) { std::stringstream command; - command << "programTrack=" << servo_id << "," << trajectory_id << "," << point_id << ","; + command << "PROGRAMTRACK=" << servo_id << "," << trajectory_id << "," << point_id << ","; if(start_time > 0) { command << std::fixed << std::setprecision(6) << start_time; @@ -64,11 +69,110 @@ std::string SRTMinorServoCommandLibrary::programTrack(unsigned int servo_id, uns command << "*"; } - command.unsetf(std::ios_base::floatfield); for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) { - command << "," << coordinates[coordinate]; + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; } - command << std::endl; + command << CLOSER; return command.str(); } + +std::string SRTMinorServoCommandLibrary::offset(const std::string& servo_id, const std::vector<double>& coordinates) +{ + std::stringstream command; + command << "OFFSET=" << servo_id; + for(unsigned int coordinate = 0; coordinate < coordinates.size(); coordinate++) + { + command << "," << std::fixed << std::setprecision(6) << coordinates[coordinate]; + } + command << CLOSER; + return command.str(); +} + +SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(const std::string& original_answer) +{ + // First thing first, standardize the separators and remove the newline/carriage return characters + std::string answer(original_answer); + std::replace(answer.begin(), answer.end(), ':', '='); + std::replace(answer.begin(), answer.end(), '|', ','); + answer.erase(std::remove(answer.begin(), answer.end(), '\n'), answer.end()); + answer.erase(std::remove(answer.begin(), answer.end(), '\r'), answer.end()); + + // Create the dictionary + SRTMinorServoAnswerMap args; + + std::stringstream ss(answer); + std::string token; + + try + { + // Loop through the tokens + while(std::getline(ss, token, ',')) + { + std::stringstream sss(token); + std::string key, value; + std::getline(sss, key, '='); + std::getline(sss, value); + + // No value, could be the timestamp + if(value.empty()) + { + if(args.contains("TIMESTAMP")) // Timestamp already found, some other value is missing + { + throw std::invalid_argument(std::string("Missing key for value " + value)); + } + + value = key; + key = "TIMESTAMP"; + } + + if(key == "OUTPUT") + { + if(value != "GOOD" && value != "BAD") + { + throw std::invalid_argument(std::string("Unrecognized OUTPUT value: " + value)); + } + + args.put(key, value); + } + else if(key == "TIMESTAMP") + { + size_t last_char; + args.put(key, std::stod(value, &last_char)); + if(last_char != value.size()) + { + throw std::invalid_argument(std::string("Wrong TIMESTAMP value: " + value)); + } + } + else + { + size_t last_char; + args.put(key, std::stol(value, &last_char)); + if(last_char != value.size()) + { + args.put(key, std::stod(value)); + } + } + } + + if(!args.contains("OUTPUT")) + { + throw std::invalid_argument(std::string("Missing OUTPUT value!")); + } + else if(args.checkOutput() && !args.contains("TIMESTAMP")) + { + throw std::invalid_argument(std::string("Missing TIMESTAMP value!")); + } + } + catch(const std::invalid_argument& ex) + { + // If we are not able to convert any of the values to the correct type, + // or if OUTPUT and/or TIMESTAMP is missing, we send back an empty dictionary. + // It will be the caller's duty to understand that something was wrong with the answer. + args.clear(); + } + + args.put("PLAIN_ANSWER", original_answer); + + return args; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md new file mode 100644 index 000000000..7eb57a028 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/README.md @@ -0,0 +1,19 @@ +# SRTMinorServoCommandLibrary Python wrapper + +In order to use the SRTMinorServoCommandLibrary python wrapper, it is sufficient to import the SRTCommandLibrary package like this: + +`import SRTMinorServoCommandLibrary` + +The all the functions of the library can be used in the following fashion: + +`SRTMinorServoCommandLibrary.status()` +`SRTMinorServoCommandLibrary.status('PFP')` +`SRTMinorServoCommandLibrary.setup('KKG')` +`SRTMinorServoCommandLibrary.stow('PFP')` +`SRTMinorServoCommandLibrary.stow('PFP', 2)` +`SRTMinorServoCommandLibrary.stop('SRP')` +`SRTMinorServoCommandLibrary.preset('SRP', [0, 1, 2, 3, 4, 5])` +`SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0, 1, 2, 3, 4, 5], <start_time>)` +`SRTMinorServoCommandLibrary.programTrack('PFP', 0, 1, [0, 1, 2, 3, 4, 5])` +`SRTMinorServoCommandLibrary.offset('SRP', [6, 7, 8, 9, 10, 11])` +`SRTMinorServoCommandLibrary.parseAnswer('OUTPUT:GOOD,1665757400.123456,PFP_ENABLED=5|PFP_STATUS=44|PFP_BLOCK=7|PFP_WARNING=47|PFP_ROTARY_AXIS_ENABLE=52|PFP_COORD_1=94')` diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py new file mode 100644 index 000000000..f07ae391e --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoCommandLibrary/__init__.py @@ -0,0 +1,17 @@ +# The following lines will look for the libPySRTMinorServoCommandLibrary in the +# $INTROOT/lib path instead of looking in the $INTROOT/lib/python/site-packages +# path. This is a workaround needed since the said library is a C++ shared +# library and it does not get automatically installed in the correct folder. +# By adding this workaround we're also able to rename the library with the +# module name SRTMinorServoCommandLibrary, trimming the 'libPy' header. I +# suggest to use this approach whenever a Python wrapper is needed. +import os +import sys +# Temporarily add the $INTROOT/lib path to Python libraries path +sys.path.append(os.path.join(os.environ['INTROOT'], 'lib')) +# Import the functions we need +from libPySRTMinorServoCommandLibrary import status, setup, stop, stow, preset, programTrack, offset, parseAnswer +# Remove the added path and unused imported modules +sys.path.remove(os.path.join(os.environ['INTROOT'], 'lib')) +del os +del sys diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp new file mode 100644 index 000000000..f0606fe29 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -0,0 +1,237 @@ +#include "SRTMinorServoSocket.h" + +using namespace MinorServo; + +std::mutex SRTMinorServoSocket::c_mutex; + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance(std::string ip_address, int port, double timeout) +{ + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + + if(m_instance != nullptr) + { + if(m_instance->m_ip_address != ip_address || m_instance->m_port != port) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance(std::string, int)"); + impl.setReason(("Socket already open on '" + m_instance->m_ip_address + ":" + std::to_string(m_instance->m_port) + "' . Use getInstance() (no arguments) to retrieve the object.").c_str()); + throw impl.getMinorServoErrorsEx(); + } + } + else + { + m_instance = new SRTMinorServoSocket(ip_address, port, timeout); + } + return *m_instance; +} + +SRTMinorServoSocket& SRTMinorServoSocket::getInstance() +{ + std::lock_guard<std::mutex> guard(SRTMinorServoSocket::c_mutex); + + if(m_instance == nullptr) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::getInstance()"); + impl.setReason("Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + throw impl.getMinorServoErrorsEx(); + } + return *m_instance; +} + +SRTMinorServoSocket::SRTMinorServoSocket(std::string ip_address, int port, double timeout) : m_ip_address(ip_address), m_port(port), m_timeout(timeout), m_socket_status(NOTREADY) +{ + try + { + connect(); + } + catch(...) + { + // Not yet connected, we catch the exception in order to go on + } +} + +SRTMinorServoSocket::~SRTMinorServoSocket() +{ + std::lock_guard<std::mutex> guard(m_mutex); + Close(m_error); +} + +void SRTMinorServoSocket::connect() +{ + if(isConnected()) + { + return; + } + + std::lock_guard<std::mutex> guard(m_mutex); + + Close(m_error); + m_error.Reset(); + if(Create(m_error, STREAM) == FAIL) + { + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot create the socket."); + throw impl.getMinorServoErrorsEx(); + } + + if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot connect the socket."); + throw impl.getMinorServoErrorsEx(); + } + + if(setSockMode(m_error, NONBLOCKING) != SUCCESS) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); + impl.setReason("Cannot set the socket to non-blocking."); + throw impl.getMinorServoErrorsEx(); + } + + m_socket_status = READY; +} + +const bool SRTMinorServoSocket::isConnected() const +{ + return m_socket_status == READY ? true : false; +} + +SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) +{ + std::lock_guard<std::mutex> guard(m_mutex); + + connect(); + + double start_time = IRA::CIRATools::getUNIXEpoch(); + size_t sent_bytes = 0; + + while(sent_bytes < command.size()) + { + size_t sent_now; + + try + { + sent_now = Send(m_error, command.substr(sent_bytes, command.size() - sent_bytes).c_str(), command.size() - sent_bytes); + sent_bytes += sent_now; + } + catch(...) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); + impl.setReason("Something went wrong while sending some bytes."); + throw impl.getMinorServoErrorsEx(); + } + + if(sent_now > 0) + { + // Reset the timer + start_time = IRA::CIRATools::getUNIXEpoch(); + } + else if(IRA::CIRATools::getUNIXEpoch() - start_time >= m_timeout) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.setReason("Timeout when sending command."); + throw impl.getMinorServoErrorsEx(); + } + } + + start_time = IRA::CIRATools::getUNIXEpoch(); + std::string answer; + + while(answer.size() < 2 || !(answer.rfind(CLOSER) == answer.size() - CLOSER.size())) + { + char buf; + try + { + if(Receive(m_error, &buf, 1) == 1) + { + answer += buf; + + // Reset the timer + start_time = IRA::CIRATools::getUNIXEpoch(); + } + else if(IRA::CIRATools::getUNIXEpoch() - start_time >= m_timeout) + { + m_socket_status = TIMEOUT; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::sendCommand()"); + impl.setReason("Timeout when receiving answer."); + throw impl.getMinorServoErrorsEx(); + } + } + catch(...) + { + m_socket_status = NOTREADY; + Close(m_error); + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocker::sendCommand()"); + impl.setReason(("Something went wrong while receiving some bytes. Command: " + command).c_str()); + throw impl.getMinorServoErrorsEx(); + } + } + + SRTMinorServoAnswerMap map_answer = SRTMinorServoCommandLibrary::parseAnswer(answer); + map_answer.put("PLAIN_COMMAND", command); + if(map) + { + map->get() = map_answer; + } + + return map_answer; +} + +SRTMinorServoSocketConfiguration& SRTMinorServoSocketConfiguration::getInstance(maci::ContainerServices* containerServices) +{ + if(m_instance == nullptr) + { + m_instance = new SRTMinorServoSocketConfiguration(containerServices); + } + + return *m_instance; +} + +SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration(maci::ContainerServices* containerServices) +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + + IRA::CString _ip_address; + if(!IRA::CIRATools::getDBValue(containerServices, "IPAddress", _ip_address, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("IPAddress"); + throw impl.getComponentErrorsEx(); + } + m_ip_address = (std::string)_ip_address; + + DWORD port; + if(!IRA::CIRATools::getDBValue(containerServices, "Port", port, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("Port"); + throw impl.getComponentErrorsEx(); + } + else + { + m_port = port; + } + + if(!IRA::CIRATools::getDBValue(containerServices, "SocketTimeout", m_timeout, CONFIG_DOMAIN, CONFIG_DIRNAME)) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, impl, "SRTMinorServoSocketConfiguration::SRTMinorServoSocketConfiguration()"); + impl.setFieldName("SocketTimeout"); + throw impl.getComponentErrorsEx(); + } +} + +SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration() +{ + AUTO_TRACE("SRTMinorServoSocketConfiguration::~SRTMinorServoSocketConfiguration()"); + + delete m_instance; +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/.discos b/SRT/Libraries/SRTMinorServoLibrary/tests/.discos new file mode 100644 index 000000000..1ada672a9 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/.discos @@ -0,0 +1,5 @@ +This file is here to differentiate between ACS style test directory and discos-style test. + +This is a discos test directory + +DO NOT REMOVE THIS FILE diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile new file mode 100644 index 000000000..517c0d13a --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/Makefile @@ -0,0 +1,97 @@ +# CPP UNIT TESTING SETUP +#-------------- +GTEST_HOME=/usr/local/include/gtest +GMOCK_HOME=/usr/local/include/gmock +GTEST_LIBS=gtest gtest_main + +USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# SRTMinorServoCommandLibraryTest_OBJECTS = unittest +# SRTMinorServoCommandLibraryTest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +EXECUTABLES_L = SRTMinorServoCommandLibraryTest SRTMinorServoSocketTest + +SRTMinorServoCommandLibraryTest_OBJECTS = SRTMinorServoCommandLibraryTest +SRTMinorServoCommandLibraryTest_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoCommandLibraryTest_LIBS = $(GTEST_LIBS) SRTMinorServoCommandLibrary IRALibrary +SRTMinorServoCommandLibraryTest_LDFLAGS = -lstdc++ -lpthread + +SRTMinorServoSocketTest_OBJECTS = SRTMinorServoSocketTest +SRTMinorServoSocketTest_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoSocketTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary +SRTMinorServoSocketTest_LDFLAGS = -lstdc++ -lpthread + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp new file mode 100644 index 000000000..b0fb317e2 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoCommandLibraryTest.cpp @@ -0,0 +1,108 @@ +#include "gtest/gtest.h" +#include <IRA> +#include "SRTMinorServoCommandLibrary.h" + +using namespace MinorServo; + +TEST(SRTMinorServoCommandLibraryTest, status) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::status(), "STATUS\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::status("PFP"), "STATUS=PFP\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, setup) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::setup("CCB"), "SETUP=CCB\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, stow) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::stow("PFP"), "STOW=PFP,1\r\n"); + EXPECT_EQ(SRTMinorServoCommandLibrary::stow("PFP", 2), "STOW=PFP,2\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, stop) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::stop("PFP"), "STOP=PFP\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, preset) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, programTrack) +{ + double start_time = IRA::CIRATools::getUNIXEpoch() + 3; + unsigned long int trajectory_id = (unsigned long int)start_time; + std::stringstream expected_answer; + expected_answer << std::fixed << std::setprecision(6); + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << start_time << ",0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"; + EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time), expected_answer.str()); + + for(unsigned int i = 1; i < 10; i++) + { + expected_answer.str(std::string()); + expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"; + EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}), expected_answer.str()); + } +} + +TEST(SRTMinorServoCommandLibraryTest, offset) +{ + EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n"); +} + +TEST(SRTMinorServoCommandLibraryTest, parseAnswer) +{ + // Minimal correct answer + std::string answer = "OUTPUT:GOOD,1665743366.654321\r\n"; + SRTMinorServoAnswerMap args; + args.put("OUTPUT", "GOOD"); + args.put("TIMESTAMP", 1665743366.654321); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + EXPECT_EQ(args.getTimestamp(), 138850361666543210); + EXPECT_TRUE(args.checkOutput()); + SRTMinorServoAnswerMap other; + other.put("OTHER", 123456); + args += other; + EXPECT_EQ(args.get<int>("OTHER"), 123456); + EXPECT_EQ(args.getTimestamp(), 138850361666543210); + EXPECT_TRUE(args.checkOutput()); + + // Complete correct answer + answer = "OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; + args.clear(); + args.put("OUTPUT", "GOOD"); + args.put("TIMESTAMP", 1665743366.123456); + args.put("CURRENT_CONFIG", 21); + args.put("SIMULATION_ENABLED", 34); + args.put("PLC_TIME", 78); + args.put("PLC_VERSION", 69); + args.put("CONTROL", 14); + args.put("POWER", 38); + args.put("EMERGENCY", 69); + args.put("ENABLED", 51); + args.put("OPERATIVE_MODE", 94); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Missing timestamp + answer = "OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94\r\n"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Wrong OUTPUT field + answer = "OUTPUT:123456\r\n"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Multiple values without key, cannot find the correct timestamp + answer = "OUTPUT:GOOD,12345,67890\r\n"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); + + // Wrong timestamp format + answer = "OUTPUT:GOOD,12345.ABCD\r\n"; + args.clear(); + EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args); +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp new file mode 100644 index 000000000..8fe3ba017 --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/SRTMinorServoSocketTest.cpp @@ -0,0 +1,214 @@ +/* These tests require a running simulator and were designed * + * to test the thread-safeness and singleton design pattern of the * + * SRTMinorServoSocket class. */ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include "SRTMinorServoUtils.h" +#include "SRTMinorServoCommandLibrary.h" +#include "SRTMinorServoTestingSocket.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define ADDRESS std::string("127.0.0.1") +#define PORT 12800 +//#define ADDRESS std::string("192.168.200.13") +//#define PORT 4758 + +using namespace MinorServo; + +class SRTMinorServoSocketTest : public ::testing::Test +{ +protected: + std::vector<std::string> commands; + std::vector<std::thread> threads; + + void SetUp() override + { + // The following commands yield an articulated answer in return + commands.push_back(SRTMinorServoCommandLibrary::status()); + commands.push_back(SRTMinorServoCommandLibrary::status("PFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("SRP")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR1")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR2")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatoreGFR3")); + commands.push_back(SRTMinorServoCommandLibrary::status("DerotatorePFP")); + commands.push_back(SRTMinorServoCommandLibrary::status("M3R")); + commands.push_back(SRTMinorServoCommandLibrary::status("GFR")); + } + + void TearDown() override + { + SRTMinorServoTestingSocket::destroyInstance(); + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } +}; + +// This test passes the already created instance to some threads +TEST_F(SRTMinorServoSocketTest, instance_passed_to_threads) +{ + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT); + + if(!socket.isConnected()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; + } + + for(auto command : this->commands) + { + this->threads.push_back(std::thread([command, &socket]() + { + auto args = socket.sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_TRUE(args.checkOutput()); + })); + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); +} + +// This test spawns some threads, each one retrieves the instance. The first thread which tries to retrieve the instance will also generate it +TEST_F(SRTMinorServoSocketTest, instance_retrieved_in_threads) +{ + std::string error = ""; + + for(auto command : this->commands) + { + std::mutex mutex; + + this->threads.push_back(std::thread([command, &error, &mutex]() + { + try + { + auto args = SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT).sendCommand(command); + // By testing if the command was received correctly we also test if the socket is working properly + // and if the answer was received correctly without being interleaved with the answer from another thread + EXPECT_TRUE(args.checkOutput()); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + std::lock_guard<std::mutex> guard(mutex); + + try + { + if(std::string(getReasonFromEx(ex)) == "Cannot connect the socket.") + { + error = "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } + } + catch(...) + { + } + + error = "Unexpected failure."; + } + })); + } + + std::for_each(this->threads.begin(), this->threads.end(), [](std::thread &t) + { + t.join(); + }); + + if(error != "") + { + FAIL() << error; + } +} + +// This test generates an instance on the given address and port, then tries to generate another instance with different address and port and fails +TEST_F(SRTMinorServoSocketTest, open_with_args_retrieve_without) +{ + try + { + // First let's open the socket with the chosen ADDRESS and PORT + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT); + + // Let's try to instance another socket on a different port + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT + 1); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + try + { + std::string reason(getReasonFromEx(ex)); + + if(reason == "Cannot connect the socket.") + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(reason, "Socket already open on '" + ADDRESS + ":" + std::to_string(PORT) + "' . Use getInstance() (no arguments) to retrieve the object."); + } + } + catch(...) + { + FAIL() << "Unexpected failure."; + } + } +} + +// This test tries to retrieve an instance which has not been generated yet, failing +TEST_F(SRTMinorServoSocketTest, try_open_without_args) +{ + try + { + SRTMinorServoTestingSocket::getInstance(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + try + { + std::string reason(getReasonFromEx(ex)); + + if(reason == "Cannot connect the socket.") + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached."; + return; + } + else + { + // Check if we got the correct exception + EXPECT_EQ(reason, "Socket not yet initialized. Use getInstance(std::string ip_address, int port) to initialize it and retrieve the object."); + } + } + catch(...) + { + FAIL() << "Unexpected failure."; + } + } +} + +// This test tries to generate an instance using a pair of address and port on which the socket fails to open +TEST_F(SRTMinorServoSocketTest, try_open_on_wrong_address) +{ + try + { + // The exception is raised only if the given port is wrong + SRTMinorServoTestingSocket::getInstance(ADDRESS, 0); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + try + { + std::string reason(getReasonFromEx(ex)); + + // Check if we got the correct exception + EXPECT_EQ(reason, "Cannot connect the socket."); + } + catch(...) + { + FAIL() << "Unexpected failure."; + } + } +} diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py new file mode 100644 index 000000000..e62ae691a --- /dev/null +++ b/SRT/Libraries/SRTMinorServoLibrary/tests/pyunit/__init__.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +import unittest +import time +import SRTMinorServoCommandLibrary + +class TestPySRTMinorServoCommandLibrary(unittest.TestCase): + + def test_status(self): + command = SRTMinorServoCommandLibrary.status() + expected_command = b'STATUS\r\n' + self.assertEqual(command, expected_command) + + def test_status_servo(self): + command = SRTMinorServoCommandLibrary.status('PFP') + expected_command = b'STATUS=PFP\r\n' + self.assertEqual(command, expected_command) + + def test_setup(self): + command = SRTMinorServoCommandLibrary.setup('KKG') + expected_command = b'SETUP=KKG\r\n' + self.assertEqual(command, expected_command) + + def test_stow(self): + command = SRTMinorServoCommandLibrary.stow('SRP') + expected_command = b'STOW=SRP,1\r\n' + self.assertEqual(command, expected_command) + + def test_stow_position(self): + command = SRTMinorServoCommandLibrary.stow('SRP', 2) + expected_command = b'STOW=SRP,2\r\n' + self.assertEqual(command, expected_command) + + def test_stop(self): + command = SRTMinorServoCommandLibrary.stop('SRP') + expected_command = b'STOP=SRP\r\n' + self.assertEqual(command, expected_command) + + def test_preset(self): + command = SRTMinorServoCommandLibrary.preset('PFP', [0.1, 1.1, 2.1]) + expected_command = b'PRESET=PFP,0.100000,1.100000,2.100000\r\n' + self.assertEqual(command, expected_command) + + def test_programTrack(self): + now = time.time() + command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, 0, [0.1, 1.1, 2.1], now) + expected_command = bytes(f'PROGRAMTRACK=PFP,0,0,{now:.6f},0.100000,1.100000,2.100000\r\n', encoding='latin-1') + self.assertEqual(command, expected_command) + for i in range(1, 10): + command = SRTMinorServoCommandLibrary.programTrack('PFP', 0, i, [0.1, 1.1, 2.1]) + expected_command = bytes(f'PROGRAMTRACK=PFP,0,{i},*,0.100000,1.100000,2.100000\r\n', encoding='latin-1') + self.assertEqual(command, expected_command) + + def test_offset(self): + command = SRTMinorServoCommandLibrary.offset('PFP', [0.1, 1.1, 2.1]) + expected_command = b'OFFSET=PFP,0.100000,1.100000,2.100000\r\n' + self.assertEqual(command, expected_command) + + def test_parseAnswer(self): + answer = 'OUTPUT:GOOD,1665743366.123456,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94' + args = { + 'OUTPUT': 'GOOD', + 'TIMESTAMP': 1665743366.123456, + 'CURRENT_CONFIG': 21, + 'SIMULATION_ENABLED': 34, + 'PLC_TIME': 78, + 'PLC_VERSION': 69, + 'CONTROL': 14, + 'POWER': 38, + 'EMERGENCY': 69, + 'ENABLED': 51, + 'OPERATIVE_MODE': 94 + } + self.assertEqual( + SRTMinorServoCommandLibrary.parseAnswer(answer), + args + ) + + answer = "OUTPUT:GOOD,1665743366.654321" + args = { + "OUTPUT": "GOOD", + "TIMESTAMP": 1665743366.654321 + } + self.assertEqual( + SRTMinorServoCommandLibrary.parseAnswer(answer), + args + ) + + answer = b"OUTPUT:GOOD,CURRENT_CONFIG=21|SIMULATION_ENABLED=34|PLC_TIME=78|PLC_VERSION=69|CONTROL=14|POWER=38|EMERGENCY=69|ENABLED=51|OPERATIVE_MODE=94" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = b"OUTPUT:123456" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = b"OUTPUT:GOOD,12345,67890" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + answer = b"OUTPUT:GOOD,12345.ABCD" + self.assertEqual(SRTMinorServoCommandLibrary.parseAnswer(answer), {}) + + +if __name__ == '__main__': + unittest.main() diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml index fe407ec9b..29c8a78a6 100644 --- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>36</select> + <select>34</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -109,15 +109,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>MinorServoBossContainer</name> - <type>cpp</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>MinorServoContainer</name> <type>cpp</type> diff --git a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml index 3a6e4fd0b..55d8ba5ca 100644 --- a/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/simulationStartup.xml @@ -109,15 +109,6 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> - <container> - <name>MinorServoBossContainer</name> - <type>cpp</type> - <heapSizeMB></heapSizeMB> - <useDedicatedSettings>true</useDedicatedSettings> - <scriptBase>0</scriptBase> - <remoteHost>MASTERHOST</remoteHost> - <remoteAccount>discos</remoteAccount> - </container> <container> <name>MinorServoContainer</name> <type>cpp</type> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd new file mode 100644 index 000000000..d3f3d966f --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServo:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoCabinetStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DRIVE_CABINET_OK" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoOperativeModeType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="5" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OPERATIVE_MODE_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTBaseMinorServoType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:sequence> + <xs:element name="enabled" type="mng:BooleanType" /> + <xs:element name="drive_cabinet_status" type="SRTMinorServoCabinetStatusType" /> + <xs:element name="block" type="mng:BooleanType" /> + <xs:element name="operative_mode" type="SRTMinorServoOperativeModeType" /> + <xs:element name="physical_axes" type="baci:ROlong" /> + <xs:element name="physical_axes_enabled" type="baci:RObooleanSeq" /> + <xs:element name="physical_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_axes" type="baci:ROlong" /> + <xs:element name="plain_virtual_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_positions" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_user_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="virtual_system_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="in_use" type="mng:BooleanType" /> + <xs:element name="current_setup" type="baci:ROstring" /> + </xs:sequence> + <xs:attribute name="physical_axes" type="xs:unsignedShort" use="required" /> + <xs:attribute name="virtual_axes" type="xs:unsignedShort" use="required" /> + <xs:attribute name="max_speed" type="xs:string" use="required" /> + <xs:attribute name="acceleration" type="xs:string" use="required" /> + <xs:attribute name="min_range" type="xs:string" use="required" /> + <xs:attribute name="max_range" type="xs:string" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTProgramTrackMinorServoType"> + <xs:complexContent> + <xs:extension base="SRTBaseMinorServoType"> + <xs:sequence> + <xs:element name="tracking" type="mng:BooleanType" /> + <xs:element name="trajectory_id" type="baci:ROlong" /> + <xs:element name="total_trajectory_points" type="baci:ROlong" /> + <xs:element name="remaining_trajectory_points" type="baci:ROlong" /> + <xs:element name="tracking_error" type="baci:ROdoubleSeq" /> + </xs:sequence> + <xs:attribute name="tracking_delta" type="xs:string" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTGenericMinorServo" type="SRTBaseMinorServoType" /> + <xs:element name="SRTProgramTrackMinorServo" type="SRTProgramTrackMinorServoType" /> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd new file mode 100644 index 000000000..2d87a89a5 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd @@ -0,0 +1,83 @@ +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoBoss:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoFocalConfigurationType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="13" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONFIGURATION_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoGregorianCoverStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="COVER_STATUS_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoControlStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="1" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONTROL_DISCOS" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoBossType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:sequence> + <xs:element name="connected" type="mng:BooleanType" /> + <xs:element name="status" type="mng:SystemStatusType" /> + <xs:element name="actualSetup" type="baci:ROstring" /> + <xs:element name="motionInfo" type="baci:ROstring" /> + <xs:element name="ready" type="mng:BooleanType" /> + <xs:element name="starting" type="mng:BooleanType" /> + <xs:element name="asConfiguration" type="mng:BooleanType" /> + <xs:element name="elevationTrack" type="mng:BooleanType" /> + <xs:element name="scanActive" type="mng:BooleanType" /> + <xs:element name="scanning" type="mng:BooleanType" /> + <xs:element name="tracking" type="mng:BooleanType" /> + <xs:element name="current_configuration" type="SRTMinorServoFocalConfigurationType" /> + <xs:element name="simulation_enabled" type="mng:BooleanType" /> + <xs:element name="plc_time" type="baci:ROdouble" /> + <xs:element name="plc_version" type="baci:ROstring" /> + <xs:element name="control" type="SRTMinorServoControlStatusType" /> + <xs:element name="power" type="mng:BooleanType" /> + <xs:element name="emergency" type="mng:BooleanType" /> + <xs:element name="gregorian_cover" type="SRTMinorServoGregorianCoverStatusType" /> + <xs:element name="last_executed_command" type="baci:ROdouble" /> + </xs:sequence> + <xs:attribute name="status_thread_period" type="xs:double" use="required" /> + <xs:attribute name="active_surface_configuration" type="xs:string" use="required" /> + <xs:attribute name="elevation_tracking_enabled" type="xs:string" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServoBoss" type="SRTMinorServoBossType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd new file mode 100644 index 000000000..858936df2 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns="urn:schemas-cosylab-com:SRTMinorServoLookupTable:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + + <xs:complexType name="SRTMinorServoCoefficientsType"> + <xs:sequence> + <xs:element name="axis" type="xs:string" /> + <xs:element name="coefficients" type="xs:string" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SRTMinorServoLookupTableType"> + <xs:sequence> + <xs:element name="LLP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="PPP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="PLP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="HHP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="XKP" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="KKG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="KKG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="WWG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="WWG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="QQG" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="QQG_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="TRI" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="TRI_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="MISTRAL" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="MISTRAL_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CCB" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <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:sequence> + </xs:complexType> + + <xs:element name="SRTMinorServoLookupTable" type="SRTMinorServoLookupTableType" /> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd new file mode 100644 index 000000000..e1f7c7a52 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoProperties.xsd @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + + <xs:complexType name="SRTMinorServoPropertyType"> + <xs:sequence> + <xs:element name="property_name" type="xs:string" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SRTMinorServoPropertiesType"> + <xs:sequence> + <xs:element name="physical_axes_enabled" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="physical_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_positions" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_axes_units" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + <xs:element name="virtual_offsets" type="SRTMinorServoPropertyType" minOccurs="1" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:element name="SRTMinorServoProperties" type="SRTMinorServoPropertiesType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd new file mode 100644 index 000000000..b37cfaedd --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoSocketConfiguration.xsd @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoSocketConfiguration:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoSocketConfigurationType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:attribute name="IPAddress" type="xs:string" use="required" /> + <xs:attribute name="Port" type="xs:unsignedShort" use="required" /> + <xs:attribute name="SocketTimeout" type="xs:double" use="optional" default="0.1"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServoSocketConfiguration" type="SRTMinorServoSocketConfigurationType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h new file mode 100644 index 000000000..330d3905d --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -0,0 +1,317 @@ +#ifndef _MSDEVIOS_H +#define _MSDEVIOS_H + +/** + * MSDevIOs.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include "SRTMinorServoContainers.h" +#include <type_traits> +#include <baciDevIO.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" + + +namespace MinorServo +{ + /** + * This class acts as a base class for all the SRTMinorServo DevIOs. + */ + template <class T> class MSBaseDevIO : public DevIO<T> + { + public: + /** + * Destructor. + */ + ~MSBaseDevIO() + { + } + + /** + * Used to read the property value. + * This is pure virtual and has to be implemented in the derived DevIOs. + * @throw ComponentErrors::PropertyError. + * @param timestamp epoch when the operation completes. + */ + virtual T read(ACS::Time& timestamp); + + /** + * @return true to initialize the property with default value from CDB. + */ + bool initializeValue() + { + return false; + } + + /** + * It writes values into controller. Unused because all the properties are read-only. + */ + void write(const T& value, ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + return; + } + }; + + /** + * This class is used to read the status of the motion of the minor servo system. + */ + class MSMotionInfoDevIO : public MSBaseDevIO<ACE_CString> + { + public: + /** + * Constructor. + * @param motion_status the atomic status of the motion of the minor servo system. + * @param answer_map a reference to the SRTMinorServoAnswerMap object containing the status of the system. It is used to read the position of the gregorian cover. + * @param scanning a reference to the TBoolean indicating whether the system is scanning or not. + * @param current_scan a reference to the SRTMinorServoScan object containing the parameters for the current scan. It is used to read the servo name and axis involved in the scan. + */ + MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoGeneralStatus& boss_status, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : + m_motion_status(motion_status), + m_boss_status(boss_status), + m_scanning(scanning), + m_current_scan(current_scan) + {} + + /** + * Returns the property value. + * @param timestamp epoch when the operation completes. + * @return a string containing the information about the motion status of the minor servo system. + */ + ACE_CString read(ACS::Time& timestamp) + { + std::string motion_status; + + switch(m_motion_status.load()) + { + case MOTION_STATUS_UNCONFIGURED: + { + motion_status = "Unknown"; + break; + } + case MOTION_STATUS_STARTING: + { + motion_status = "Setup in progress..."; + break; + } + case MOTION_STATUS_CONFIGURED: + { + motion_status = "Elevation Track Mode Disabled"; + break; + } + case MOTION_STATUS_TRACKING: + { + motion_status = "Elevation Track Mode"; + break; + } + case MOTION_STATUS_PARKING: + { + motion_status = "Parking..."; + break; + } + case MOTION_STATUS_PARKED: + { + motion_status = "Parked"; + + try + { + // If I can read the status of the gregorian cover I will notify the user about it on the GUI + SRTMinorServoGregorianCoverStatus cover_position = m_boss_status.getGregorianCoverPosition(); + + if(cover_position == COVER_STATUS_OPEN) + { + motion_status += ", gregorian cover open"; + } + else if(cover_position == COVER_STATUS_CLOSED) + { + motion_status += ", gregorian cover closed"; + } + } + catch(...) + { + // If I can't, it doesn't matter + } + + break; + } + case MOTION_STATUS_ERROR: + { + motion_status = "Error"; + break; + } + } + + if(m_scanning.load() == Management::MNG_TRUE) + { + motion_status = "Scanning along " + m_current_scan.servo_name + " " + m_current_scan.axis_name + " axis"; + } + + return motion_status.c_str(); + } + private: + /** + * Reference to the motion status object of the Boss. + */ + const std::atomic<SRTMinorServoMotionStatus>& m_motion_status; + + /** + * Reference to the SRTMinorServoGeneralStatus object of the Boss. + */ + const SRTMinorServoGeneralStatus& m_boss_status; + + /** + * Reference to the boolean telling if the system is scanning. + */ + const std::atomic<Management::TBoolean>& m_scanning; + + /** + * Reference to the SRTMinorServoScan object of the Boss. + */ + const SRTMinorServoScan& m_current_scan; + }; + + /** + * This template class is used to retrieve values from a SRTMinorServoAnswerMap and provide them as properties. + * The templates is specialized for the types listed right below and compilation will fail if the developer attempts to use it for an unknown MSDevIO type. + */ + template <typename X, typename Y, typename = std::enable_if< + is_any_v<Y, SRTMinorServoGeneralStatus, SRTMinorServoStatus> + && is_any_v<X, + Management::TBoolean, + CORBA::Double, + ACE_CString, + ACS::booleanSeq, + ACS::doubleSeq, + SRTMinorServoFocalConfiguration, + SRTMinorServoControlStatus, + SRTMinorServoGregorianCoverStatus, + SRTMinorServoCabinetStatus, + SRTMinorServoOperativeMode + > + >> + class MSAnswerMapDevIO : public MSBaseDevIO<X> + { + public: + /** + * Constructor, accepting the SRTMinorServoAnswerMap derived object and a pointer to the method used to retrieve the DevIO value. + * @param map, the SRTMinorServoAnswerMap derived object. + * @param method, the method to call in order to retrieve the return value. + */ + MSAnswerMapDevIO(const std::string& property_name, const Y& map, X (Y::*method)() const) : m_property_name(property_name), m_map(map), m_method(method) {} + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes. + * @throw ComponentErrors::PropertyError. + * @return the property value as read from the SRTMinorServoAnswerMap object reference. + */ + X read(ACS::Time& timestamp) + { + timestamp = getTimeStamp(); + + try + { + return (m_map.*m_method)(); + } + catch(std::out_of_range& ex) + { + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSAnswerMapDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Property is missing from the map!"); + throw impl; + } + catch(std::bad_variant_access& ex) + { + _EXCPT(ComponentErrors::PropertyErrorExImpl, impl, "MSAnswerMapDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Attempt to access the property with the wrong variant type!"); + throw impl; + } + catch(ACSErr::ACSbaseExImpl& ex) + { + _ADD_BACKTRACE(ComponentErrors::PropertyErrorExImpl, impl, ex, "MSAnswerMapDevIO::read()"); + impl.setPropertyName(m_property_name.c_str()); + impl.setReason("Property could not be read!"); + throw impl; + } + } + + private: + /** + * The name of the property. + */ + const std::string m_property_name; + + /** + * The reference to the SRTMinorServoAnswerMap in which the readings from the PLC appear. This could be either a SRTMinorServoGeneralStatus or a SRTMinorServoStatus. + */ + const Y& m_map; + + /** + * Pointer to the method of the SRTMinorServoAnswerMap to call in order to retrieve the DevIO return value. + */ + X (Y::*m_method)() const; + }; + + /** + * This template class represents a generic Minor Servo DevIO. + * It accepts 2 types, the DevIO type (the return type) and the type of the object reference which stores the original value to be returned by the read method. + * The templates is specialized for the combinations of types listed right below and the compilation will fail if the developer attempts to use it with any other types combination. + */ + template <typename C, typename A, typename = std::enable_if_t< + is_any_v<C, Management::TSystemStatus, Management::TBoolean, ACE_CString, CORBA::Long> || (std::is_same_v<C, ACS::doubleSeq> && std::is_same_v<A, std::vector<double>>) + >> + class MSGenericDevIO : public MSBaseDevIO<C> + { + public: + /** + * Default constructor. + * @param value a constant reference to the object from which the DevIO will read the value to be returned as property. + */ + MSGenericDevIO(const A& value) : m_value(value) {} + + /** + * Used to read the property value. + * @param timestamp epoch when the operation completes. + * @return the property value read from the original referenced object. + */ + C read(ACS::Time& timestamp) + { + timestamp = getTimeStamp(); //completion time + + if constexpr(std::is_same_v<A, std::string>) + { + return m_value.c_str(); + } + else if constexpr(std::is_same_v<C, ACS::doubleSeq>) + { + ACS::doubleSeq_var sequence = new ACS::doubleSeq; + sequence->length(m_value.size()); + + for(size_t i = 0; i < m_value.size(); i++) + { + sequence[i] = m_value.operator[](i); + } + + return sequence; + } + else if constexpr(is_atomic_v<A>) + { + return m_value.load(); + } + else + { + return m_value; + } + } + + /** + * The reference to the object containing the value to be returned as property. + */ + const A& m_value; + }; +} + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h new file mode 100644 index 000000000..157fe1f23 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -0,0 +1,437 @@ +#ifndef __SRTMINORSERVOBOSSCORE_H__ +#define __SRTMINORSERVOBOSSCORE_H__ + +/** + * SRTMinorServoBossCore.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <IRA> +#include <baciSmartPropertyPointer.h> +#include <baciROboolean.h> +#include <baciROdouble.h> +#include <baciROstring.h> +#include <enumpropROImpl.h> +#include <SRTMinorServoBossS.h> +#include <SRTMinorServoS.h> +#include <AntennaProxy.h> +#include <ManagmentDefinitionsS.h> +#include <thread> +#include <chrono> +#include <LogFilter.h> +#include <slamac.h> +#include <MinorServoErrors.h> +#include <ManagementErrors.h> +#include <ComponentErrors.h> +#include "SRTMinorServoSocket.h" +#include "MSDevIOs.h" +#include "SRTMinorServoBossImpl.h" +#include "SRTMinorServoStatusThread.h" +#include "SRTMinorServoSetupThread.h" +#include "SRTMinorServoParkThread.h" +#include "SRTMinorServoTrackingThread.h" +#include "SRTMinorServoScanThread.h" +#include "SRTMinorServoContainers.h" + + +_IRA_LOGFILTER_IMPORT; + +using namespace MinorServo; + +class SRTMinorServoBossImpl; +class SRTMinorServoStatusThread; +class SRTMinorServoSetupThread; +class SRTMinorServoParkThread; +class SRTMinorServoTrackingThread; +class SRTMinorServoScanThread; + + +/** + * This class implements the core functionalities for the SRTMinorServoBoss. It is constructed during the SRTMinorServoBossImpl component's construction. + * It handles all the threads and the procedures necessary for the minor servo system to work properly. + */ +class SRTMinorServoBossCore +{ + /** + * These classes needs full access to the SRTMinorServoBossCore object methods and attributes in order for the system to work properly. + */ + friend class SRTMinorServoBossImpl; + friend class SRTMinorServoStatusThread; + friend class SRTMinorServoSetupThread; + friend class SRTMinorServoParkThread; + friend class SRTMinorServoTrackingThread; + friend class SRTMinorServoScanThread; + +public: + /** + * Constructor. + * @param component a reference to the component object. Used in order to access the properties. + * @throw ComponentErrors::ComponentErrorsEx when reading configurations from the CDB. + */ + SRTMinorServoBossCore(SRTMinorServoBossImpl& component); + + /** + * Destructor. + */ + virtual ~SRTMinorServoBossCore(); + +private: + /** + * Reads the overall status from the hardware. + * @return true when the status is OK, false otherwise. + */ + bool status(); + + /** + * Performs a setup procedure. + * @param configuration a mnemonic code identifying the desired configuration. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while performing the setup procedure or if checkLineStatus throws. + */ + void setup(std::string configuration); + + /** + * Performs a park procedure. + * @throw ManagementErrors::ParkingErrorEx when something went wrong while performing the park procedure or if checkLineStatus throws. + */ + void park(); + + /** + * Enables or disables the elevation tracking. + * @param configuration the desired elevation tracking configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + void setElevationTracking(std::string configuration); + + /** + * Enables or disables the use of ASACTIVE configurations. + * @param configuration the desired active surface configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + void setASConfiguration(std::string configuration); + + /** + * Opens or closes the gregorian cover. + * @param position the desired position for the gregorian cover, allowed values are 'open', 'OPEN', 'closed' or 'CLOSED'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded position is unknown, when the system is not parked or parking, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + void setGregorianCoverPosition(std::string position); + + /** + * Configures the whole minor servo system to a desired position. + * @param elevation the elevation to use for all the minor servo positions calculation. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system was not configured yet, + * when a single minor servo component raises an error or when checkLineStatus throws. + */ + void preset(double elevation); + + /** + * Resets the given servo user offsets to 0. + * @param servo_name the name of the minor servo the user offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + void clearUserOffsets(std::string servo_name); + + /** + * Sets the given axis' user offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + void setUserOffset(std::string servo_axis_name, double offset, bool log = false); + + /** + * Retrieves all the current user offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes user offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + ACS::doubleSeq* getUserOffsets(); + + /** + * Resets the given servo system offsets to 0. + * @param servo_name the name of the minor servo the system offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + void clearSystemOffsets(std::string servo_name); + + /** + * Sets the given axis' system offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired system offset to be loaded for the given axis. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + void setSystemOffset(std::string servo_axis_name, double offset); + + /** + * Retrieves all the current system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes system offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + ACS::doubleSeq* getSystemOffsets(); + + /** + * Retrieves all the current axes names and units of measure. + * @param axes_names_out a reference to the sequence in which the method will put all the axes names. + * @param axes_units_out a reference to the sequence in which the method will put all the axes units of measure. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + */ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out); + + /** + * Retrieves all the axes positions for a given epoch. + * @param acs_time the ACS::Time the user wants to retrieve all the axes positions for. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return an ACS::doubleSeq containing all the axes positions for the given time. + */ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time); + + /** + * This method performs the calculations necessary to check if a scan can be performed starting from the given parameters. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the given parameters or when the scan could not be performed for any reason. + * @return a SRTMinorServoScan object containing the parameters for a feasible scan. + */ + SRTMinorServoScan checkScanFeasibility(const ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + + /** + * This method checks if a scan with the given parameters is feasible by calling the checkScanFeasibility method. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @param ms_parameters a reference to the object containing the calculated parameters for the requested scan. + * @return true if the requested scan is feasible, false otherwise. + */ + bool checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters); + + /** + * This method commands the start of a scan to the minor servo system. It calls the checkScanFeasibility method again to be sure the scan can actually be performed, updating the starting time. + * @param start_time a reference to the ACS::Time object. This value will be written by this method and it will represent the earliest time the minor servo system can perform the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status, with the given parameters or when the scan could not be performed for any reason. + */ + void startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + + /** + * Requests a stop for the ongoing scan. + * @param close_time the closing time for the ongoing scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status. + */ + void closeScan(ACS::Time& close_time); + + /** + * Retrieve the antenna elevation from the AntennaBoss component for the given ACS::Time. + * @param acs_time the ACS::Time we want to know the antenna elevation for. + * @throw ComponentErrors::ComponentErrorsEx when the AntennaBoss component could not be retrieved. + * @return the antenna elevation for the given time, expressed in degrees. + */ + double getElevation(const ACS::Time& acs_time); + + /** + * Checks if the socket is connected, if the Leonardo minor servo system is currently controlled by DISCOS and if it is not in emergency status. + * @throw MinorServoErrors::MinorServoErrorsEx when any of the above is false. + */ + void checkLineStatus(); + + /** + * Method that creates and starts an ACS thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS thread object to be eventually created and started. + * @param sleep_time the optional thread sleep time, defaults to 0, meaning that this value will be ignored and internally the thread sleep time will be set to the default sleep time. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void startThread(T*& thread, const ACS::TimeInterval& sleep_time = 0); + + /** + * Method that stops an ACS thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS thread object to be stopped. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void stopThread(T*& thread); + + /** + * Method that destroys an ACS Thread object. + * It is a template specialized on the SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread and SRTMinorServoScanThread classes. + * @param thread pointer to the ACS Thread object to be destroyed. + */ + template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> + void destroyThread(T*& thread); + + /** + * Method that sets all the necessary variable to signal a failure of the minor servo system. + */ + void setFailure(); + + /** + * Method used to retrieve a configuration value from the CDB. + * @param configuration the name of the value to be read from the CDB. + */ + Management::TBoolean getCDBConfiguration(std::string configuration); + + /** + * Reference to the component object. + */ + SRTMinorServoBossImpl& m_component; + + /** + * Pointer to the status thread. + */ + SRTMinorServoStatusThread* m_status_thread; + + /** + * Pointer to the setup thread. + */ + SRTMinorServoSetupThread* m_setup_thread; + + /** + * Pointer to the park thread. + */ + SRTMinorServoParkThread* m_park_thread; + + /** + * Pointer to the tracking thread. + */ + SRTMinorServoTrackingThread* m_tracking_thread; + + /** + * Pointer to the scan thread. + */ + SRTMinorServoScanThread* m_scan_thread; + + /** + * Pointer to the AntennaBoss component. + */ + Antenna::AntennaBoss_proxy m_antennaBoss; + + /** + * SRTMinorServoGeneralStatus object containing the status read from the PLC. + */ + SRTMinorServoGeneralStatus m_status; + + /** + * Enumeration indicating the status of the motion of the minor servo system. + */ + std::atomic<SRTMinorServoMotionStatus> m_motion_status; + + /** + * String containing the commanded focal configuration. + */ + std::string m_commanded_setup; + + /** + * Enumeration containing the commanded focal configuration. + */ + std::atomic<SRTMinorServoFocalConfiguration> m_commanded_configuration; + + /** + * Enumeration containing the status of the subsystem. + */ + std::atomic<Management::TSystemStatus> m_subsystem_status; + + /** + * String containing the current focal configuration name. + */ + std::string m_actual_setup; + + /** + * Boolean indicating whether the system is ready or not. + */ + std::atomic<Management::TBoolean> m_ready; + + /** + * Boolean indicating whether the system is performing a setup procedure or not. + */ + std::atomic<Management::TBoolean> m_starting; + + /** + * Boolean indicating whether the system is using ASACTIVE configurations or not. + */ + std::atomic<Management::TBoolean> m_as_configuration; + + /** + * Boolean indicating whether the system is currently tracking the elevation. + */ + std::atomic<Management::TBoolean> m_elevation_tracking; + + /** + * Boolean indicating whether the tracking of the elevation is enabled. + */ + std::atomic<Management::TBoolean> m_elevation_tracking_enabled; + + /** + * Boolean indicating whether the system can perform scans or not. + */ + std::atomic<Management::TBoolean> m_scan_active; + + /** + * Boolean indicating whether the system is scanning or not. + */ + std::atomic<Management::TBoolean> m_scanning; + + /** + * Boolean indicating whether the system is tracking or not. + */ + std::atomic<Management::TBoolean> m_tracking; + + /** + * This boolean will be set to true every time the socket connects. + * When true it will trigger a procedure that will check if the minor servos offsets need to be reloaded because of a discrepancy between the DISCOS offsets (user + system) and the Leonardo offsets. + */ + bool m_reload_servo_offsets; + + /** + * Configuration of the socket object. + */ + const SRTMinorServoSocketConfiguration& m_socket_configuration; + + /** + * Socket object. + */ + SRTMinorServoSocket& m_socket; + + /** + * Boolean indicating whether the socket is connected or not. + */ + std::atomic<Management::TBoolean> m_socket_connected; + + /** + * Map containing all the servos in the minor servo system. + */ + const std::map<std::string, SRTBaseMinorServo_ptr> m_servos; + + /** + * Map containing all the tracking servos in the minor servo system. + */ + const std::map<std::string, SRTProgramTrackMinorServo_ptr> m_tracking_servos; + + /** + * Map that will dynamically be updated containing the current configuration's minor servos. + */ + std::map<std::string, SRTBaseMinorServo_ptr> m_current_servos; + + /** + * Map that will dynamically be updated containing the current configuration's tracking minor servos. + */ + std::map<std::string, SRTProgramTrackMinorServo_ptr> m_current_tracking_servos; + + /** + * Current scan parameters. + */ + SRTMinorServoScan m_current_scan; + + /** + * Last scan parameters. + */ + SRTMinorServoScan m_last_scan; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h new file mode 100644 index 000000000..40eb0c828 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -0,0 +1,548 @@ +#ifndef __SRTMINORSERVOBOSSIMPL_H__ +#define __SRTMINORSERVOBOSSIMPL_H__ + +/** + * SRTMinorServoBossImpl.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <IRA> +#include <baciCharacteristicComponentImpl.h> +#include <baciSmartPropertyPointer.h> +#include <baciROdouble.h> +#include <baciROstring.h> +#include <enumpropROImpl.h> +#include <MinorServoBossS.h> +#include <SRTMinorServoS.h> +#include <SP_parser.h> +#include "MinorServoErrors.h" +#include "SRTMinorServoBossCore.h" +#include "SRTMinorServoStatusThread.h" +#include "MSDevIOs.h" +#include "SRTMinorServoCommon.h" + +using namespace MinorServo; + +// Forward classes definitions +class SRTMinorServoBossCore; +class SRTMinorServoStatusThread; + +class SRTMinorServoBossImpl : public baci::CharacteristicComponentImpl, public virtual POA_MinorServo::SRTMinorServoBoss +{ + friend class SRTMinorServoBossCore; +public: + /** + * Constructor. + * @param component_name the name of the component. + * @param container_services the ACS container services. + */ + SRTMinorServoBossImpl(const ACE_CString& component_name, maci::ContainerServices* container_services); + + /** + * Destructor. + */ + virtual ~SRTMinorServoBossImpl(); + + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters, builds up connection. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ + virtual void initialize(); + + /** + * Called after initialize to tell the component that it has to be ready to accept incoming functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only logs the COMPSTATE_OPERATIONAL. + */ + virtual void execute(); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of releasing all resources. + */ + virtual void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. + * This function tries to free all resources even though there is no warranty that the function is completely executed before the component is destroyed. + */ + virtual void aboutToAbort(); + + /** + * Performs a setup procedure. + * @param configuration a mnemonic code identifying the desired configuration. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while calling the SRTMinorServoBossCore method implementation. + */ + virtual void setup(const char* configuration); + + /** + * Performs a park procedure. + * @throw ManagementErrors::ConfigurationErrorEx when something went wrong while calling the SRTMinorServoBossCore method implementation. + */ + virtual void park(); + + /** + * Method that tells if the elevation tracking is enabled. + * @return a CORBA::Boolean indicating if the elevation tracking is enabled or not. + */ + virtual CORBA::Boolean isElevationTrackingEn(); + + /** + * Method that tells if the elevation is being tracked. + * @return a CORBA::Boolean indicating if the system is currently tracking the elevation or not. + */ + virtual CORBA::Boolean isElevationTracking(); + + /** + * Method that tells if the system is currently tracking the commanded position. + * @return a CORBA::Boolean indicating if the system is currently tracking below the given error threshold or not. + */ + virtual CORBA::Boolean isTracking(); + + /** + * Method that tells if the system is currently performing a setup procedure. + * @return a CORBA::Boolean indicating if the system is currently performing a setup procedure or not. + */ + virtual CORBA::Boolean isStarting(); + + /** + * Method that tells if the system is using ASACTIVE lookup tables or not. + * @return a CORBA::Boolean indicating if the system is configured to use ASACTIVE lookup tables or not. + */ + virtual CORBA::Boolean isASConfiguration(); + + /** + * Method that tells if the system is currently performing a parking procedure. + * @return a CORBA::Boolean indicating if the system is currently performing a parking procedure or not. + */ + virtual CORBA::Boolean isParking(); + + /** + * Method that tells if the system was configured correctly. + * @return a CORBA::Boolean indicating if the system is ready to be moved or not. + */ + virtual CORBA::Boolean isReady(); + + /** + * Method that tells if the system is currently performing a scan. + * @return a CORBA::Boolean indicating if the system is currently performing a scan or not. + */ + virtual CORBA::Boolean isScanning(); + + /** + * Method that tells if the system can currently perform a scan or not. + * @return a CORBA::Boolean indicating if the system can perform a scan or not. + */ + virtual CORBA::Boolean isScanActive(); + + /** + * Returns the name of the current focal configuration. + * @return a string containing the current focal configuration name. + */ + virtual char* getActualSetup(); + + /** + * Returns the name of the commanded focal configuration. + * @return a string containing the commanded focal configuration name. + */ + virtual char* getCommandedSetup(); + + /** + * Returns the central position for the axis involved in the current or last scan. + * @return a CORBA::Double containing the central position for the current scan axis. + * @throw MinorServoErrors::MinorServoErrorsEx when no scan has been performed yet. + */ + virtual CORBA::Double getCentralScanPosition(); + + /** + * Clears the user defined offsets from all the minor servos. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void clearOffsets(); + + /** + * Resets the given servo user offsets to 0. + * @param servo_name the name of the minor servo the user offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void clearUserOffset(const char* servo_name); + + /** + * Sets the given axis' user offset. CORBA IDL implementation. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void setUserOffset(const char* servo_axis_name, CORBA::Double offset); + + /** + * Sets the given axis' user offset. SimpleParser implementation. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired user offset to be loaded for the given axis. + * @param log a boolean indicating whether the call comes from the SimpleParser or from outside sources. In case it comes from the SimpleParser, we will log the action, otherwise we won't. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void setUserOffset(const char* servo_axis_name, const double& offset); + + /** + * Retrieves all the current user offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes user offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + virtual ACS::doubleSeq* getUserOffset(); + + /** + * Resets the given servo system offsets to 0. + * @param servo_name the name of the minor servo the system offsets will be reset to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo_name is unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void clearSystemOffset(const char* servo_name); + + /** + * Sets the given axis' system offset. + * @param servo_axis_name the minor servo and axis names, connected by a _ character. + * @param offset the desired system offset to be loaded for the given axis. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system is not configured yet, when the given servo or axis name are unknown, + * when the given servo is not used in the current focal configuration or when checkLineStatus throws. + */ + virtual void setSystemOffset(const char* servo_axis_name, CORBA::Double offset); + + /** + * Retrieves all the current system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return a ACS::doubleSeq containing all the axes system offsets. The axes order is the same one retrieved with the getAxesInfo method. + */ + virtual ACS::doubleSeq* getSystemOffset(); + + /** + * Retrieves all the current axes names and units of measure. + * @param axes_names_out a reference to the sequence in which the method will put all the axes names. + * @param axes_units_out a reference to the sequence in which the method will put all the axes units of measure. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + */ + virtual void getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units); + + /** + * Gets the axis involved in the currently or last executed scan. + * @return a string containing the servo name and the axis name, connected by a _ character. + */ + virtual char* getScanAxis(); + + /** + * Retrieves all the axes positions for a given epoch. + * @param acs_time the ACS::Time the user wants to retrieve all the axes positions for. + * @throw MinorServoErrors::MinorServoErrorsEx when the system is not configured yet. + * @return an ACS::doubleSeq containing all the axes positions for the given time. + */ + virtual ACS::doubleSeq* getAxesPosition(ACS::Time acs_time); + + /** + * Enables or disables the elevation tracking. + * @param configuration the desired elevation tracking configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + virtual void setElevationTracking(const char* elevation_tracking); + + /** + * Enables or disables the use of ASACTIVE configurations. + * @param configuration the desired active surface configuration, allowed values are 'on', 'ON', 'off' and 'OFF'. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed or when the passed configuration is unknown. + */ + virtual void setASConfiguration(const char* as_configuration); + + /** + * Opens or closes the gregorian cover. + * @param position the desired position for the gregorian cover, allowed values are 'open', 'OPEN', 'closed' or 'CLOSED'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded position is unknown, when the system is not parked or parking, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + virtual void setGregorianCoverPosition(const char* position); + + /** + * This method checks if a scan with the given parameters is feasible. + * @param start_time the starting ACS::Time for the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @param ms_parameters a reference to the object containing the calculated parameters for the requested scan. + * @return true if the requested scan is feasible, false otherwise. + */ + virtual CORBA::Boolean checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters); + + /** + * This method commands the start of a scan to the minor servo system. + * @param start_time a reference to the ACS::Time object. This value will be written by this method and it will represent the earliest time the minor servo system can perform the requested scan. + * @param scan_info the minor servo scan parameters for the requested scan. + * @param antenna_info the antenna scan parameters for the requested scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status, with the given parameters or when the scan could not be performed for any reason. + */ + virtual void startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info); + + /** + * Requests a stop for the ongoing scan. + * @param close_time the closing time for the ongoing scan. + * @throw MinorServoErrors::MinorServoErrorsEx when there are issues with the line status. + */ + virtual void closeScan(ACS::Time& close_time); + + /** + * Configures the whole minor servo system to a desired position. + * @param elevation the elevation to use for all the minor servo positions calculation. + * @throw MinorServoErrors::MinorServoErrorsEx when a scan is waiting to be completed, when the system was not configured yet, + * when a single minor servo component raises an error or when checkLineStatus throws. + */ + virtual void preset(double elevation); + + /** + * Parser method. It executes the desired command. + */ + virtual CORBA::Boolean command(const char*, CORBA::String_out); + + /** + * Returns a reference to the status property implementation of the IDL interface. + * @return pointer to read-only TSystemStatus property status. + */ + virtual Management::ROTSystemStatus_ptr status(); + + /** + * Returns a reference to the ready property implementation of the IDL interface. + * @return pointer to read-only TBoolean property ready. + */ + virtual Management::ROTBoolean_ptr ready(); + + /** + * Returns a reference to the actualSetup property implementation of the IDL interface. + * @return pointer to read-only string property actualSetup. + */ + virtual ACS::ROstring_ptr actualSetup(); + + /** + * Returns a reference to the motionInfo property implementation of the IDL interface. + * @return pointer to read-only string property motionInfo. + */ + virtual ACS::ROstring_ptr motionInfo(); + + /** + * Returns a reference to the starting property implementation of the IDL interface. + * @return pointer to read-only TBoolean property starting. + */ + virtual Management::ROTBoolean_ptr starting(); + + /** + * Returns a reference to the asConfiguration property implementation of the IDL interface. + * @return pointer to read-only TBoolean property asConfiguration. + */ + virtual Management::ROTBoolean_ptr asConfiguration(); + + /** + * Returns a reference to the elevationTrack property implementation of the IDL interface. + * @return pointer to read-only TBoolean property elevationTrack. + */ + virtual Management::ROTBoolean_ptr elevationTrack(); + + /** + * Returns a reference to the scanActive property implementation of the IDL interface. + * @return pointer to read-only TBoolean property scanActive. + */ + virtual Management::ROTBoolean_ptr scanActive(); + + /** + * Returns a reference to the scanning property implementation of the IDL interface. + * @return pointer to read-only TBoolean property scanning. + */ + virtual Management::ROTBoolean_ptr scanning(); + + /** + * Returns a reference to the tracking property implementation of the IDL interface. + * @return pointer to read-only TBoolean property tracking. + */ + virtual Management::ROTBoolean_ptr tracking(); + + /** + * Returns a reference to the connected property implementation of the IDL interface. + * @return pointer to read-only TBoolean property connected. + */ + virtual Management::ROTBoolean_ptr connected(); + + /** + * Returns a reference to the current_configuration property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoFocalConfiguration property current_configuration. + */ + virtual ROSRTMinorServoFocalConfiguration_ptr current_configuration(); + + /** + * Returns a reference to the simulation_enabled property implementation of the IDL interface. + * @return pointer to read-only TBoolean property simulation_enabled. + */ + virtual Management::ROTBoolean_ptr simulation_enabled(); + + /** + * Returns a reference to the plc_time property implementation of the IDL interface. + * @return pointer to read-only double property plc_time. + */ + virtual ACS::ROdouble_ptr plc_time(); + + /** + * Returns a reference to the plc_version property implementation of the IDL interface. + * @return pointer to read-only string property plc_version. + */ + virtual ACS::ROstring_ptr plc_version(); + + /** + * Returns a reference to the control property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoControlStatus property control. + */ + virtual ROSRTMinorServoControlStatus_ptr control(); + + /** + * Returns a reference to the power property implementation of the IDL interface. + * @return pointer to read-only TBoolean property power. + */ + virtual Management::ROTBoolean_ptr power(); + + /** + * Returns a reference to the emergency property implementation of the IDL interface. + * @return pointer to read-only TBoolean property emergency. + */ + virtual Management::ROTBoolean_ptr emergency(); + + /** + * Returns a reference to the gregorian_cover property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoGregorianCoverStatus property gregorian_cover. + */ + virtual ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); + + /** + * Returns a reference to the last_executed_command property implementation of the IDL interface. + * @return pointer to read-only double property last_executed_command. + */ + virtual ACS::ROdouble_ptr last_executed_command(); + +private: + /** + * Component name. + */ + const std::string m_component_name; + + /** + * SRTMinorServoBossCore object pointer. No delete is needed since it is handled by the shared_ptr logic. + */ + const std::shared_ptr<SRTMinorServoBossCore> m_core_ptr; + + /** + * SRTMinorServoBossCore object reference. + */ + SRTMinorServoBossCore& m_core; + + /** + * Command line parser object. + */ + SimpleParser::CParser<SRTMinorServoBossImpl> m_parser; + + /** + * Pointer to the connected property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_connected_ptr; + + /** + * Pointer to the status property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>> m_status_ptr; + + /** + * Pointer to the ready property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_ready_ptr; + + /** + * Pointer to the actual_setup property. + */ + baci::SmartPropertyPointer<baci::ROstring> m_actual_setup_ptr; + + /** + * Pointer to the motion_info property. + */ + baci::SmartPropertyPointer<baci::ROstring> m_motion_info_ptr; + + /** + * Pointer to the starting property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_starting_ptr; + + /** + * Pointer to the as_configuration property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_as_configuration_ptr; + + /** + * Pointer to the elevation_tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_elevation_tracking_ptr; + + /** + * Pointer to the scan_active property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_scan_active_ptr; + + /** + * Pointer to the scanning property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_scanning_ptr; + + /** + * Pointer to the tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; + + /** + * Pointer to the current_configuration property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>> m_current_configuration_ptr; + + /** + * Pointer to the simulation_enabled property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_simulation_enabled_ptr; + + /** + * Pointer to the plc_time property. + */ + baci::SmartPropertyPointer<baci::ROdouble> m_plc_time_ptr; + + /** + * Pointer to the plc_version property. + */ + baci::SmartPropertyPointer<baci::ROstring> m_plc_version_ptr; + + /** + * Pointer to the control property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>> m_control_ptr; + + /** + * Pointer to the power property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_power_ptr; + + /** + * Pointer to the emergency property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_emergency_ptr; + + /** + * Pointer to the gregorian_cover property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>> m_gregorian_cover_ptr; + + /** + * Pointer to the last_executed_command property. + */ + baci::SmartPropertyPointer<baci::ROdouble> m_last_executed_command_ptr; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h new file mode 100644 index 000000000..2048dbdf7 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoCommon.h @@ -0,0 +1,38 @@ +#ifndef __SRTMINORSERVOCOMMON_H__ +#define __SRTMINORSERVOCOMMON_H__ + +/** + * SRTMinorServoCommon.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +/** + * programTrack constants. The first indicates the time between two consecutive points, the second indicates the time we send each point in advance. + */ +#define PROGRAM_TRACK_TIMEGAP 2000000 //200 milliseconds, time between each programTrack point +#define PROGRAM_TRACK_FUTURE_TIME 26000000 //2.6 seconds, we send points this amount of time before their actual timestamp + +/** + * Macro used to link the properties pointers to their methods. + */ +#define GET_PROPERTY_REFERENCE(TYPE, CLASSNAME, PROPERTY, PROPERTYNAME) TYPE##_ptr CLASSNAME::PROPERTYNAME() \ +{ \ + if (PROPERTY==0) return TYPE::_nil(); \ + TYPE##_var tmp=TYPE::_narrow(PROPERTY->getCORBAReference()); \ + return tmp._retn(); \ +} + +/** + * Macro used to show the error on the operatorInput and on the jlog since the parser does not log Ex type exceptions + */ +#define LOG_EX(EXTYPE) \ +{ \ + EXTYPE##Impl impl(ex); \ + std::string _command(cmd); \ + std::string error = _command.substr(0, _command.find('=')) + "?"; \ + SP::CFormatter<decltype(impl)>::exceptionToUser(impl, out); \ + error += out; \ + out = error.c_str(); \ +} + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h new file mode 100644 index 000000000..2a43122df --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -0,0 +1,745 @@ +#ifndef __SRTMINORSERVOIMPL_H__ +#define __SRTMINORSERVOIMPL_H__ + +/** + * SRTMinorServoImpl.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <regex> +#include <IRA> +#include <baciCharacteristicComponentImpl.h> +#include <baciSmartPropertyPointer.h> +#include <baciROlong.h> +#include <baciRObooleanSeq.h> +#include <baciROdoubleSeq.h> +#include <baciROstring.h> +#include <enumpropROImpl.h> +#include <SRTMinorServoS.h> +#include <maciACSComponentDefines.h> +#include <ManagmentDefinitionsS.h> +#include "ManagementErrors.h" +#include "MinorServoErrors.h" +#include "SRTMinorServoSocket.h" +#include "MSDevIOs.h" +#include "SRTMinorServoContainers.h" +#include "SRTMinorServoCommon.h" + + +using namespace MinorServo; + +/** + * This class implements the base ACS::CharacteristicComponent CORBA interface for a SRTMinorServo component. + * It is inherited by the other classes declared below. + */ +class SRTBaseMinorServoImpl : public baci::CharacteristicComponentImpl +{ +public: + /** + * Constructor. + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + * @throw ComponentErrors::ComponentErrorsEx when there has been an issue reading some value from the CDB. + */ + SRTBaseMinorServoImpl(const ACE_CString& component_name, maci::ContainerServices* container_services); + + /** + * Destructor. + */ + virtual ~SRTBaseMinorServoImpl(); + + /** + * Called to give the component time to initialize itself. The component reads in configuration files/parameters, builds up connection. + * Called before execute. It is implemented as a synchronous (blocking) call. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ + void initialize(); + + /** + * Called after initialize to tell the component that it has to be ready to accept incoming functional calls any time. + * Must be implemented as a synchronous (blocking) call. In this class the default implementation only logs the COMPSTATE_OPERATIONAL. + */ + void execute(); + + /** + * Called by the container before destroying the server in a normal situation. This function takes charge of releasing all resources. + */ + void cleanUp(); + + /** + * Called by the container in case of error or emergency situation. + * This function tries to free all resources even though there is no warranty that the function is completely executed before the component is destroyed. + */ + void aboutToAbort(); + + /** + * Asks the hardware the status of the servo system and updates the component properties. + * @return true if the communication succeeded, false otherwise. + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware. + */ + bool status(); + + /** + * Asks the servo system to perform a STOW operation. + * @param stow_position the position to get stowed into. + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted. + */ + void stow(CORBA::Long stow_position = 1); + + /** + * Asks the servo system to perform a STOP operation. + * @throw MinorServoErrors::MinorServoErrorsEx if there has been a communication error or if the command was not accepted. + */ + void stop(); + + /** + * Asks the servo system to perform a PRESET operation. + * @param coordinates the sequence of coordinates to get into position to, the sequence length must be equal to the number of virtual axes of the servo system. + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted. + */ + void preset(const ACS::doubleSeq& coordinates); + + /** + * Asks the servo system to load the commanded configuration table. + * @param configuration_name the configuration the servo system should assume. + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. + * @return true if the servo is in use with the current configuration, false otherwise + */ + bool setup(const char* configuration_name = ""); + + /** + * Asks the component to calculate the servo system position starting from the given elevation. + * @param elevation the elevation we want to use to calculate and retrieve the servo system coordinates, expressed in degrees. + * @throw MinorServoErrors::MinorServoErrorsEx when the servo has not been configured yet and has not loaded any coefficient for the position calculation. + * @return a pointer to the double sequence object containing the calculated coordinates of the servo system. + */ + ACS::doubleSeq* calcCoordinates(CORBA::Double elevation); + + /** + * Asks the component the virtual axes user offsets. + * @return a pointer to the double sequence object containing the current virtual axes user offsets of the servo system. + */ + ACS::doubleSeq* getUserOffsets(); + + /** + * Load a single virtual axis user offset to the component and to the servo system. + * @param axis_name the name of the axis to load the given offset to. + * @param offset the desired user offset, expressed in millimeters or degrees, depending if the axis is a translation axis or a rotation one. + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis_name is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted. + */ + void setUserOffset(const char* axis_name, CORBA::Double offset); + + /** + * Resets the virtual axes user offsets to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void clearUserOffsets(); + + /** + * Asks the component the virtual axes system offsets. + * @return a pointer to the double sequence object containing the current virtual axes system offsets of the servo system. + */ + ACS::doubleSeq* getSystemOffsets(); + + /** + * Load a single virtual axis system offset to the component and to the servo system. + * @param axis_name the name of the axis to load the given offset to. + * @param offset the desired system offset, expressed in millimeters or degrees, depending if the axis is a translation axis or a rotation one. + * @throw MinorServoErrors::MinorServoErrorsEx when the given axis is unknown, when the sum of user and system offsets for the given axis are out of range, + * when there has been a communication error or when the command was not accepted. + */ + void setSystemOffset(const char* axis_name, CORBA::Double offset); + + /** + * Resets the virtual axes system offsets to 0. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void clearSystemOffsets(); + + /** + * Reload the user and the system offsets to the minor servo when the Leonardo offsets do not correspond to the sum of the DISCOS user and system offsets. + * @throw MinorServoErrors::MinorServoErrorsEx when there has been a communication error or when the command was not accepted. + */ + void reloadOffsets(); + + /** + * Returns the name and the unit of each virtual axes of the servo system, as reference arguments. + * @param axes_names_out a string sequence object containing the names of the virtual axes of the servo system. + * @param axes_units_out a string sequence object containing the units of the virtual axes of the servo system. + */ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out); + + /** + * Returns the virtual axes positions to where the servo system was at the given time acs_time. + * @param acs_time the epoch we want to retrieve the axes virtual positions of the servo system. + * @throw MinorServoErrors::MinorServoErrorsEx when the position history is empty. + * @return a pointer to the double sequence object containing the virtual axes positions at the given epoch. + */ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time); + + /** + * Returns the maximum travel time to get from a starting position to a destination position. + * @param start a double sequence containing the starting position. If the provided sequence is empty, the current axes positions are used for the calculation. + * @param dest a double sequence containing the destination position. + * @throw MinorServoErrors::MinorServoErrorsEx when receiving a starting position sequence of length different from zero or the number of virtual axes of the servo, + * when receiving a destination position sequence of lenght different from the number of virtual axes of the servo + * @return an ACS::TimeInterval object representing the total duration of the movement from the starting position to the destination position + */ + ACS::TimeInterval getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest); + + /** + * Returns the minimum and maximum range of the virtual axes of the servo system, as reference arguments. + * @param min_ranges_out a double sequence object containing the minimum ranges of the virtual axes of the servo system. + * @param max_ranges_out a double sequence object containing the maximum ranges of the virtual axes of the servo system. + */ + void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out); + + /** + * Returns a reference to the enabled property implementation of the IDL interface. + * @return pointer to the read-only boolean property enabled. + */ + virtual Management::ROTBoolean_ptr enabled(); + + /** + * Returns a reference to the drive_cabinet_status property implementation of the IDL interface. + * @return pointer to the read-only SRTMinorServoCabinerStatus (enumeration) property drive_cabinet_status. + */ + virtual ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status(); + + /** + * Returns a reference to the block property implementation of the IDL interface. + * @return pointer to the read-only boolean property block. + */ + virtual Management::ROTBoolean_ptr block(); + + /** + * Returns a reference to the operative_mode property implementation of the IDL interface. + * @return pointer to the read-only SRTMinorServoOperativeMode (enumeration) property operative_mode. + */ + virtual ROSRTMinorServoOperativeMode_ptr operative_mode(); + + /** + * Returns a reference to the physical_axes_enabled property implementation of the IDL interface. + * @return pointer to the read-only boolean sequence property physical_axes_enabled. + */ + virtual ACS::RObooleanSeq_ptr physical_axes_enabled(); + + /** + * Returns a reference to the physical_positions property implementation of the IDL interface. + * @return pointer to the read-only boolean sequence property physical_positions. + */ + virtual ACS::ROdoubleSeq_ptr physical_positions(); + + /** + * Returns a reference to the virtual_axes property implementation of the IDL interface. + * @return pointer to the read-only long property virtual_axes. + */ + virtual ACS::ROlong_ptr virtual_axes(); + + /** + * Returns a reference to the plain_virtual_positions property implementation of the IDL interface. + * @return pointer to the read-only double sequence property plain_virtual_positions. + */ + virtual ACS::ROdoubleSeq_ptr plain_virtual_positions(); + + /** + * Returns a reference to the virtual_positions property implementation of the IDL interface. + * @return pointer to the read-only double sequence property virtual_positions. + */ + virtual ACS::ROdoubleSeq_ptr virtual_positions(); + + /** + * Returns a reference to the virtual_offsets property implementation of the IDL interface. + * @return pointer to the read-only double sequence property virtual_offsets. + */ + virtual ACS::ROdoubleSeq_ptr virtual_offsets(); + + /** + * Returns a reference to the virtual_user_offsets property implementation of the IDL interface. + * @return pointer to the read-only double sequence property virtual_user_offsets. + */ + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets(); + + /** + * Returns a reference to the virtual_system_offsets property implementation of the IDL interface. + * @return pointer to the read-only double sequence property virtual_system_offsets. + */ + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets(); + + /** + * Returns a reference to the in_use property implementation of the IDL interface. + * @return pointer to the read-only boolean property in_use. + */ + virtual Management::ROTBoolean_ptr in_use(); + + /** + * Returns a reference to the current_setup property implementation of the IDL interface. + * @return pointer to the read-only string property current_setup. + */ + virtual ACS::ROstring_ptr current_setup(); + +protected: + /** + * Checks if the socket is connected and if the minor servo system is in a good state. + * @throw MinorServoErrors::MinorServoErrorsEx when the socket is not connected or when the minor servo system is blocked or the drive cabinet is in error state. + */ + void checkLineStatus(); + + /** + * Static function used to retrieve some constants from the component CDB xml schema. + * @param object the instance of this class, used inside the function logic. + * @param constant the name of the constants we want to retrieve from the CDB. + * @throw ComponentErrors::ComponentErrorsEx when the requested value cannot be read from the CDB or when it has a non meaningful value. + * @return a vector of doubles containing the retrieved constants, its length is the same as the number of virtual axes of the servo system. + */ + static std::vector<double> getMotionConstant(SRTBaseMinorServoImpl& object, const std::string& constant); + +private: + /** + * Static function used to retrieve a table from the CDB DataBlock directory. Used inside the initialization list. + * @param object the instance of this class, used inside the function logic. + * @param properties_name the name of the block to retrieve as written inside the DataBlock file. + * @throw ComponentErrors::ComponentErrorsEx when the requested value cannot be read from the CDB. + * @return a vector of strings containing the retrieved table fields. + */ + static std::vector<std::string> getPropertiesTable(SRTBaseMinorServoImpl& object, const std::string& properties_name); + + /** + * Attributes. + * Keep the same order for the initialization list. + */ +protected: + /** + * Name of the component. + */ + const std::string m_component_name; + + /** + * Name of the servo system. + */ + const std::string m_servo_name; + + /** + * Number of virtual axes of the servo system. + */ + const size_t m_virtual_axes; +private: + /** + * Number of physical axes of the servo system. + */ + const size_t m_physical_axes; + + /** + * Name of the virtual axes of the servo system. + */ + const std::vector<std::string> m_virtual_axes_names; + + /** + * Units of the virtual axes of the servo system. + */ + const std::vector<std::string> m_virtual_axes_units; +protected: + /** + * Dictionary containing the last status retrieved form the servo system. + */ + SRTMinorServoStatus m_status; + + /** + * Commanded user offsets for each axis of the servo system. + */ + std::vector<double> m_user_offsets; + + /** + * Commanded system offsets for each axis of the servo system. + */ + std::vector<double> m_system_offsets; + + /** + * Queue of positions assumed by the servo system in time. + */ + SRTMinorServoPositionsQueue m_positions_queue; + + /** + * Minimum ranges of the axes of the servo system. + */ + const std::vector<double> m_min; + + /** + * Maximum ranges of the axes of the servo system. + */ + const std::vector<double> m_max; +private: + /** + * Maximum speeds of the axes of the servo system. + */ + const std::vector<double> m_m_s; + + /** + * Accelerations of the axes of the servo system. + */ + const std::vector<double> m_a; + + /** + * Times to perform a full acceleration ramp from 0 to maximum speed, for each axis. + */ + const std::vector<double> m_r_t; + + /** + * Distances covered by a full acceleration ramp from 0 to maximum speed, for each axis. + */ + const std::vector<double> m_r_d; + + /** + * Current speed of the axes of the servo system. + */ + std::vector<double> m_c_s; + + /** + * Boolean indicating whether the servo system is used in the current focal configuration. + */ + std::atomic<Management::TBoolean> m_in_use; + + /** + * Current active setup name. + */ + std::string m_current_setup; + + /** + * Pointer to the enabled property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_enabled_ptr; + + /** + * Pointer to the drive_cabinet_status property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>> m_drive_cabinet_status_ptr; + + /** + * Pointer to the block property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_block_ptr; + + /** + * Pointer to the operative_mode property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>> m_operative_mode_ptr; + + /** + * Pointer to the physical_axes_enabled property. + */ + baci::SmartPropertyPointer<baci::RObooleanSeq> m_physical_axes_enabled_ptr; + + /** + * Pointer to the physical_positions property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_physical_positions_ptr; + + /** + * Pointer to the virtual_axes property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_virtual_axes_ptr; + + /** + * Pointer to the plain_virtual_positions property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_plain_virtual_positions_ptr; + + /** + * Pointer to the virtual_positions property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_positions_ptr; + + /** + * Pointer to the virtual_offsets property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_offsets_ptr; + + /** + * Pointer to the virtual_user_offsets property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_user_offsets_ptr; + + /** + * Pointer to the virtual_system_offsets property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_system_offsets_ptr; + + /** + * Pointer to the in_use property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_in_use_ptr; + + /** + * Pointer to the current_setup property. + */ + baci::SmartPropertyPointer<baci::ROstring> m_current_setup_ptr; + + /** + * Table containing the coefficients for the positions calculations. + */ + SRTMinorServoLookupTable m_current_lookup_table; + + /** + * Configuration of the socket object. + */ + const SRTMinorServoSocketConfiguration& m_socket_configuration; +protected: + /** + * Socket object. + */ + SRTMinorServoSocket& m_socket; +}; + +/** + * MACRO definition of child classes methods. + * This simplifies the declaration since these methods' implementations are the same for both SRTGenericMinorServo and SRTProgramTrackMinorServo classes. + * This was necessary since these are pure virtual methods in POA_MinorServo::SRTGenericMinorServo and POA_MinorServo::SRTProgramTrackMinorServo, + * and even if they are inherited from the SRTBaseMinorServo class they are not seen by the compiler and they must be declared inside the respective classes. + * Take a look to the SRTBaseMinorServoImpl class for more information for each of these methods. + */ +#define METHODS_DECLARATION \ + void stow(CORBA::Long stow_position = 1) { SRTBaseMinorServoImpl::stow(stow_position); }\ + void stop() { SRTBaseMinorServoImpl::stop(); }\ + void preset(const ACS::doubleSeq& coordinates) { SRTBaseMinorServoImpl::preset(coordinates); }\ + ACS::doubleSeq* calcCoordinates(CORBA::Double elevation) { return SRTBaseMinorServoImpl::calcCoordinates(elevation); }\ + ACS::doubleSeq* getUserOffsets() { return SRTBaseMinorServoImpl::getUserOffsets(); }\ + void setUserOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setUserOffset(axis_name, offset); }\ + void clearUserOffsets() { SRTBaseMinorServoImpl::clearUserOffsets(); }\ + ACS::doubleSeq* getSystemOffsets() { return SRTBaseMinorServoImpl::getSystemOffsets(); }\ + void setSystemOffset(const char* axis_name, CORBA::Double offset) { SRTBaseMinorServoImpl::setSystemOffset(axis_name, offset); }\ + void clearSystemOffsets() { SRTBaseMinorServoImpl::clearSystemOffsets(); }\ + void reloadOffsets() { SRTBaseMinorServoImpl::reloadOffsets(); }\ + void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { SRTBaseMinorServoImpl::getAxesInfo(axes_names_out, axes_units_out); }\ + ACS::doubleSeq* getAxesPositions(ACS::Time acs_time) { return SRTBaseMinorServoImpl::getAxesPositions(acs_time); }\ + long getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest) { return SRTBaseMinorServoImpl::getTravelTime(start, dest); }\ + void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) { SRTBaseMinorServoImpl::getAxesRanges(min_ranges_out, max_ranges_out); } + +/** + * MACRO definition of child classes properties methods. + * This simplifies the declaration since these properties' methods implementations are the same for both SRTGenericMinorServo and SRTProgramTrackMinorServo classes. + * This was necessary since these are pure virtual methods in POA_MinorServo::SRTGenericMinorServo and POA_MinorServo::SRTProgramTrackMinorServo, + * and even if they are inherited from the SRTBaseMinorServo class they are not seen by the compiler and they must be declared inside the respective classes. + * Take a look to the SRTBaseMinorServoImpl class for more information for each of these properties methods. + */ +#define PROPERTIES_DECLARATION \ + virtual Management::ROTBoolean_ptr enabled() { return SRTBaseMinorServoImpl::enabled(); }\ + virtual ROSRTMinorServoCabinetStatus_ptr drive_cabinet_status() { return SRTBaseMinorServoImpl::drive_cabinet_status(); }\ + virtual Management::ROTBoolean_ptr block() { return SRTBaseMinorServoImpl::block(); }\ + virtual ROSRTMinorServoOperativeMode_ptr operative_mode() { return SRTBaseMinorServoImpl::operative_mode(); }\ + virtual ACS::RObooleanSeq_ptr physical_axes_enabled() { return SRTBaseMinorServoImpl::physical_axes_enabled(); }\ + virtual ACS::ROdoubleSeq_ptr physical_positions() { return SRTBaseMinorServoImpl::physical_positions(); }\ + virtual ACS::ROlong_ptr virtual_axes() { return SRTBaseMinorServoImpl::virtual_axes(); }\ + virtual ACS::ROdoubleSeq_ptr plain_virtual_positions() { return SRTBaseMinorServoImpl::plain_virtual_positions(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_positions() { return SRTBaseMinorServoImpl::virtual_positions(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }\ + virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }\ + virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }\ + virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); } + +/** + * This class implements the SRTGenericMinorServoImpl CORBA interface for a generic SRTMinorServo component. + * It inherits from the SRTBaseMinorServoImpl class. + * A SRTGenericMinorServo component does not need to implement any tracking feature. + */ +class SRTGenericMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTGenericMinorServo +{ +public: + /** + * Constructor + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + */ + SRTGenericMinorServoImpl(const ACE_CString &component_name, maci::ContainerServices *container_services); + + /** + * Destructor. + */ + ~SRTGenericMinorServoImpl(); + + /** + * Status method definition. It simply calls and returns the SRTBaseMinorServoImpl method. + */ + bool status() { return SRTBaseMinorServoImpl::status(); } + + /** + * Setup method definition. It simply calls the SRTBaseMinorServoImpl method. + */ + bool setup(const char* configuration_name = "") { return SRTBaseMinorServoImpl::setup(configuration_name); } + + /** + * Declaration of all the other inherited methods. + */ + METHODS_DECLARATION; + + /** + * Declaration of all the other inherited properties methods. + */ + PROPERTIES_DECLARATION; +}; + +/** + * This class implements the SRTProgramTrackMinorServoImpl CORBA interface for a tracking-capable SRTMinorServo component. + * It inherits from the SRTBaseMinorServoImpl class. + * A SRTProgramTrackMinorServo component is capable of commanding a trajectory to track to its related minor servo system. + */ +class SRTProgramTrackMinorServoImpl: public SRTBaseMinorServoImpl, public virtual POA_MinorServo::SRTProgramTrackMinorServo +{ +public: + /** + * Constructor. + * @param component_name component's name. This is also the name that will be used to find the configuration data for the component in the Configuration DataBase. + * @param container_services pointer to the class that exposes all services offered by container. + * @throw ComponentErrors::ComponentErrorsEx when there has been an issue reading some value from the CDB. + */ + SRTProgramTrackMinorServoImpl(const ACE_CString &component_name, maci::ContainerServices *container_services); + + /** + * Destructor. + */ + ~SRTProgramTrackMinorServoImpl(); + + /** + * Overloaded initialize method. It calls the SRTBaseMinorServoImpl initialize method and performs some other initialization routines. + * @throw ComponentErrors::ComponentErrorsEx when there has been a memory allocation issue with the properties pointers. + */ + void initialize(); + + /** + * Overloaded status method. It calls the SRTBaseMinorServoImpl status method and performs some other routines. + * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware. + */ + bool status(); + + /** + * Overloaded setup method. It calls the SRTBaseMinorServoImpl status method and performs some other routines. + * @param configuration_name the configuration the servo system should assume. + * @throw ComponentErrors::ComponentErrorsEx when there is an error while trying to load the table for the given configuration. + */ + bool setup(const char* configuration_name = ""); + + /** + * Declaration of all the other inherited methods. + */ + METHODS_DECLARATION; + + /** + * Loads a set of tracking coordinates to the minor servo system. + * @param trajectory_id the ID of the trajectory. This defaults to UNIX Epoch * 1000 (milliseconds precision) of the starting time of the trajectory. + * @param point_id the ID of the point inside the current trajectory. + * @param point_time the timestamp associated with the given set of tracking coordinates. + * @coordinates the given set of tracking coordinates. + * @throw MinorServoErrors::MinorServoErrorsEx if the length of the coordinates sequence doesn't match the number of virtual axes of the servo, + * if the resulting position summing the offsets would go outside the accepted range of the servo, + * if there has been a communication error or if the command was not accepted. + */ + void programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& coordinates); + + /** + * Returns the tracking status of the minor servo. + * @return true if the minor servo is tracking within the tracking error, false otherwise + */ + bool isTracking() { return m_tracking.load() == Management::MNG_TRUE; } + + /** + * Declaration of all the other inherited properties methods. + */ + PROPERTIES_DECLARATION; + + /** + * Returns a reference to the tracking property implementation of the IDL interface. + * @return pointer to the read-only boolean property tracking. + */ + virtual Management::ROTBoolean_ptr tracking(); + + /** + * Returns a reference to the trajectory_id property implementation of the IDL interface. + * @return pointer to the read-only long property trajectory_id. + */ + virtual ACS::ROlong_ptr trajectory_id(); + + /** + * Returns a reference to the total_trajectory_points property implementation of the IDL interface. + * @return pointer to the read-only long property total_trajectory_points. + */ + virtual ACS::ROlong_ptr total_trajectory_points(); + + /** + * Returns a reference to the remaining_trajectory_points property implementation of the IDL interface. + * @return pointer to the read-only long property remaining_trajectory_points. + */ + virtual ACS::ROlong_ptr remaining_trajectory_points(); + + /** + * Returns a reference to the tracking_error property implementation of the IDL interface. + * @return pointer to the read-only double sequence property tracking_error. + */ + virtual ACS::ROdoubleSeq_ptr tracking_error(); + +private: + /** + * Queue of positions to be assumed by the servo system when tracking a trajectory. + */ + SRTMinorServoPositionsQueue m_tracking_queue; + + /** + * Tracking delta values for all minor servo system virtual axes. + */ + const std::vector<double> m_tracking_delta; + + /** + * Tracking error values for all minor servo system virtual axes. + */ + std::vector<double> m_tracking_error; + + /** + * Indicates if the servo system is tracking or not. It is tracking when the position error is lower than the tracking delta for all the virtual axes. + */ + std::atomic<Management::TBoolean> m_tracking; + + /** + * Current trajectory ID. + */ + std::atomic<unsigned int> m_trajectory_id; + + /** + * Total trajectory points of the current trajectory. + */ + std::atomic<unsigned int> m_total_trajectory_points; + + /** + * Remaining trajectory points of the current trajectory. + */ + std::atomic<unsigned int> m_remaining_trajectory_points; + + /** + * Pointer to the tracking property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>> m_tracking_ptr; + + /** + * Pointer to the trajectory_id property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_trajectory_id_ptr; + + /** + * Pointer to the total_trajectory_points property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_total_trajectory_points_ptr; + + /** + * Pointer to the remaining_trajectory_points property. + */ + baci::SmartPropertyPointer<baci::ROlong> m_remaining_trajectory_points_ptr; + + /** + * Pointer to the tracking_error property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_tracking_error_ptr; +}; + +#endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h new file mode 100644 index 000000000..031e058a8 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoParkThread.h @@ -0,0 +1,78 @@ +#ifndef _SRTMINORSERVOPARKTHREAD_H_ +#define _SRTMINORSERVOPARKTHREAD_H_ + +/** + * SRTMinorServoParkThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" + +// Same timeout as the one defined for the SETUP procedure +#define PARK_TIMEOUT 120 + +class SRTMinorServoBossCore; + + +/** + * This class implements a parking thread. This thread is in charge of checking the status of the minor servos parking procedure. + */ +class SRTMinorServoParkThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param core a reference to the SRTMinorServoBossCore object. + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoParkThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoParkThread"; + +private: + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current status of the finite-state machine. + */ + unsigned int m_status; + + /** + * The starting time of the park procedure. Used to check if we ran out of time. + */ + double m_start_time; +}; + +#endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h new file mode 100644 index 000000000..e5c26e67d --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoScanThread.h @@ -0,0 +1,96 @@ +#ifndef _SRTMINORSERVOSCANTHREAD_H_ +#define _SRTMINORSERVOSCANTHREAD_H_ + +/** + * SRTMinorServoScanThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" +#include "SRTMinorServoContainers.h" + + +class SRTMinorServoBossCore; + + +/** + * This class implements a scan thread. This thread is in charge of positioning the minor servos during a scan operation. + */ +class SRTMinorServoScanThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoScanThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoScanThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoScanThread"; + +private: + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current trajectory ID. + */ + unsigned int m_trajectory_id; + + /** + * The current trajectory point ID. + */ + unsigned int m_point_id; + + /** + * The current trajectory point time. + */ + ACS::Time m_point_time; + + /** + * Boolean which indicates if the scan thread exited with an error or not. + */ + bool m_error; + + /** + * The queue of offsets to be added to the original tracking coordinates. + */ + MinorServo::SRTMinorServoPositionsQueue m_scan_offsets; + + /** + * The coordinates to which the minor servo involved in the scan was positioned before starting the scan itself. + */ + ACS::doubleSeq m_starting_coordinates; +}; + +#endif /*_SRTMINORSERVOSCANTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h new file mode 100644 index 000000000..2a1f4297f --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoSetupThread.h @@ -0,0 +1,87 @@ +#ifndef _SRTMINORSERVOSETUPTHREAD_H_ +#define _SRTMINORSERVOSETUPTHREAD_H_ + +/** + * SRTMinorServoSetupThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" + +// GFR from -160 to 160 takes approximately 110 seconds +#define SETUP_TIMEOUT 120 + +class SRTMinorServoBossCore; + + +/** + * This class implements a setup thread. This thread is in charge of checking the status of the minor servos setup procedure. + */ +class SRTMinorServoSetupThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoSetupThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoSetupThread"; + +private: + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current status of the finite-state machine. + */ + unsigned int m_status; + + /** + * The starting time of the park procedure. Used to check if we ran out of time. + */ + double m_start_time; + + /** + * The requested Leonardo minor servo focal configuration. + */ + std::string m_LDO_configuration; + + /** + * The gregorian cover position to be reached for the requested focal configuration. + */ + MinorServo::SRTMinorServoGregorianCoverStatus m_gregorian_cover_position; +}; + +#endif /*_SRTMINORSERVOSETUPTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h new file mode 100644 index 000000000..fbe34f5ad --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoStatusThread.h @@ -0,0 +1,87 @@ +#ifndef _SRTMINORSERVOSTATUSTHREAD_H_ +#define _SRTMINORSERVOSTATUSTHREAD_H_ + +/** + * SRTMinorServoStatusThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoBossCore.h" +#include <acsncSimpleSupplier.h> + +class SRTMinorServoBossCore; + + +/** + * This class implements a status thread. This thread is in charge of updating the status of the minor servo components. + */ +class SRTMinorServoStatusThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoStatusThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoStatusThread"; + +private: + /** + * Method that publishes the status onto the ACS notification channel. + */ + void publish(); + + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current status of the finite-state machine. + */ + unsigned int m_status; + + /** + * The sleeping time of the thread. + * The thread should be cycling at a constant rate, therefore the inner sleeping time is always updated taking into account this and the thread execution time. + */ + ACS::TimeInterval m_sleep_time; + + /** + * The ACS notification channel simple supplier object. + */ + nc::SimpleSupplier* m_notification_channel; +}; + +#endif /*_SRTMINORSERVOSTATUSTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h new file mode 100644 index 000000000..32ae15c9e --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h @@ -0,0 +1,85 @@ +#ifndef _SRTMINORSERVOTRACKINGTHREAD_H_ +#define _SRTMINORSERVOTRACKINGTHREAD_H_ + +/** + * SRTMinorServoTrackingThread.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include "SuppressWarnings.h" +#include <acsThread.h> +#include <ComponentErrors.h> +#include "SRTMinorServoBossCore.h" + + +class SRTMinorServoBossCore; + + +/** + * This class implements a tracking thread. This thread is in charge of positioning the minor servos in time. + */ +class SRTMinorServoTrackingThread : public ACS::Thread +{ +public: + /** + * Constructor. + * @param name thread name + * @param response_time thread's heartbeat response time in 100ns unit. Default value is 1s. + * @param sleep_time thread's sleep time in 100ns unit. Default value is 100ms. + */ + SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time=ThreadBase::defaultResponseTime, const ACS::TimeInterval& sleep_time=ThreadBase::defaultSleepTime); + + /** + * Destructor. + */ + ~SRTMinorServoTrackingThread(); + + /** + * This method is executed once when the thread starts. + */ + virtual void onStart(); + + /** + * This method is executed once when the thread stops. + */ + virtual void onStop(); + + /** + * This method overrides the thread implementation class. + * The thread can be exited by calling ACS::ThreadBase::stop or ACS::ThreadBase::exit command. + */ + virtual void runLoop(); + + /** + * The name of this class of threads. Since a single instance of this thread class can only run it is ok to reuse the same name. + */ + static constexpr const char* c_thread_name = "SRTMinorServoTrackingThread"; + +private: + /** + * The reference to the SRTMinorServoBossCore object. + */ + SRTMinorServoBossCore& m_core; + + /** + * The current trajectory ID. + */ + unsigned int m_trajectory_id; + + /** + * The current trajectory point ID. + */ + unsigned int m_point_id; + + /** + * The current trajectory point time. + */ + ACS::Time m_point_time; + + /** + * Boolean which indicates if the tracking thread exited with an error or not. + */ + bool m_error; +}; + +#endif /*_SRTMINORSERVOTRACKINGTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h new file mode 100644 index 000000000..0dc0dd252 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/include/SuppressWarnings.h @@ -0,0 +1,13 @@ +#ifndef __SUPPRESSWARNINGS_H__ +#define __SUPPRESSWARNINGS_H__ + +/** + * SuppressWarnings.h + * Giuseppe Carboni (giuseppe.carboni@inaf.it) + */ + +#include <Cplusplus11Helper.h> +C11_IGNORE_WARNING_PUSH +C11_IGNORE_WARNING("-Wsequence-point") +C11_IGNORE_WARNING("-Wdeprecated-declarations") +#endif diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile index 6c47bef42..c11de1645 100644 --- a/SRT/Servers/SRTMinorServo/src/Makefile +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -1,35 +1,46 @@ -#***************************************** -#----------------------------------------- -# Marco Buttu <mbuttu@oa-cagliari.inaf.it> -#----------------------------------------- -#***************************************** +#******************************************** +#-------------------------------------------- +# Giuseppe Carboni <giuseppe.carboni@inaf.it> +#-------------------------------------------- +#******************************************** +# +# C programs (public and local) +# ----------------------------- +EXECUTABLES = +EXECUTABLES_L = -PY_PACKAGES = -PY_SCRIPTS = +PY_SCRIPTS = #_cover # On-Line Database Files # ---------------------- -CDB_SCHEMAS = MinorServo +CDB_SCHEMAS = SRTMinorServoBoss SRTMinorServo SRTMinorServoSocketConfiguration SRTMinorServoProperties SRTMinorServoLookupTable # ---------------------------- # Libraries (public and local) # ---------------------------- -LIBRARIES = WPServoImpl MinorServoBossImpl - -WPServoImpl_OBJECTS = WPServoImpl WPServoSocket WPServoTalker RequestDispatcher \ - WPStatusUpdater SocketListener utils libCom WPUtils -WPServoImpl_LIBS = MinorServoStubs IRALibrary ComponentErrors \ - SRTMinorServoLibrary MinorServoErrors - -MinorServoBossImpl_OBJECTS = MinorServoBossImpl utils SetupThread ParkThread \ - TrackingThread ScanThread MSBossPublisher libCom \ - MSBossConfiguration -MinorServoBossImpl_LIBS = MinorServoStubs MinorServoBossStubs SRTMinorServoLibrary \ - ManagmentDefinitionsStubs ManagementErrors \ - IRALibrary ComponentErrors MinorServoErrors acsnc \ - ParserErrors DiscosVersion AntennaDefinitionsStubs MountStubs \ - AntennaBossStubs AntennaErrors ActiveSurfaceBossStubs \ - SRTActiveSurfaceBossStubs MinorServoDefinitionsStubs +LIBRARIES = SRTGenericMinorServoImpl SRTProgramTrackMinorServoImpl SRTMinorServoBossImpl + +USER_CFLAGS = + +SRTMinorServoBossImpl_OBJECTS = SRTMinorServoBossCore SRTMinorServoSetupThread SRTMinorServoParkThread SRTMinorServoTrackingThread SRTMinorServoScanThread SRTMinorServoBossImpl SRTMinorServoStatusThread +SRTMinorServoBossImpl_LIBS = IRALibrary SRTMinorServoBossStubs SRTMinorServoStubs ComponentErrors MinorServoErrors ManagementErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary AntennaBossStubs SRTMinorServoSocketLibrary ParserErrors DiscosVersion acsnc +SRTMinorServoBossImpl_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoBossCore_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoStatusThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoSetupThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoParkThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoTrackingThread_CFLAGS = -std=c++17 -fconcepts +SRTMinorServoScanThread_CFLAGS = -std=c++17 -fconcepts + +SRTBaseMinorServoImpl_CFLAGS = -std=c++17 -fconcepts +SRTGenericMinorServoImpl_OBJECTS = SRTGenericMinorServoImpl SRTBaseMinorServoImpl +SRTGenericMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary DiscosVersion +SRTGenericMinorServoImpl_CFLAGS = -std=c++17 -fconcepts +SRTProgramTrackMinorServoImpl_OBJECTS = SRTProgramTrackMinorServoImpl SRTBaseMinorServoImpl +SRTProgramTrackMinorServoImpl_LIBS = IRALibrary SRTMinorServoStubs MinorServoErrors MinorServoDefinitionsStubs SRTMinorServoCommandLibrary SRTMinorServoSocketLibrary DiscosVersion +SRTProgramTrackMinorServoImpl_CFLAGS = -std=c++17 -fconcepts + + # ---------------------------------------------------------------------- # List of all possible C-sources (used to create automatic dependencies) # ---------------------------------------------------------------------- @@ -54,19 +65,12 @@ all: do_all @echo " . . . 'all' done" clean : clean_all - $(RM) *~ ../include/*~ ../idl/*~ ../*~ ../../*~ core - $(RM) ../doc/html - $(RM) tmp.txt acsexmplbeans.jar ../doc/abeans.log - $(RM) ../lib/python/site-packages/* - $(RM) $(INTROOT)/lib/python/site-packages/SRTMinorServoTest - $(RM) $(INTROOT)/bin/mscu-runserver @echo " . . . clean done" clean_dist : clean clean_dist_all @echo " . . . clean_dist done" man : do_man - # cp ../doc/html/group__ACSEXMPLDOC.html ../doc/html/main.html @echo " . . . man page(s) done" install : install_all diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp new file mode 100644 index 000000000..df2e50b72 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -0,0 +1,811 @@ +#include "SRTMinorServoImpl.h" + +using namespace MinorServo; + +SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, maci::ContainerServices* container_services): + CharacteristicComponentImpl(component_name, container_services), + m_component_name(std::string(component_name.c_str())), + m_servo_name(std::string(strchr(component_name.c_str(), '/') + 1)), + m_virtual_axes(getCDBValue<size_t>(container_services, "virtual_axes")), + m_physical_axes(getCDBValue<size_t>(container_services, "physical_axes")), + m_virtual_axes_names(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_positions")), + m_virtual_axes_units(SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_axes_units")), + m_status( + m_servo_name, + SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_axes_enabled"), + SRTBaseMinorServoImpl::getPropertiesTable(*this, "physical_positions"), + m_virtual_axes_names, + SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets") + ), + m_user_offsets(m_virtual_axes, 0.0), + m_system_offsets(m_virtual_axes, 0.0), + m_positions_queue(5 * 60 * int(1 / getCDBValue<double>(container_services, "status_thread_period", "/MINORSERVO/Boss")), m_virtual_axes), + m_min(SRTBaseMinorServoImpl::getMotionConstant(*this, "min_range")), + m_max(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_range")), + m_m_s(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_speed")), + m_a(SRTBaseMinorServoImpl::getMotionConstant(*this, "acceleration")), + m_r_t(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_times")), + m_r_d(SRTBaseMinorServoImpl::getMotionConstant(*this, "ramp_distances")), + m_c_s(m_virtual_axes, 0.0), + m_in_use(Management::MNG_FALSE), + m_current_setup(""), + m_enabled_ptr(this), + m_drive_cabinet_status_ptr(this), + m_block_ptr(this), + m_operative_mode_ptr(this), + m_physical_axes_enabled_ptr(this), + m_physical_positions_ptr(this), + m_virtual_axes_ptr(this), + m_plain_virtual_positions_ptr(this), + m_virtual_positions_ptr(this), + m_virtual_offsets_ptr(this), + m_virtual_user_offsets_ptr(this), + m_virtual_system_offsets_ptr(this), + m_in_use_ptr(this), + m_current_setup_ptr(this), + m_current_lookup_table(), + m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(container_services)), + m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)) +{ + AUTO_TRACE(m_servo_name + "::SRTBaseMinorServoImpl()"); +} + +SRTBaseMinorServoImpl::~SRTBaseMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTBaseMinorServoImpl()"); +} + +void SRTBaseMinorServoImpl::initialize() +{ + AUTO_TRACE(m_servo_name + "::initialize()"); + + try + { + m_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoStatus>("enabled", m_status, &SRTMinorServoStatus::isEnabled), true); + m_drive_cabinet_status_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoCabinetStatus), POA_MinorServo::ROSRTMinorServoCabinetStatus>((m_component_name + ":drive_cabinet_status").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoCabinetStatus, SRTMinorServoStatus>("drive_cabinet_status", m_status, &SRTMinorServoStatus::getDriveCabinetStatus), true); + m_block_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":block").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoStatus>("block", m_status, &SRTMinorServoStatus::isBlocked), true); + m_operative_mode_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoOperativeMode), POA_MinorServo::ROSRTMinorServoOperativeMode>((m_component_name + ":operative_mode").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoOperativeMode, SRTMinorServoStatus>("operative_mode", m_status, &SRTMinorServoStatus::getOperativeMode), true); + m_physical_axes_enabled_ptr = new baci::RObooleanSeq((m_component_name + ":physical_axes_enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::booleanSeq, SRTMinorServoStatus>("physical_axes_enabled", m_status, &SRTMinorServoStatus::getPhysicalAxesEnabled), true); + m_physical_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":physical_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("physical_positions", m_status, &SRTMinorServoStatus::getPhysicalPositions), true); + m_virtual_axes_ptr = new baci::ROlong((m_component_name + ":virtual_axes").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, const size_t>(m_virtual_axes), true); + m_plain_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":plain_virtual_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("plain_virtual_positions", m_status, &SRTMinorServoStatus::getPlainVirtualPositions), true); + m_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_positions").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("virtual_positions", m_status, &SRTMinorServoStatus::getVirtualPositions), true); + m_virtual_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_offsets").c_str(), getComponent(), + new MSAnswerMapDevIO<ACS::doubleSeq, SRTMinorServoStatus>("virtual_offsets", m_status, &SRTMinorServoStatus::getVirtualOffsets), true); + m_virtual_user_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_user_offsets").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_user_offsets), true); + m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_system_offsets").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_system_offsets), true); + m_in_use_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":in_use").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_in_use), true); + m_current_setup_ptr = new baci::ROstring((m_component_name + ":current_setup").c_str(), getComponent(), + new MSGenericDevIO<ACE_CString, std::string>(m_current_setup), true); + } + catch(std::bad_alloc& ba) + { + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, (m_servo_name + "::initialize()").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + // Try to read the current status of the servo + try + { + status(); + } + catch(...) + { + // This block is necessary since the socket might not be connected yet. If the Leonardo system is not reachable the status(); call will fail, but we want to instantiate the component anyway + // A non connected socket will try to connect every time a new command is sent, therefore the status thread will establish the connection as soon as possible. + } +} + +void SRTBaseMinorServoImpl::execute() +{ + AUTO_TRACE(m_servo_name + "::execute()"); +} + +void SRTBaseMinorServoImpl::cleanUp() +{ + AUTO_TRACE(m_servo_name + "::cleanUp()"); +} + +void SRTBaseMinorServoImpl::aboutToAbort() +{ + AUTO_TRACE(m_servo_name + "::aboutToAbort()"); +} + +/////////////////// PUBLIC methods +bool SRTBaseMinorServoImpl::status() +{ + AUTO_TRACE(m_servo_name + "::status()"); + + // We don't check if the socket is connected here since a status command will try to reconnect it automatically + try + { + m_socket.sendCommand(SRTMinorServoCommandLibrary::status(m_servo_name), m_status); + + ACS::doubleSeq current_point = m_status.getVirtualPositions(); + + // Calculate the current speed of the axes + try + { + std::pair<ACS::Time, const std::vector<double>> previous_point = m_positions_queue.get(m_status.getTimestamp()); + for(size_t i = 0; i < m_virtual_axes; i++) + { + m_c_s[i] = (current_point[i] - previous_point.second[i]) * ((double(m_status.getTimestamp() - previous_point.first)) / 10000000); + } + } + catch(...) + { + // Empty queue, first reading, skip the speed calculation + } + + m_positions_queue.put(m_status.getTimestamp(), current_point); + } + catch(...) + { + return false; + } + + return true; +} + +void SRTBaseMinorServoImpl::stow(CORBA::Long stow_position) +{ + AUTO_TRACE(m_servo_name + "::stow()"); + + checkLineStatus(); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow(m_servo_name, (unsigned int)stow_position)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stow()").c_str()); + ex.setReason("Received NAK in response to a STOW command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTBaseMinorServoImpl::stop() +{ + AUTO_TRACE(m_servo_name + "::stop()"); + + checkLineStatus(); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stop(m_servo_name)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stop()").c_str()); + ex.setReason("Received NAK in response to a STOP command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) +{ + AUTO_TRACE(m_servo_name + "::preset()"); + + checkLineStatus(); + + if(virtual_coordinates.length() != m_virtual_axes) + { + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.addData("Reason", "Wrong number of values for this servo system."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + ACS::doubleSeq offsets = m_status.getVirtualOffsets(); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + double coordinate = coordinates[i] + offsets[i]; + if(coordinate < m_min[i] || coordinate > m_max[i]) + { + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.addData("Reason", "Resulting position out of range, check the offsets."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::preset(m_servo_name, coordinates)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); + ex.setReason("Received NAK in response to a PRESET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +bool SRTBaseMinorServoImpl::setup(const char* configuration_name) +{ + AUTO_TRACE(m_servo_name + "::setup()"); + m_in_use.store(Management::MNG_FALSE); + m_current_lookup_table.clear(); + + m_current_setup = ""; + std::string setup_name(configuration_name); + std::transform(setup_name.begin(), setup_name.end(), setup_name.begin(), ::toupper); + + if(setup_name.empty()) + { + return false; + } + + IRA::CDBTable table(getContainerServices(), setup_name.c_str(), std::string("DataBlock/MinorServo/" + m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "axis", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field axis", 0); + } + if(!table.addField(error, "coefficients", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field coefficients", 0); + } + if(!error.isNoError()) + { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, ex, error); + ex.setCode(error.getErrorCode()); + ex.setDescription((const char *)error.getDescription()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, ex, error); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + std::string axis = std::string(table["axis"]->asString()); + + std::vector<double> coefficients; + + std::string coefficient_str; + std::stringstream stream(std::string(table["coefficients"]->asString())); + + while(std::getline(stream, coefficient_str, ',')) + { + coefficients.push_back(std::stod(std::regex_replace(coefficient_str, std::regex("\\s+"), ""))); + } + + m_current_lookup_table[axis] = coefficients; + } + table.closeTable(); + + if(m_current_lookup_table.size() > 0) + { + m_current_setup = setup_name; + clearUserOffsets(); + clearSystemOffsets(); + m_in_use.store(Management::MNG_TRUE); + } + + return true; +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) +{ + AUTO_TRACE(m_servo_name + "::calcCoordinates()"); + + if(m_in_use.load() == Management::MNG_TRUE) + { + ACS::doubleSeq_var coordinates = new ACS::doubleSeq; + coordinates->length(m_virtual_axes); + + for(size_t axis = 0; axis < m_virtual_axes; axis++) + { + std::vector<double> coefficients = m_current_lookup_table.at(m_virtual_axes_names[axis]); + + double coordinate = 0; + + for(size_t index = 0; index < coefficients.size(); index++) + { + coordinate += coefficients[index] * pow(elevation, index); + } + + coordinates[axis] = coordinate; + } + + return coordinates._retn(); + } + else + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::calcCoordinates()").c_str()); + ex.setReason("Unable to calculate the coordinates since the servo system has not been configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::getUserOffsets() +{ + AUTO_TRACE(m_servo_name + "::getUserOffsets()"); + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(m_user_offsets.size()); + std::copy(m_user_offsets.begin(), m_user_offsets.end(), offsets->begin()); + return offsets._retn(); +} + +void SRTBaseMinorServoImpl::setUserOffset(const char* axis_name, CORBA::Double offset) +{ + AUTO_TRACE(m_servo_name + "::setUserOffset()"); + + checkLineStatus(); + + std::string axis(axis_name); + std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); + + if(axis == "RZ" && m_virtual_axes == 1) + { + axis = "ROTATION"; + } + + unsigned int index = std::distance(m_virtual_axes_names.begin(), std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis)); + + if(index == m_virtual_axes) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", ("Unknown axis '" + axis + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + // Calculate the new offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + offsets[index] = m_system_offsets[index] + offset; + + if(offsets[index] < m_min[index] || offsets[index] > m_max[index]) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", "Sum of user and system offsets out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + m_user_offsets[index] = offset; +} + +void SRTBaseMinorServoImpl::clearUserOffsets() +{ + AUTO_TRACE(m_servo_name + "::clearUserOffsets()"); + + checkLineStatus(); + + m_user_offsets = std::vector<double>(m_virtual_axes, 0.0); + + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearUserOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::getSystemOffsets() +{ + AUTO_TRACE(m_servo_name + "::getSystemOffsets()"); + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + offsets->length(m_system_offsets.size()); + std::copy(m_system_offsets.begin(), m_system_offsets.end(), offsets->begin()); + return offsets._retn(); +} + +void SRTBaseMinorServoImpl::setSystemOffset(const char* axis_name, CORBA::Double offset) +{ + AUTO_TRACE(m_servo_name + "::setSystemOffset()"); + + checkLineStatus(); + + std::string axis(axis_name); + std::transform(axis.begin(), axis.end(), axis.begin(), ::toupper); + + if(axis == "RZ" && m_virtual_axes == 1) + { + axis = "ROTATION"; + } + + unsigned int index = std::distance(m_virtual_axes_names.begin(), std::find(m_virtual_axes_names.begin(), m_virtual_axes_names.end(), axis)); + + if(index == m_virtual_axes) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setSystemOffset()").c_str()); + ex.addData("Reason", ("Unknown axis '" + axis + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + // Calculate the new offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + offsets[index] = m_user_offsets[index] + offset; + + if(offsets[index] < m_min[index] || offsets[index] > m_max[index]) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); + ex.addData("Reason", "Sum of user and system offsets out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setSystemOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + m_system_offsets[index] = offset; +} + +void SRTBaseMinorServoImpl::clearSystemOffsets() +{ + AUTO_TRACE(m_servo_name + "::clearSystemOffsets()"); + + checkLineStatus(); + + m_system_offsets = std::vector<double>(m_virtual_axes, 0.0); + + // Update the offsets + std::vector<double> offsets(m_virtual_axes, 0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), offsets.begin(), std::plus<double>()); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearSystemOffset()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTBaseMinorServoImpl::reloadOffsets() +{ + AUTO_TRACE(m_servo_name + "::reloadOffsets()"); + + // Sum the user and system DISCOS offsets to check whether they correspond to the Leonardo offsets + std::vector<double> DISCOS_offsets(m_virtual_axes, 0.0); + std::transform(m_user_offsets.begin(), m_user_offsets.end(), m_system_offsets.begin(), DISCOS_offsets.begin(), std::plus<double>()); + + // Read the Leonardo offsets + ACS::doubleSeq sequence = m_status.getVirtualOffsets(); + std::vector<double> LEONARDO_offsets(sequence.get_buffer(), sequence.get_buffer() + sequence.length()); + + // Check if the offsets correspond or not + if(!std::equal(DISCOS_offsets.begin(), DISCOS_offsets.end(), LEONARDO_offsets.begin())) + { + // Offsets do not correspond, should reset them by sending a offset command + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, DISCOS_offsets)).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::reloadOffsets()").c_str()); + ex.setReason("Received NAK in response to an OFFSET command."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, m_servo_name + "::reloadOffsets()", (LM_NOTICE, "Offsets discrepancy, reloading them")); + } +} + +void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) +{ + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesInfo()"); + + ACS::stringSeq_var axes_names = new ACS::stringSeq; + ACS::stringSeq_var axes_units = new ACS::stringSeq; + axes_names->length(m_virtual_axes); + axes_units->length(m_virtual_axes); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + axes_names[i] = (m_servo_name + "_" + m_virtual_axes_names[i] == "ROTATION" ? "RZ" : m_virtual_axes_names[i]).c_str(); + axes_units[i] = m_virtual_axes_units[i].c_str(); + } + + axes_names_out = axes_names._retn(); + axes_units_out = axes_units._retn(); +} + +ACS::doubleSeq* SRTBaseMinorServoImpl::getAxesPositions(ACS::Time acs_time) +{ + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesPositions()"); + + // Get the latest position + if(acs_time == 0) + { + acs_time = getTimeStamp(); + } + + try + { + std::vector<double> p = m_positions_queue.get(acs_time).second; + + ACS::doubleSeq_var positions = new ACS::doubleSeq; + positions->length(m_virtual_axes); + std::copy(p.begin(), p.end(), positions->begin()); + return positions._retn(); + } + catch(std::logic_error& le) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::getAxesPositions()").c_str()); + ex.setReason("Positions history is empty!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +ACS::TimeInterval SRTBaseMinorServoImpl::getTravelTime(const ACS::doubleSeq& _s_p, const ACS::doubleSeq& d_p) +{ + AUTO_TRACE(m_servo_name + "::getTravelTime()"); + + std::vector<double> c_s = m_c_s; // Current speed + + ACS::doubleSeq s_p(_s_p); + + // No starting coordinates, it means we have to start from the current position taking into account the current speed + if(_s_p.length() == 0) + { + s_p = *getAxesPositions(0); + } + else if(_s_p.length() != m_virtual_axes) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "getTravelTime()").c_str()); + ex.setReason("Wrong number of axes for starting_position."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + if(d_p.length() != m_virtual_axes) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "getTravelTime()").c_str()); + ex.setReason("Wrong number of axes for destination_position."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + // d = delta/distance + std::vector<double> d(m_virtual_axes); + for(size_t i = 0; i < m_virtual_axes; i++) + { + d[i] = d_p[i] - s_p[i]; + + // If we sent a starting position, we are just checking the maximum time to get from the start to the desired position + // We take into account the worst case scenario for the speed, we assume we are moving away from the desired position at maximum speed for each axis + if(_s_p.length() != 0) + { + c_s[i] = m_m_s[i] * (d[i] < 0 ? 1 : (d[i] > 0 ? -1 : 0)); + } + } + + double total_time = 0; + + // Calculate the distance and time taken to get to the maximum speed towards the desired position + for(size_t i = 0; i < m_virtual_axes; i++) + { + double inversion_time = 0; + double inversion_distance = 0; + + // We are moving away from our desired position, this is the only case in which we need a deceleration ramp before even starting to move towards our destination + if(std::signbit(c_s[i]) != std::signbit(d[i]) && c_s[i] != 0) + { + inversion_time = std::abs(c_s[i]) / m_a[i]; + inversion_distance = std::abs(c_s[i]) * inversion_time + 0.5 * m_a[i] * std::pow(inversion_time, 2); + // In this case, we can calculate the next acceleration ramp using a starting speed of 0 + c_s = std::vector<double>(c_s.size(), 0.0); + } + + double accel_ramp_time = (m_m_s[i] - std::abs(c_s[i])) / m_a[i]; + double accel_ramp_distance = std::abs(c_s[i]) * accel_ramp_time + 0.5 * m_a[i] * std::pow(accel_ramp_time, 2); + + // Total time = eventual inversion time + calculated acceleration ramp time + full deceleration time + linear movement time + // Linear movement time = linear movement distance / maximum speed + // Linear movement distance = distance + eventual inversion distance - acceleration ramp distance - full deceleration ramp distance + double t = inversion_time + accel_ramp_time + m_r_t[i] + (std::abs(d[i]) + inversion_distance - accel_ramp_distance - m_r_d[i]) / m_m_s[i]; + + total_time = std::max(total_time, t); + + // This does not take into account any dead time but: + // we're going to use this only for PROGRAMTRACK purposes and + // in PROGRAMTRACK mode the SRP servos move faster than the nominal max_speed + // i.e., IIRC, the max physical speed should be around 12mm/s instead of 4mm/s + // Therefore we might not need to add any guard time + } + + return ACS::TimeInterval(total_time * 10000000); +} + +void SRTBaseMinorServoImpl::getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) +{ + AUTO_TRACE("SRTBaseMinorServoImpl::getAxesRanges()"); + + ACS::doubleSeq_var min_ranges = new ACS::doubleSeq; + ACS::doubleSeq_var max_ranges = new ACS::doubleSeq; + min_ranges->length(m_virtual_axes); + max_ranges->length(m_virtual_axes); + std::copy(m_min.begin(), m_min.end(), min_ranges->begin()); + std::copy(m_max.begin(), m_max.end(), max_ranges->begin()); + min_ranges_out = min_ranges._retn(); + max_ranges_out = max_ranges._retn(); +} + +/////////////////// PROTECTED methods +void SRTBaseMinorServoImpl::checkLineStatus() +{ + if(!m_socket.isConnected()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "checkLineStatus()").c_str()); + ex.setReason("Socket not connected."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + if(m_status.isBlocked() == Management::MNG_TRUE || m_status.getDriveCabinetStatus() == DRIVE_CABINET_ERROR) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); + ex.setReason("Servo system blocked or drive cabinet error."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +std::vector<double> SRTBaseMinorServoImpl::getMotionConstant(SRTBaseMinorServoImpl& object, const std::string& constant) +{ + AUTO_STATIC_TRACE(object.m_servo_name + "::getMotionConstant()"); + + std::vector<double> values; + + if(constant == "max_speed" || constant == "acceleration") + { + values = getCDBValue<std::vector<double>>(object.getContainerServices(), constant.c_str()); + if(values.size() != object.m_virtual_axes) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setFieldName(constant.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + else if(std::any_of(values.begin(), values.end(), [](double value) + { + return value == 0.0; + })) + { + _EXCPT(ComponentErrors::NotAllowedExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setReason(("A" + constant == "acceleration" ? "n " : " " + constant + " equals to 0 is not allowed.").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + } + else if(constant == "min_range" || constant == "max_range" || constant == "tracking_delta") + { + values = getCDBValue<std::vector<double>>(object.getContainerServices(), constant.c_str()); + if(values.size() != object.m_virtual_axes) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::getMotionConstant()").c_str()); + ex.setFieldName(constant.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + } + else if(constant == "ramp_times") // Acceleration ramp times, 0 to max_speed and vice versa + { + values = std::vector<double>(object.m_virtual_axes); + std::transform(object.m_m_s.begin(), object.m_m_s.end(), object.m_a.begin(), values.begin(), std::divides<double>()); + } + else if(constant == "ramp_distances") // Acceleration ramp distances, 0 to max_speed and vice versa + { + values = std::vector<double>(object.m_virtual_axes); + std::transform(object.m_r_t.begin(), object.m_r_t.end(), object.m_a.begin(), values.begin(), [](double acceleration_ramp_time, double acceleration) + { + return 0.5 * acceleration * std::pow(acceleration_ramp_time, 2); + }); + } + + return values; +} + +/////////////////// PRIVATE methods +std::vector<std::string> SRTBaseMinorServoImpl::getPropertiesTable(SRTBaseMinorServoImpl& object, const std::string& properties_name) +{ + AUTO_STATIC_TRACE(object.m_servo_name + "::getPropertiesTable()"); + + std::vector<std::string> properties; + + IRA::CDBTable table(object.getContainerServices(), properties_name.c_str(), std::string("DataBlock/MinorServo/" + object.m_servo_name).c_str()); + IRA::CError error; + error.Reset(); + + if(!table.addField(error, "property_name", IRA::CDataField::STRING)) + { + error.setExtra("Error adding field property_name", 0); + } + if(!error.isNoError()) + { + _EXCPT_FROM_ERROR(ComponentErrors::IRALibraryResourceExImpl, ex, error); + ex.setCode(error.getErrorCode()); + ex.setDescription((const char *)error.getDescription()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + if(!table.openTable(error)) + { + _EXCPT_FROM_ERROR(ComponentErrors::CDBAccessExImpl, ex, error); + ex.setFieldName(properties_name.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + table.First(); + for(unsigned int i = 0; i < table.recordCount(); i++, table.Next()) + { + properties.push_back(std::string(table["property_name"]->asString())); + } + table.closeTable(); + + size_t expected_size = 0; + + if(properties_name.find("virtual_") == 0) + { + expected_size = object.m_virtual_axes; + } + else if(properties_name.find("physical_") == 0) + { + expected_size = object.m_physical_axes; + } + + if(expected_size == 0 || properties.size() != expected_size) + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, (object.m_servo_name + "::initialize()").c_str()); + ex.setFieldName(properties_name.c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + return properties; +} + + +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_enabled_ptr, enabled); +GET_PROPERTY_REFERENCE(ROSRTMinorServoCabinetStatus, SRTBaseMinorServoImpl, m_drive_cabinet_status_ptr, drive_cabinet_status); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_block_ptr, block); +GET_PROPERTY_REFERENCE(ROSRTMinorServoOperativeMode, SRTBaseMinorServoImpl, m_operative_mode_ptr, operative_mode); +GET_PROPERTY_REFERENCE(ACS::RObooleanSeq, SRTBaseMinorServoImpl, m_physical_axes_enabled_ptr, physical_axes_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_physical_positions_ptr, physical_positions); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTBaseMinorServoImpl, m_virtual_axes_ptr, virtual_axes); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_plain_virtual_positions_ptr, plain_virtual_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_positions_ptr, virtual_positions); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_offsets_ptr, virtual_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_user_offsets_ptr, virtual_user_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_system_offsets_ptr, virtual_system_offsets); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_in_use_ptr, in_use); +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTBaseMinorServoImpl, m_current_setup_ptr, current_setup); diff --git a/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp new file mode 100644 index 000000000..1b3dad9ec --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTGenericMinorServoImpl.cpp @@ -0,0 +1,13 @@ +#include "SRTMinorServoImpl.h" + +SRTGenericMinorServoImpl::SRTGenericMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : SRTBaseMinorServoImpl(componentName, containerServices) +{ + AUTO_TRACE(m_servo_name + "::SRTGenericMinorServoImpl()"); +} + +SRTGenericMinorServoImpl::~SRTGenericMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTGenericMinorServoImpl()"); +} + +MACI_DLL_SUPPORT_FUNCTIONS(SRTGenericMinorServoImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp new file mode 100644 index 000000000..7c4052822 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -0,0 +1,1316 @@ +#include "SRTMinorServoBossCore.h" + +using namespace MinorServo; + +SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : + m_component(component), + m_status_thread(nullptr), + m_setup_thread(nullptr), + m_park_thread(nullptr), + m_tracking_thread(nullptr), + m_scan_thread(nullptr), + m_antennaBoss("IDL:alma/Antenna/AntennaBoss:1.0", m_component.getContainerServices()), + m_status(), + m_motion_status(MOTION_STATUS_UNCONFIGURED), + m_commanded_setup("Unknown"), + m_commanded_configuration(CONFIGURATION_UNKNOWN), + m_subsystem_status(Management::MNG_WARNING), + m_actual_setup("Unknown"), + m_ready(Management::MNG_FALSE), + m_starting(Management::MNG_FALSE), + m_as_configuration(getCDBConfiguration("active_surface_configuration")), + m_elevation_tracking(Management::MNG_FALSE), + m_elevation_tracking_enabled(getCDBConfiguration("elevation_tracking_enabled")), + m_scan_active(Management::MNG_FALSE), + m_scanning(Management::MNG_FALSE), + m_tracking(Management::MNG_FALSE), + m_reload_servo_offsets(true), + m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(m_component.getContainerServices())), + m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)), + m_socket_connected(m_socket.isConnected() ? Management::MNG_TRUE : Management::MNG_FALSE), + m_servos{ + //{ "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") }, + { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") } + //{ "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } + }, + m_tracking_servos{ + //{ "PFP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/PFP") }, + { "SRP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/SRP") } + } +{ + AUTO_TRACE("SRTMinorServoBossCore::SRTMinorServoBossCore()"); + + startThread(m_status_thread, (ACS::TimeInterval)(getCDBValue<double>(m_component.getContainerServices(), "status_thread_period") * 10000000)); +} + +SRTMinorServoBossCore::~SRTMinorServoBossCore() +{ + AUTO_TRACE("SRTMinorServoBossCore::~SRTMinorServoBossCore()"); + + destroyThread(m_setup_thread); + destroyThread(m_park_thread); + destroyThread(m_tracking_thread); + destroyThread(m_scan_thread); + destroyThread(m_status_thread); +} + +bool SRTMinorServoBossCore::status() +{ + AUTO_TRACE("SRTMinorServoBossCore::status()"); + + try + { + // Attempt communication anyway + m_socket.sendCommand(SRTMinorServoCommandLibrary::status(), m_status); + + if(m_socket_connected.load() == Management::MNG_FALSE) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_NOTICE, "Socket connected.")); + m_socket_connected.store(Management::MNG_TRUE); + m_subsystem_status.store(Management::MNG_WARNING); + } + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + if(m_socket_connected.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, (std::string("Socket disconnected: ") + getReasonFromEx(ex)).c_str())); + m_socket_connected.store(Management::MNG_FALSE); + + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + stopThread(m_scan_thread); + setFailure(); + + m_reload_servo_offsets = true; + } + + return false; + } + + try + { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoBossCore::status()", getReasonFromEx(ex)); + setFailure(); + return false; + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + /*if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) + { + // We only get here if the system is configured, therefore we check the correct position of the gregorian cover + SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_status.getFocalConfiguration() == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + if(m_status.getGregorianCoverPosition() != commanded_gregorian_cover_position) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Gregorian cover in wrong position.")); + setFailure(); + return false; + } + }*/ + + for(const auto& [name, servo] : m_servos) + { + if(!servo->status()) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, ("Error checking " + name + " status.").c_str())); + setFailure(); + return false; + } + + if(m_reload_servo_offsets) + { + servo->reloadOffsets(); + } + } + + m_reload_servo_offsets = false; + + if(motion_status == MOTION_STATUS_TRACKING) + { + if(std::all_of(m_current_tracking_servos.begin(), m_current_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->isTracking(); + })) + { + m_tracking.store(Management::MNG_TRUE); + } + else + { + m_tracking.store(Management::MNG_FALSE); + } + } + else if(motion_status == MOTION_STATUS_CONFIGURED) + { + m_tracking.store(Management::MNG_TRUE); + } + else + { + m_tracking.store(Management::MNG_FALSE); + } + + return true; +} + +void SRTMinorServoBossCore::setup(std::string commanded_setup) +{ + AUTO_TRACE("SRTMinorServoBossCore::setup()"); + + try + { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(getReasonFromEx(mse)); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } + + if(m_scan_active.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, "THE SYSTEM IS PERFORMING A SCAN, CANNOT SETUP NOW")); + _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } + + std::transform(commanded_setup.begin(), commanded_setup.end(), commanded_setup.begin(), ::toupper); + + std::pair<SRTMinorServoFocalConfiguration, bool> cmd_configuration; + SRTMinorServoFocalConfiguration commanded_configuration; + + try + { + cmd_configuration = DiscosConfigurationNameTable.at(commanded_setup); + commanded_configuration = cmd_configuration.first; + if(m_as_configuration.load() == Management::MNG_TRUE && cmd_configuration.second) + { + commanded_setup += "_ASACTIVE"; + } + } + catch(std::out_of_range& oor) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("UNKNOWN CONFIGURATION '" + commanded_setup + "'").c_str())); + _EXCPT(ManagementErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Unknown configuration '" + commanded_setup + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } + + // Exit if commanded setup is already in place or is about to be + if(commanded_configuration == m_commanded_configuration.load() && commanded_setup == m_commanded_setup) + { + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status == MOTION_STATUS_STARTING) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("ALREADY SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + return; + } + else if(motion_status == MOTION_STATUS_CONFIGURED || motion_status == MOTION_STATUS_TRACKING) + { + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("CONFIGURATION '" + commanded_setup + "' ALREADY IN PLACE").c_str())); + return; + } + } + + ACS_LOG(LM_FULL_INFO, "servoSetup", (LM_NOTICE, ("SETTING UP '" + commanded_setup + "' CONFIGURATION").c_str())); + + m_commanded_configuration.store(commanded_configuration); + m_commanded_setup = commanded_setup; + + // Stop the setup, park and tracking threads if running + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + + m_subsystem_status.store(Management::MNG_WARNING); + m_actual_setup = ""; + m_ready.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_TRUE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_STARTING); + m_current_servos.clear(); + m_current_tracking_servos.clear(); + + // Send the STOP command to all the servos + for(const auto& [servo_name, servo] : m_servos) + { + try + { + servo->stop(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, mse, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Error while sending the STOP command to " + servo_name + ".").c_str()); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } + } + + // Start the setup thread + try + { + startThread(m_setup_thread); + } + catch(ComponentErrors::ComponentErrorsEx& ce) + { + _ADD_BACKTRACE(ManagementErrors::ConfigurationErrorExImpl, ex, ce, "SRTMinorServoBossCore::setup()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while trying to start the setup_thread"); + ex.log(LM_DEBUG); + throw ex.getConfigurationErrorEx(); + } +} + +void SRTMinorServoBossCore::park() +{ + AUTO_TRACE("SRTMinorServoBossCore::park()"); + + try + { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason(getReasonFromEx(mse)); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } + + if(m_scan_active.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "THE SYSTEM IS PERFORMING A SCAN, CANNOT PARK NOW")); + _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status == MOTION_STATUS_PARKING) + { + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "MINOR SERVOS ALREADY PARKING")); + return; + } + else if (motion_status == MOTION_STATUS_PARKED) + { + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "MINOR SERVOS ALREADY PARKED")); + return; + } + + ACS_LOG(LM_FULL_INFO, "servoPark", (LM_NOTICE, "PARKING")); + + m_commanded_configuration.store(CONFIGURATION_PARK); + m_commanded_setup = "Park"; + + // Stop the setup, park and tracking threads if running + stopThread(m_setup_thread); + stopThread(m_park_thread); + stopThread(m_tracking_thread); + + m_subsystem_status.store(Management::MNG_WARNING); + m_actual_setup = ""; + m_ready.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_TRUE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_PARKING); + m_current_servos.clear(); + m_current_tracking_servos.clear(); + + /*try + { + // Send the STOW command to close the gregorian cover + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", COVER_STATUS_CLOSED)).checkOutput()) + { + _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + 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) + { + try + { + servo->stop(); + } + catch(MinorServoErrors::MinorServoErrorsEx& mse) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, mse, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason(("Error while sending the STOP command to " + servo_name + ".").c_str()); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } + } + + // Start the park thread + try + { + startThread(m_park_thread); + } + catch(ComponentErrors::ComponentErrorsEx& ce) + { + _ADD_BACKTRACE(ManagementErrors::ParkingErrorExImpl, ex, ce, "SRTMinorServoBossCore::park()"); + ex.setSubsystem("MinorServo"); + ex.setReason("Error while trying to start the park_thread"); + ex.log(LM_DEBUG); + throw ex.getParkingErrorEx(); + } +} + +void SRTMinorServoBossCore::setElevationTracking(std::string configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::setElevationTracking()"); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setElevationTracking()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration != "ON" && configuration != "OFF") + { + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setElevationTracking()"); + ex.addData("Reason", ("Unknown setElevationTracking configuration '" + configuration + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "setServoElevationTracking", (LM_NOTICE, ("SETTING ELEVATION TRACKING TO " + configuration).c_str())); + + if(configuration == "ON" && m_elevation_tracking_enabled.load() != Management::MNG_TRUE) + { + m_elevation_tracking_enabled.store(Management::MNG_TRUE); + + if(m_motion_status.load() == MOTION_STATUS_CONFIGURED) + { + m_motion_status.store(MOTION_STATUS_TRACKING); + startThread(m_tracking_thread); + } + } + else if(configuration == "OFF" && m_elevation_tracking_enabled.load() != Management::MNG_FALSE) + { + stopThread(m_tracking_thread); + m_elevation_tracking_enabled.store(Management::MNG_FALSE); + + if(m_motion_status.load() == MOTION_STATUS_TRACKING) + { + m_motion_status.store(MOTION_STATUS_CONFIGURED); + } + } +} + +void SRTMinorServoBossCore::setASConfiguration(std::string configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::setASConfiguration()"); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setASConfiguration()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration != "ON" && configuration != "OFF") + { + _EXCPT(MinorServoErrors::ConfigurationErrorExImpl, ex, "SRTMinorServoBossCore::setASConfiguration()"); + ex.addData("Reason", ("Unknown setASConfiguration configuration '" + configuration + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "setServoASConfiguration", (LM_NOTICE, ("SETTING ACTIVE SURFACE CONFIGURATION TO " + configuration).c_str())); + + if(configuration == "ON" && m_as_configuration.load() != Management::MNG_TRUE) + { + m_as_configuration.store(Management::MNG_TRUE); + } + else if(configuration == "OFF" && m_as_configuration.load() != Management::MNG_FALSE) + { + m_as_configuration.store(Management::MNG_FALSE); + } + else + { + // We asked for the same configuration, nothing else to do + return; + } + + // Should reload the correct setup if the system was already configured or was about to be + if(!m_commanded_setup.empty()) + { + configuration = m_commanded_setup.substr(0, m_commanded_setup.find("_")); + try + { + setup(configuration); + } + catch(ManagementErrors::ConfigurationErrorEx& ce) + { + _ADD_BACKTRACE(MinorServoErrors::ConfigurationErrorExImpl, ex, ce, "SRTMinorServoBossCore::setASConfiguration()"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } +} + +void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) +{ + AUTO_TRACE("SRTMinorServoBossCore::setGregorianCoverPosition()"); + + checkLineStatus(); + + std::transform(position.begin(), position.end(), position.begin(), ::toupper); + + if(position != "OPEN" && position != "CLOSED") + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.addData("Reason", ("Unknown position '" + position + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_PARKING && motion_status != MOTION_STATUS_PARKED) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.setReason("You can set the gregorian cover position only when the system is parked or is parking."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_NOTICE, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTMinorServoBossCore::preset(double elevation) +{ + // Elevation is expressed in degrees + AUTO_TRACE("SRTMinorServoBossCore::preset()"); + + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::preset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + if(m_motion_status.load() != MOTION_STATUS_CONFIGURED) + { + _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, "SRTMinorServoBossCore::preset()"); + ex.addData("Reason", "Minor servos are tracking, cannot send a global preset command now."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + for(const auto& [servo_name, servo] : m_current_servos) + { + servo->preset(*servo->calcCoordinates(elevation)); + } +} + +void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) +{ + AUTO_TRACE("SRTMinorServoBossCore::clearUserOffsets()"); + + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + + if(servo_name == "ALL") + { + for(const auto& [servo_name, servo] : m_current_servos) + { + servo->clearUserOffsets(); + } + return; + } + else if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + try + { + auto servo = m_current_servos.at(servo_name); + servo->clearUserOffsets(); + } + catch(std::out_of_range& oor) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearUserOffsets()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double offset, bool log) +{ + AUTO_TRACE("SRTMinorServoBossCore::setUserOffset()"); + + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); + + std::stringstream ss(servo_axis_name); + std::string servo_name, axis_name; + std::getline(ss, servo_name, '_'); + ss >> axis_name; + + if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + try + { + auto servo = m_current_servos.at(servo_name); + if(log) + { + ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_NOTICE, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); + } + servo->setUserOffset(axis_name.c_str(), offset); + } + catch(std::out_of_range& oor) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setUserOffset()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +ACS::doubleSeq* SRTMinorServoBossCore::getUserOffsets() +{ + AUTO_TRACE("SRTMinorServoBossCore::getUserOffsets()"); + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getUserOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + + for(const auto& [servo_name, servo] : m_current_servos) + { + ACS::doubleSeq servo_offsets = *servo->getUserOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); + } + + return offsets._retn(); +} + +void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) +{ + AUTO_TRACE("SRTMinorServoBossCore::clearSystemOffsets()"); + + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(servo_name.begin(), servo_name.end(), servo_name.begin(), ::toupper); + + if(servo_name == "ALL") + { + for(const auto& [servo_name, servo] : m_current_servos) + { + servo->clearSystemOffsets(); + } + return; + } + else if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + try + { + auto servo = m_current_servos.at(servo_name); + servo->clearSystemOffsets(); + } + catch(std::out_of_range& oor) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::clearSystemOffsets()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double offset) +{ + AUTO_TRACE("SRTMinorServoBossCore::setSystemOffset()"); + + checkLineStatus(); + + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::transform(servo_axis_name.begin(), servo_axis_name.end(), servo_axis_name.begin(), ::toupper); + + std::stringstream ss(servo_axis_name); + std::string servo_name, axis_name; + std::getline(ss, servo_name, '_'); + ss >> axis_name; + + if(!m_servos.count(servo_name)) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.addData("Reason", ("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + try + { + auto servo = m_current_servos.at(servo_name); + servo->setSystemOffset(axis_name.c_str(), offset); + } + catch(std::out_of_range& oor) + { + _EXCPT(MinorServoErrors::OffsetErrorExImpl, ex, "SRTMinorServoBossCore::setSystemOffset()"); + ex.addData("Reason", ("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +ACS::doubleSeq* SRTMinorServoBossCore::getSystemOffsets() +{ + AUTO_TRACE("SRTMinorServoBossCore::getSystemOffsets()"); + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getSystemOffsets()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS::doubleSeq_var offsets = new ACS::doubleSeq; + + for(const auto& [servo_name, servo] : m_current_servos) + { + ACS::doubleSeq servo_offsets = *servo->getSystemOffsets(); + size_t start_index = offsets->length(); + offsets->length(start_index + servo_offsets.length()); + std::copy(servo_offsets.begin(), servo_offsets.end(), offsets->begin() + start_index); + } + + return offsets._retn(); +} + +void SRTMinorServoBossCore::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) +{ + AUTO_TRACE("SRTMinorServoBossCore::getAxesInfo()"); + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getAxesInfo()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::vector<std::string> axes_names_vector, axes_units_vector; + + ACS::stringSeq_var axes_names = new ACS::stringSeq; + ACS::stringSeq_var axes_units = new ACS::stringSeq; + + for(const auto& [servo_name, servo] : m_current_servos) + { + ACS::stringSeq_var servo_axes_names; + ACS::stringSeq_var servo_axes_units; + servo->getAxesInfo(servo_axes_names, servo_axes_units); + + std::transform(servo_axes_names->begin(), servo_axes_names->end(), servo_axes_names->begin(), [servo_name](const char* axis_name) + { + return CORBA::string_dup((servo_name + "_" + axis_name).c_str()); + }); + + size_t names_index = axes_names->length(); + size_t units_index = axes_units->length(); + axes_names->length(names_index + servo_axes_names->length()); + axes_units->length(units_index + servo_axes_units->length()); + std::copy(servo_axes_names->begin(), servo_axes_names->end(), axes_names->begin() + names_index); + std::copy(servo_axes_units->begin(), servo_axes_units->end(), axes_units->begin() + units_index); + } + + axes_names_out = axes_names._retn(); + axes_units_out = axes_units._retn(); +} + +ACS::doubleSeq* SRTMinorServoBossCore::getAxesPositions(ACS::Time acs_time) +{ + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::getAxesPositions()"); + ex.setReason("The system is not configured yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + ACS::doubleSeq_var positions = new ACS::doubleSeq; + + for(const auto& [servo_name, servo] : m_current_servos) + { + ACS::doubleSeq servo_positions = *servo->getAxesPositions(acs_time); + size_t start_index = positions->length(); + positions->length(start_index + servo_positions.length()); + std::copy(servo_positions.begin(), servo_positions.end(), positions->begin() + start_index); + } + + return positions._retn(); +} + +SRTMinorServoScan SRTMinorServoBossCore::checkScanFeasibility(const ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +{ + // TODO: check whether to start from the left side or the right side, LOW priority + AUTO_TRACE("SRTMinorServoBossCore::checkScanFeasibility()"); + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkScanFeasibility()"); + + SRTMinorServoScan new_scan; + new_scan.scan_range = scan_info.range; + new_scan.scan_duration = scan_info.total_time; + new_scan.starting_elevation = antenna_info.elevation * DR2D; + + std::string axis_code(scan_info.axis_code); + // Get the axis that will have to be moved during the scan + std::transform(axis_code.begin(), axis_code.end(), axis_code.begin(), ::toupper); + std::string servo_name = axis_code.substr(0, axis_code.find("_")); + std::string axis_name = axis_code.substr(axis_code.find("_") + 1); + + new_scan.servo_name = servo_name; + new_scan.axis_name = axis_name; + + ACS::stringSeq_var servo_axes_names, servo_axes_units; + + if(!m_servos.count(servo_name)) + { + ex.setReason(("Unknown servo '" + servo_name + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(!m_tracking_servos.count(servo_name)) + { + ex.setReason(("Servo '" + servo_name + "' is not a tracking servo.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(!m_current_tracking_servos.count(servo_name)) + { + ex.setReason(("Servo '" + servo_name + "' not in use with the current configuration.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTProgramTrackMinorServo_ptr servo = m_current_tracking_servos.at(servo_name); + servo->getAxesInfo(servo_axes_names, servo_axes_units); + + size_t axis_index; + for(axis_index = 0; axis_index < servo_axes_names->length(); axis_index++) + { + if(std::string(servo_axes_names[axis_index]) == axis_name) + { + break; + } + } + + if(axis_index == servo_axes_names->length()) + { + ex.setReason(("Axis '" + axis_code + "' not found.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + new_scan.axis_index = axis_index; + + ACS::doubleSeq starting_position = *servo->calcCoordinates(new_scan.starting_elevation); + ACS::doubleSeq final_position = *servo->calcCoordinates(new_scan.starting_elevation); + // Don't be fooled by the name, starting position now still holds the central scan position + new_scan.central_position = starting_position[axis_index]; + + starting_position[axis_index] -= scan_info.range / 2; + final_position[axis_index] += scan_info.range / 2; + + /** + * Note, we perform the calculations with some degree of approximation, + * we know the expected elevation at the start of the scan, + * but the true elevation value is going to be known only inside the startScan, + * depending on how much time the minor servos take to get to position + * TBH, I don't really know if this will really matter, since we will be starting + * the movement of the SRP far from the peak of the gaussian. + * We will check this behavior later. + * In any case, the scan will simply add an offset to the elevation tracking expected position, + * the offset value depends on the time elapsed since the start of the scan, which, + * in the case of the focusScan, it's probably always decided by the minor servo system + */ + ACS::doubleSeq_var min_ranges, max_ranges; + servo->getAxesRanges(min_ranges, max_ranges); + + // Read the servo offsets + ACS::doubleSeq user_offsets = *servo->getUserOffsets(); + ACS::doubleSeq system_offsets = *servo->getSystemOffsets(); + + // Check if starting or final positions are outside the axes range (considering offsets) + for(size_t i = 0; i < starting_position.length(); i++) + { + if(starting_position[i] + user_offsets[i] + system_offsets[i] < min_ranges[i] || starting_position[i] + user_offsets[i] + system_offsets[i] > max_ranges[i]) + { + ex.setReason("Starting position out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(final_position[i] + user_offsets[i] + system_offsets[i] < min_ranges[i] || final_position[i] + user_offsets[i] + system_offsets[i] > max_ranges[i]) + { + ex.setReason("Final position out of range."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } + + // Time to reach the desired position if I were to start the movement now + ACS::Time min_starting_time = getTimeStamp() + servo->getTravelTime(ACS::doubleSeq(), starting_position) + PROGRAM_TRACK_FUTURE_TIME; + + if(start_time != 0 && min_starting_time > start_time) + { + ex.setReason("Not enough time to start the scan."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + else if(servo->getTravelTime(starting_position, final_position) > scan_info.total_time) // Check scan total time + { + ex.setReason("Not enough time to perform the scan."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + new_scan.start_time = min_starting_time; + return new_scan; +} + +bool SRTMinorServoBossCore::checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters) +{ + AUTO_TRACE("SRTMinorServoBossCore::checkScan()"); + + TRunTimeParameters_var ms_param_var = new TRunTimeParameters; + ms_param_var->onTheFly = !scan_info.is_empty_scan; + ms_param_var->scanAxis = CORBA::string_dup(scan_info.axis_code); + ms_param_var->startEpoch = 0; + ms_param_var->centerScan = 0; + ms_param_var->timeToStop = 0; + + try + { + checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + // Something is not working, return ASAP + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + ms_parameters = ms_param_var._retn(); + return false; + } + + // Check if we are already performing another scan + if(m_scan_active.load() == Management::MNG_TRUE) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::checkScan()", (LM_CRITICAL, "The system is waiting for a scan to be completed.")); + ms_parameters = ms_param_var._retn(); + return false; + } + + /** + * Empty scan, the old implementation always returned true + * Given the fact that we start the elevation tracking thread automatically + * and considering we will not have to move any axis because of the empty scan + * it is safe to return true in any situation. + * If the system is not configured this will not stop the antenna from starting to track a source + * If the system is about to be configured we will start tracking soon anyway + * The tracking flag will be set to true only when we are inside the tracking delta + * The change in status will be notified via the NotificationChannel + */ + if(scan_info.is_empty_scan) + { + ms_parameters = ms_param_var._retn(); + return true; + } + + // We need to be ready here, we cannot wait for a setup procedure to complete + // Check if the system is now configured and/or tracking + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_TRACKING && motion_status != MOTION_STATUS_CONFIGURED) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::checkScan()", (LM_CRITICAL, "The system is not ready yet.")); + ms_parameters = ms_param_var._retn(); + return false; + } + + SRTMinorServoScan scan; + try + { + scan = checkScanFeasibility(start_time, scan_info, antenna_info); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + ms_parameters = ms_param_var._retn(); + return false; + } + + ms_param_var->startEpoch = scan.start_time; + ms_param_var->centerScan = scan.central_position; + ms_param_var->timeToStop = ms_param_var->startEpoch + scan_info.total_time; + ms_parameters = ms_param_var._retn(); + return true; +} + +void SRTMinorServoBossCore::startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +{ + AUTO_TRACE("SRTMinorServoBossCore::startScan()"); + + // This will throw if anything is not working, no need to catch it since we will throw it again anyway + checkLineStatus(); + + // Check if we are already performing another scan + if(m_scan_active.load() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::startScan()"); + ex.setReason("The system is waiting for a scan to be completed."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + // Empty scan, OK in any case + if(scan_info.is_empty_scan) + { + start_time = getTimeStamp(); + return; + } + + // Check again, this should never block, otherwise something weird is happening + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + if(motion_status != MOTION_STATUS_TRACKING && motion_status != MOTION_STATUS_CONFIGURED) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::startScan()"); + ex.setReason("The system is not ready yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + // This will throw if anything is not working, no need to catch it since we will throw it again anyway + SRTMinorServoScan scan = checkScanFeasibility(start_time, scan_info, antenna_info); + + stopThread(m_tracking_thread); + + // If we got here we are safe to start the scan + m_current_scan = scan; + start_time = scan.start_time; + m_scan_active.store(Management::MNG_TRUE); + startThread(m_scan_thread); +} + +void SRTMinorServoBossCore::closeScan(ACS::Time& close_time) +{ + AUTO_TRACE("SRTMinorServoBossCore::closeScan()"); + + checkLineStatus(); + + if(m_scan_active.load() != Management::MNG_TRUE) + { + // Not scanning, or scan just stopped and the servo is still going back to the initial position + close_time = std::max(getTimeStamp(), m_last_scan.close_time); + return; + } + + // If we got here the scan was not complete, we need to update some values + // Update the scan_duration value. The scan thread will read the value and update the scan center point accordingly. + m_current_scan.scan_duration = getTimeStamp() - m_current_scan.start_time; + + // The thread might have already stopped, but we don't care + stopThread(m_scan_thread); + + // At this point the thread must have stopped, we waited at most 200ms for it to finish its execution, so we can safely assume it's done + // The thread also have updated m_last_scan with the final values + + // Set the close_time + close_time = std::max(getTimeStamp(), m_last_scan.close_time); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::closeScan()", (LM_NOTICE, "Scan closed.")); +} + +double SRTMinorServoBossCore::getElevation(const ACS::Time& acs_time) +{ + AUTO_TRACE("SRTMinorServoBossCore::getElevation()"); + + double azimuth, elevation; + + try + { + m_antennaBoss->getRawCoordinates(acs_time, azimuth, elevation); + elevation *= DR2D; + return elevation == 0.0 ? 45.0 : elevation; + } + catch(ComponentErrors::CouldntGetComponentExImpl& ex) + { + ex.addData("Reason", "Cannot get the ANTENNA/Boss component"); + throw ex.getComponentErrorsEx(); + } +} + +void SRTMinorServoBossCore::checkLineStatus() +{ + AUTO_TRACE("SRTMinorServoBossCore::checkLineStatus()"); + + if(!m_socket.isConnected()) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("Socket not connected."); + ex.log(LM_DEBUG); + setFailure(); + throw ex.getMinorServoErrorsEx(); + } + + if(m_status.getControl() != CONTROL_DISCOS) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("MinorServo system is not controlled by DISCOS."); + ex.log(LM_DEBUG); + setFailure(); + throw ex.getMinorServoErrorsEx(); + } + + if(m_status.emergencyPressed() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); + ex.setReason("MinorServo system in emergency status."); + ex.log(LM_DEBUG); + setFailure(); + throw ex.getMinorServoErrorsEx(); + } +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sleep_time) +{ + AUTO_TRACE("SRTMinorServoBossCore::startThread()"); + + try + { + if(thread != nullptr) + { + // We don't want to restart already active threads + if(!thread->isAlive()) + { + if(sleep_time != 0) + { + thread->setSleepTime(sleep_time); + } + thread->restart(); + } + } + else + { + thread = m_component.getContainerServices()->getThreadManager()->create<T, SRTMinorServoBossCore&>(T::c_thread_name, *this); + if(sleep_time != 0) + { + thread->setSleepTime(sleep_time); + } + thread->resume(); + } + } + catch(acsthreadErrType::CanNotSpawnThreadExImpl& impl) + { + // The thread failed to start for some reason + _ADD_BACKTRACE(ComponentErrors::CanNotStartThreadExImpl, ex, impl, "SRTMinorServoBossCore::startThread()"); + ex.setThreadName(T::c_thread_name); + ex.log(LM_DEBUG); + setFailure(); + throw ex.getComponentErrorsEx(); + } +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::stopThread(T*& thread) +{ + AUTO_TRACE("SRTMinorServoBossCore::stopThread()"); + + if(thread != nullptr && thread->isAlive()) + { + thread->stop(); + } +} + +template <typename T, typename = std::enable_if<is_any_v<T, SRTMinorServoStatusThread, SRTMinorServoSetupThread, SRTMinorServoParkThread, SRTMinorServoTrackingThread, SRTMinorServoScanThread>>> +void SRTMinorServoBossCore::destroyThread(T*& thread) +{ + AUTO_TRACE("SRTMinorServoBossCore::destroyThread()"); + + if(thread != nullptr) + { + thread->terminate(); + m_component.getContainerServices()->getThreadManager()->destroy(thread); + } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::destroyThread()", (LM_NOTICE, (std::string(T::c_thread_name) + " destroyed.").c_str())); +} + +void SRTMinorServoBossCore::setFailure() +{ + AUTO_TRACE("SRTMinorServoBossCore::setFailure()"); + + m_subsystem_status.store(Management::MNG_FAILURE); + m_ready.store(Management::MNG_FALSE); + m_elevation_tracking.store(Management::MNG_FALSE); + m_starting.store(Management::MNG_FALSE); + m_scan_active.store(Management::MNG_FALSE); + m_scanning.store(Management::MNG_FALSE); + m_tracking.store(Management::MNG_FALSE); + m_motion_status.store(MOTION_STATUS_ERROR); +} + +Management::TBoolean SRTMinorServoBossCore::getCDBConfiguration(std::string which_configuration) +{ + AUTO_TRACE("SRTMinorServoBossCore::getCDBConfiguration()"); + std::string configuration = getCDBValue<std::string>(m_component.getContainerServices(), which_configuration); + std::transform(configuration.begin(), configuration.end(), configuration.begin(), ::toupper); + + if(configuration != "ON" && configuration != "OFF") + { + _EXCPT(ComponentErrors::CDBAccessExImpl, ex, "SRTMinorServoBossCore::getCDBConfiguration()"); + ex.setFieldName(which_configuration.c_str()); + ex.addData("Reason", "Value should be 'ON' or 'OFF'"); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + return configuration == "ON" ? Management::MNG_TRUE : Management::MNG_FALSE; +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp new file mode 100644 index 000000000..8a8a55374 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -0,0 +1,422 @@ +#include "SRTMinorServoBossImpl.h" + +using namespace MinorServo; +namespace SP = SimpleParser; + +_IRA_LOGFILTER_DECLARE; + +SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, maci::ContainerServices* container_services) : + CharacteristicComponentImpl(component_name, container_services), + m_component_name(std::string(component_name.c_str())), + m_core_ptr(std::make_shared<SRTMinorServoBossCore>(*this)), + m_core(*m_core_ptr), + m_parser(SP::CParser<SRTMinorServoBossImpl>(this, 2)), + m_connected_ptr(this), + m_status_ptr(this), + m_ready_ptr(this), + m_actual_setup_ptr(this), + m_motion_info_ptr(this), + m_starting_ptr(this), + m_as_configuration_ptr(this), + m_elevation_tracking_ptr(this), + m_scan_active_ptr(this), + m_scanning_ptr(this), + m_tracking_ptr(this), + m_current_configuration_ptr(this), + m_simulation_enabled_ptr(this), + m_plc_time_ptr(this), + m_plc_version_ptr(this), + m_control_ptr(this), + m_power_ptr(this), + m_emergency_ptr(this), + m_gregorian_cover_ptr(this), + m_last_executed_command_ptr(this) +{ + AUTO_TRACE("SRTMinorServoBossImpl::SRTMinorServoBossImpl()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "COMPONENT CREATED")); +} + +SRTMinorServoBossImpl::~SRTMinorServoBossImpl() +{ + AUTO_TRACE("SRTMinorServoBossImpl::~SRTMinorServoBossImpl()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::SRTMinorServoBossImpl()", (LM_NOTICE, "COMPONENT DESTROYED")); +} + +void SRTMinorServoBossImpl::initialize() +{ + AUTO_TRACE("SRTMinorServoBossImpl::initialize()"); + _IRA_LOGFILTER_ACTIVATE(10000000, 20000000); + + try + { + m_connected_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":connected").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_socket_connected), true); + m_status_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus>((m_component_name + ":status").c_str(), getComponent(), + new MSGenericDevIO<Management::TSystemStatus, std::atomic<Management::TSystemStatus>>(m_core.m_subsystem_status), true); + m_ready_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":ready").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_ready), true); + m_actual_setup_ptr = new baci::ROstring((m_component_name + ":actualSetup").c_str(), getComponent(), + new MSGenericDevIO<ACE_CString, std::string>(m_core.m_actual_setup), true); + m_motion_info_ptr = new baci::ROstring((m_component_name + ":motionInfo").c_str(), getComponent(), + new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status, m_core.m_scanning, m_core.m_current_scan), true); + m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":starting").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_starting), true); + m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":asConfiguration").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_as_configuration), true); + m_elevation_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":elevationTrack").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_elevation_tracking_enabled), true); + m_scan_active_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":scanActive").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scan_active), true); + m_scanning_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":scanning").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_scanning), true); + m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_tracking), true); + m_current_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoFocalConfiguration), POA_MinorServo::ROSRTMinorServoFocalConfiguration>((m_component_name + ":current_configuration").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoFocalConfiguration, SRTMinorServoGeneralStatus>("current_configuration", m_core.m_status, &SRTMinorServoGeneralStatus::getFocalConfiguration), true); + m_simulation_enabled_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":simulation_enabled").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("simulation_enabled", m_core.m_status, &SRTMinorServoGeneralStatus::isSimulationEnabled), true); + m_plc_time_ptr = new baci::ROdouble((m_component_name + ":plc_time").c_str(), getComponent(), + new MSAnswerMapDevIO<CORBA::Double, SRTMinorServoGeneralStatus>("plc_time", m_core.m_status, &SRTMinorServoGeneralStatus::getPLCTime), true); + m_plc_version_ptr = new baci::ROstring((m_component_name + ":plc_version").c_str(), getComponent(), + new MSAnswerMapDevIO<ACE_CString, SRTMinorServoGeneralStatus>("plc_version", m_core.m_status, &SRTMinorServoGeneralStatus::getPLCVersion), true); + m_control_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoControlStatus), POA_MinorServo::ROSRTMinorServoControlStatus>((m_component_name + ":control").c_str(), getComponent(), + new MSAnswerMapDevIO<SRTMinorServoControlStatus, SRTMinorServoGeneralStatus>("control", m_core.m_status, &SRTMinorServoGeneralStatus::getControl), true); + m_power_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":power").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("power", m_core.m_status, &SRTMinorServoGeneralStatus::hasPower), true); + m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), + new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("emergency", m_core.m_status, &SRTMinorServoGeneralStatus::emergencyPressed), true); + m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus, SRTMinorServoGeneralStatus>("gregorian_cover", m_core.m_status, &SRTMinorServoGeneralStatus::getGregorianCoverPosition), true); + m_last_executed_command_ptr = new baci::ROdouble((m_component_name + ":last_executed_command").c_str(), getComponent(), + new MSAnswerMapDevIO<CORBA::Double, SRTMinorServoGeneralStatus>("last_executed_command", m_core.m_status, &SRTMinorServoGeneralStatus::getLastExecutedCommand), true); + } + catch(std::bad_alloc& ba) + { + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, "SRTMinorServoBossImpl::initialize()"); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "PROPERTIES INITIALIZED")); + + m_parser.add("servoSetup", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setup), 1); + m_parser.add("servoPark", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::park), 0); + m_parser.add("setServoElevationTracking", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setElevationTracking), 1); + m_parser.add("setServoASConfiguration", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setASConfiguration), 1); + m_parser.add("setServoOffset", new SP::function2<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>, SP::I<SP::double_type>>(this, &SRTMinorServoBossImpl::setUserOffset), 2); + m_parser.add("clearServoOffsets", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); + //m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "PARSER INITIALIZED")); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "COMPONENT INITIALIZED")); +} + +void SRTMinorServoBossImpl::execute() +{ + AUTO_TRACE("SRTMinorServoBossImpl::execute()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::execute()", (LM_NOTICE, "STARTING TO ACCEPT FUNCTIONAL CALLS")); +} + +void SRTMinorServoBossImpl::cleanUp() +{ + AUTO_TRACE("SRTMinorServoBossImpl::cleanUp()"); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::cleanUp()", (LM_NOTICE, "CLEANING UP RESOURCES")); + stopPropertiesMonitoring(); + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; + CharacteristicComponentImpl::cleanUp(); +} + +void SRTMinorServoBossImpl::aboutToAbort() +{ + AUTO_TRACE("SRTMinorServoBossImpl::aboutToAbort()"); + ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::aboutToAbort()", (LM_NOTICE, "ATTEMPTING TO CLEAN UP RESOURCES")); + stopPropertiesMonitoring(); + _IRA_LOGFILTER_FLUSH; + _IRA_LOGFILTER_DESTROY; + CharacteristicComponentImpl::aboutToAbort(); +} + +void SRTMinorServoBossImpl::setup(const char* configuration) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setup()"); + m_core.setup(std::string(configuration)); +} + +void SRTMinorServoBossImpl::park() +{ + AUTO_TRACE("SRTMinorServoBossImpl::park()"); + m_core.park(); +} + +CORBA::Boolean SRTMinorServoBossImpl::isElevationTrackingEn() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isElevationTrackingEn()"); + return m_core.m_elevation_tracking_enabled.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isElevationTracking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isElevationTracking()"); + return m_core.m_elevation_tracking.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isTracking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isTracking()"); + return m_core.m_tracking.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isStarting() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isStarting()"); + return m_core.m_starting.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isASConfiguration() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isASConfiguration()"); + return m_core.m_as_configuration.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isParking() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isParking()"); + return (m_core.m_starting.load() == Management::MNG_TRUE && m_core.m_commanded_configuration.load() == CONFIGURATION_PARK); +} + +CORBA::Boolean SRTMinorServoBossImpl::isReady() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isReady()"); + return m_core.m_ready.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isScanning() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isScanning()"); + return m_core.m_scanning.load() == Management::MNG_TRUE ? true : false; +} + +CORBA::Boolean SRTMinorServoBossImpl::isScanActive() +{ + AUTO_TRACE("SRTMinorServoBossImpl::isScanActive()"); + return m_core.m_scan_active.load() == Management::MNG_TRUE ? true : false; +} + +char* SRTMinorServoBossImpl::getActualSetup() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getActualSetup()"); + return CORBA::string_dup(m_core.m_actual_setup.c_str()); +} + +char* SRTMinorServoBossImpl::getCommandedSetup() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getCommandedSetup()"); + return CORBA::string_dup(m_core.m_commanded_setup.c_str()); +} + +CORBA::Double SRTMinorServoBossImpl::getCentralScanPosition() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getCentralScanPosition()"); + + if(m_core.m_scan_active.load() == Management::MNG_TRUE) + { + return CORBA::Double(m_core.m_current_scan.central_position); + } + else if(m_core.m_last_scan.servo_name != "") // We are not scanning now, but we performed a scan previously + { + return CORBA::Double(m_core.m_last_scan.central_position); + } + else + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossImpl::getCentralPosition()"); + ex.setReason("No scan has been performed yet."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } +} + +void SRTMinorServoBossImpl::clearOffsets() +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearOffsets()"); + ACS_LOG(LM_FULL_INFO, "clearServoOffsets", (LM_NOTICE, "CLEARING ALL USER OFFSETS")); + m_core.clearUserOffsets("ALL"); +} + +void SRTMinorServoBossImpl::clearUserOffset(const char* servo_name) +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearUserOffset()"); + m_core.clearUserOffsets(std::string(servo_name)); +} + +void SRTMinorServoBossImpl::setUserOffset(const char* servo_axis_name, CORBA::Double offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setUserOffset()"); + m_core.setUserOffset(std::string(servo_axis_name), (double)offset); +} + +void SRTMinorServoBossImpl::setUserOffset(const char* servo_axis_name, const double& offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setUserOffset()"); + m_core.setUserOffset(std::string(servo_axis_name), (double)offset, true); +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getUserOffset() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getUserOffset()"); + return m_core.getUserOffsets(); +} + +void SRTMinorServoBossImpl::clearSystemOffset(const char* servo_name) +{ + AUTO_TRACE("SRTMinorServoBossImpl::clearSystemOffset()"); + m_core.clearSystemOffsets(std::string(servo_name)); +} + +void SRTMinorServoBossImpl::setSystemOffset(const char* servo_axis_name, CORBA::Double offset) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setSystemOffset()"); + m_core.setSystemOffset(std::string(servo_axis_name), (double)offset); +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getSystemOffset() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getSystemOffset()"); + return m_core.getSystemOffsets(); +} + +void SRTMinorServoBossImpl::getAxesInfo(ACS::stringSeq_out axes_names, ACS::stringSeq_out axes_units) +{ + AUTO_TRACE("SRTMinorServoBossImpl::getAxesInfo()"); + m_core.getAxesInfo(axes_names, axes_units); +} + +char* SRTMinorServoBossImpl::getScanAxis() +{ + AUTO_TRACE("SRTMinorServoBossImpl::getScanAxis()"); + + if(m_core.m_scan_active.load() == Management::MNG_TRUE) + { + return CORBA::string_dup((m_core.m_current_scan.servo_name + "_" + m_core.m_current_scan.axis_name).c_str()); + } + else if(!m_core.m_last_scan.servo_name.empty()) + { + return CORBA::string_dup((m_core.m_last_scan.servo_name + "_" + m_core.m_last_scan.axis_name).c_str()); + } + else + { + return CORBA::string_dup(""); + } +} + +ACS::doubleSeq* SRTMinorServoBossImpl::getAxesPosition(ACS::Time acs_time) +{ + AUTO_TRACE("SRTMinorServoBossImpl::getAxesPositions()"); + return m_core.getAxesPositions(acs_time == 0 ? getTimeStamp() : acs_time); +} + +void SRTMinorServoBossImpl::setElevationTracking(const char* configuration) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setElevationTracking()"); + m_core.setElevationTracking(std::string(configuration)); +} + +void SRTMinorServoBossImpl::setASConfiguration(const char* configuration) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setASConfiguration()"); + m_core.setASConfiguration(std::string(configuration)); +} + +void SRTMinorServoBossImpl::setGregorianCoverPosition(const char* position) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setGregorianCoverPosition()"); + m_core.setGregorianCoverPosition(std::string(position)); +} + +CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters) +{ + AUTO_TRACE("SRTMinorServoBossImpl::checkScan()"); + return m_core.checkScan(start_time, scan_info, antenna_info, ms_parameters); +} + +void SRTMinorServoBossImpl::startScan(ACS::Time& start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info) +{ + AUTO_TRACE("SRTMinorServoBossImpl::startScan()"); + m_core.startScan(start_time, scan_info, antenna_info); +} + +void SRTMinorServoBossImpl::closeScan(ACS::Time& close_time) +{ + AUTO_TRACE("SRTMinorServoBossImpl::closeScan()"); + m_core.closeScan(close_time); +} + +void SRTMinorServoBossImpl::preset(double elevation) +{ + AUTO_TRACE("SRTMinorServoBossImpl::preset()"); + m_core.preset(elevation); +} + +CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out answer) +{ + AUTO_TRACE("SRTMinorServoBossImpl::command()"); + + IRA::CString out; + bool res = false; + + try + { + m_parser.run(cmd, out); + res = true; + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + LOG_EX(MinorServoErrors::MinorServoErrorsEx); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + LOG_EX(ComponentErrors::ComponentErrorsEx); + } + catch(ManagementErrors::ConfigurationErrorEx& ex) + { + LOG_EX(ManagementErrors::ConfigurationErrorEx); + } + catch(ManagementErrors::ParkingErrorEx& ex) + { + LOG_EX(ManagementErrors::ParkingErrorEx); + } + catch(...) // Unknown exception. If the above catch blocks are written correctly we should never get here. + { + ACS_SHORT_LOG((LM_ERROR, "SRTMinorServoBossImpl::command()")); + } + + answer = CORBA::string_dup((const char *)out); + return res; +} + + +GET_PROPERTY_REFERENCE(Management::ROTSystemStatus, SRTMinorServoBossImpl, m_status_ptr, status) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_ready_ptr, ready) +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_actual_setup_ptr, actualSetup) +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_motion_info_ptr, motionInfo) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_starting_ptr, starting) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_as_configuration_ptr, asConfiguration) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_elevation_tracking_ptr, elevationTrack) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_scan_active_ptr, scanActive) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_scanning_ptr, scanning) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_tracking_ptr, tracking) +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_connected_ptr, connected) +GET_PROPERTY_REFERENCE(ROSRTMinorServoFocalConfiguration, SRTMinorServoBossImpl, m_current_configuration_ptr, current_configuration); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_simulation_enabled_ptr, simulation_enabled); +GET_PROPERTY_REFERENCE(ACS::ROdouble, SRTMinorServoBossImpl, m_plc_time_ptr, plc_time); +GET_PROPERTY_REFERENCE(ACS::ROstring, SRTMinorServoBossImpl, m_plc_version_ptr, plc_version); +GET_PROPERTY_REFERENCE(ROSRTMinorServoControlStatus, SRTMinorServoBossImpl, m_control_ptr, control); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_power_ptr, power); +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_emergency_ptr, emergency); +GET_PROPERTY_REFERENCE(ROSRTMinorServoGregorianCoverStatus, SRTMinorServoBossImpl, m_gregorian_cover_ptr, gregorian_cover); +GET_PROPERTY_REFERENCE(ACS::ROdouble, SRTMinorServoBossImpl, m_last_executed_command_ptr, last_executed_command); + +#include <maciACSComponentDefines.h> +MACI_DLL_SUPPORT_FUNCTIONS(SRTMinorServoBossImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp new file mode 100644 index 000000000..8afaab79f --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -0,0 +1,93 @@ +#include "SRTMinorServoParkThread.h" + +using namespace MinorServo; + +SRTMinorServoParkThread::SRTMinorServoParkThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), + m_core(core) +{ + AUTO_TRACE("SRTMinorServoParkThread::SRTMinorServoParkThread()"); +} + +SRTMinorServoParkThread::~SRTMinorServoParkThread() +{ + AUTO_TRACE("SRTMinorServoParkThread::~SRTMinorServoParkThread()"); +} + +void SRTMinorServoParkThread::onStart() +{ + AUTO_TRACE("SRTMinorServoParkThread::onStart()"); + this->setSleepTime(500000); // 50 milliseconds + m_start_time = IRA::CIRATools::getUNIXEpoch(); + + m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStart()", (LM_NOTICE, "PARK THREAD STARTED")); +} + +void SRTMinorServoParkThread::onStop() +{ + AUTO_TRACE("SRTMinorServoParkThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::onStop()", (LM_NOTICE, "PARK THREAD STOPPED")); +} + +void SRTMinorServoParkThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoParkThread::runLoop()"); + + try + { + m_core.checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; + } + + if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::runLoop()", (LM_CRITICAL, "Timeout while performing a park operation.")); + m_core.setFailure(); + this->setStopped(); + return; + } + + switch(m_status) + { + case 0: + { + // First we check if the gregorian cover has closed + //bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED ? true : false; + + // 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 + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; + })) + { + m_status = 1; + } + + break; + } + case 1: + { + for(const auto& [name, servo] : m_core.m_servos) + { + servo->setup(""); + } + + m_core.m_actual_setup = m_core.m_commanded_setup; + m_core.m_starting.store(Management::MNG_FALSE); + m_core.m_motion_status.store(MOTION_STATUS_PARKED); + m_core.m_subsystem_status.store(Management::MNG_OK); + this->setStopped(); + break; + } + } +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp new file mode 100644 index 000000000..a70f66795 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -0,0 +1,237 @@ +#include "SRTMinorServoScanThread.h" + +using namespace MinorServo; + +SRTMinorServoScanThread::SRTMinorServoScanThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time): + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_error(false) +{ + AUTO_TRACE("SRTMinorServoScanThread::SRTMinorServoScanThread()"); +} + +SRTMinorServoScanThread::~SRTMinorServoScanThread() +{ + AUTO_TRACE("SRTMinorServoScanThread::~SRTMinorServoScanThread()"); +} + +void SRTMinorServoScanThread::onStart() +{ + AUTO_TRACE("SRTMinorServoScanThread::onStart()"); + + // We want to start moving the scan servo ASAP and bring its scan axis to the start position. + // The other servos will keep tracking normally. + // The general implementation accounts for derotators which will be integrated in the future. + // The requested scan will start at start_time by adding the correct scan offset to each point. + + // This will find the first useful time to send a point synchronized with the scan start time: m_core.m_current_scan.start_time - (PROGRAM_TRACK_TIMEGAP * N) > now + PROGRAM_TRACK_FUTURE_TIME + size_t pre_scan_points = std::floor((m_core.m_current_scan.start_time - (getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME)) / PROGRAM_TRACK_TIMEGAP); + m_point_time = m_core.m_current_scan.start_time - pre_scan_points * PROGRAM_TRACK_TIMEGAP; + m_point_id = 0; + m_trajectory_id = (unsigned int)(IRA::CIRATools::ACSTime2UNIXEpoch(m_point_time)); + + // How many points in the scan trajectory? + // We don't check the modulo of the division, we assume all the scans duration is always expressed in seconds, therefore the modulo should always be 0 + size_t scan_points = m_core.m_current_scan.scan_duration / PROGRAM_TRACK_TIMEGAP + 1; + // How big is each offset step? We have N points but N-1 segments + double scan_delta = m_core.m_current_scan.scan_range / (scan_points - 1); + + m_scan_offsets = SRTMinorServoPositionsQueue(pre_scan_points + scan_points, 1); + for(size_t i = 0; i < pre_scan_points; i++) + { + m_scan_offsets.put(m_point_time + i * PROGRAM_TRACK_TIMEGAP, { -m_core.m_current_scan.scan_range / 2 }); + } + for(size_t i = 0; i < scan_points; i++) + { + m_scan_offsets.put(m_core.m_current_scan.start_time + i * PROGRAM_TRACK_TIMEGAP, {-m_core.m_current_scan.scan_range / 2 + i * scan_delta}); + } + + // We save the starting coordinates to return to them when the scan is finished + ACSErr::Completion_var comp; + auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); + m_starting_coordinates = *servo->getAxesPositions(0); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStart()", (LM_NOTICE, + ("SCAN THREAD STARTED, SCANNING " + std::to_string((int)m_core.m_current_scan.scan_range) + "MM IN " + std::to_string((int)(m_core.m_current_scan.scan_duration / 10000000)) + " SECONDS ALONG " + m_core.m_current_scan.servo_name + " " + m_core.m_current_scan.axis_name + " AXIS").c_str() + )); +} + +void SRTMinorServoScanThread::onStop() +{ + AUTO_TRACE("SRTMinorServoScanThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::onStop()", (LM_NOTICE, "SCAN THREAD STOPPED")); + + m_core.m_scanning.store(Management::MNG_FALSE); + + if(m_error) // We didn't reach the end of the scan because of some error + { + // Should we set everything to failure? + m_core.setFailure(); + return; + } + + m_core.m_scanning.store(Management::MNG_FALSE); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + + // Reset m_point_time + m_point_time -= PROGRAM_TRACK_FUTURE_TIME; + + auto servo = m_core.m_tracking_servos.at(m_core.m_current_scan.servo_name); + + // Update the central scan position using the correct elevation (from the past) + m_core.m_current_scan.central_position = (*servo->calcCoordinates(m_core.getElevation((m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration) / 2)))[m_core.m_current_scan.axis_index]; + + ACS::doubleSeq return_coordinates; + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + // Restart the tracking + m_core.startThread(m_core.m_tracking_thread); + return_coordinates = *servo->calcCoordinates(m_core.getElevation(getTimeStamp())); + } + else + { + // We were not tracking, send the servo to the starting position + servo->preset(m_starting_coordinates); + return_coordinates = m_starting_coordinates; + } + + // Calculate the close_time again now that the servos are already moving back to their original position + m_core.m_current_scan.close_time = getTimeStamp() + servo->getTravelTime(ACS::doubleSeq(), return_coordinates); + + // Copy current_scan into last_scan + m_core.m_last_scan = m_core.m_current_scan; + + // Finally unlock the scan capabilities + m_core.m_scan_active.store(Management::MNG_FALSE); +} + +void SRTMinorServoScanThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoScanThread::runLoop()"); + + if(m_point_time == m_core.m_current_scan.start_time + PROGRAM_TRACK_FUTURE_TIME) // The system should be starting to scan right now + { + m_core.m_scanning.store(Management::MNG_TRUE); + } + else if(m_point_time == m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration + PROGRAM_TRACK_FUTURE_TIME) // The system should have finished to scan right now + { + this->setStopped(); + return; + } + else if(m_point_time > m_core.m_current_scan.start_time + m_core.m_current_scan.scan_duration) // All points were sent, we can stop sending but we'll wait for the scan to finish + { + m_point_time += PROGRAM_TRACK_TIMEGAP; + + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((m_point_time - PROGRAM_TRACK_FUTURE_TIME) - getTimeStamp()); + return; + } + + try + { + m_core.checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + + if(m_point_id == 1) + { + if(std::all_of(m_core.m_current_tracking_servos.begin(), m_core.m_current_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo.first != m_core.m_current_scan.servo_name) + { + // Not tracking the elevation and this servo is not involved in the current scan + return true; + } + + ACSErr::Completion_var comp; + if(servo.second->operative_mode()->get_sync(comp.out()) != OPERATIVE_MODE_PROGRAMTRACK) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoScanThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + return false; + } + return true; + })) + { + // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + m_core.m_elevation_tracking.store(Management::MNG_TRUE); + } + } + else + { + m_error = true; + this->setStopped(); + return; + } + } + + double elevation = m_core.m_current_scan.starting_elevation; + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) // We are in elevation tracking mode + { + try + { + elevation = m_core.getElevation(m_point_time); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getErrorFromEx(ex)) + " Using a fixed elevation of " + std::to_string(elevation) + "° as scan central coordinate!").c_str()); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + } + } + + for(const auto& [servo_name, servo] : m_core.m_current_tracking_servos) + { + if(m_core.m_motion_status.load() == MOTION_STATUS_CONFIGURED && servo_name != m_core.m_current_scan.servo_name) + { + // Not tracking the elevation and this servo is not involved in the current scan + continue; + } + + ACS::doubleSeq coordinates = m_starting_coordinates; + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + coordinates = *servo->calcCoordinates(elevation); + } + + if(servo_name == m_core.m_current_scan.servo_name) + { + try + { + // Ask for the offset in the exact m_point_time (we don't want to interpolate or retrieve any value before or after the scan time span) + coordinates[m_core.m_current_scan.axis_index] += m_scan_offsets.get(m_point_time, true).second[0]; + } + catch(...) + { + // No offset found for this point_time, ignore + } + } + + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, coordinates); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + } + + m_point_id++; + m_point_time += PROGRAM_TRACK_TIMEGAP; + + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((m_point_time - PROGRAM_TRACK_FUTURE_TIME) - getTimeStamp()); +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp new file mode 100644 index 000000000..1daa85968 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -0,0 +1,255 @@ +#include "SRTMinorServoSetupThread.h" + +using namespace MinorServo; + +SRTMinorServoSetupThread::SRTMinorServoSetupThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), + m_core(core) +{ + AUTO_TRACE("SRTMinorServoSetupThread::SRTMinorServoSetupThread()"); +} + +SRTMinorServoSetupThread::~SRTMinorServoSetupThread() +{ + AUTO_TRACE("SRTMinorServoSetupThread::~SRTMinorServoSetupThread()"); +} + +void SRTMinorServoSetupThread::onStart() +{ + AUTO_TRACE("SRTMinorServoSetupThread::onStart()"); + + this->setSleepTime(500000); // 50 milliseconds + m_start_time = IRA::CIRATools::getUNIXEpoch(); + + m_status = 0; + + //SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); + //m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); + //m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_NOTICE, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); +} + +void SRTMinorServoSetupThread::onStop() +{ + AUTO_TRACE("SRTMinorServoSetupThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStop()", (LM_NOTICE, "SETUP THREAD STOPPED")); + + if(m_core.m_motion_status.load() == MOTION_STATUS_TRACKING) + { + try + { + m_core.startThread(m_core.m_tracking_thread); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + } + } +} + +void SRTMinorServoSetupThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoSetupThread::runLoop()"); + + try + { + m_core.checkLineStatus(); + } + catch(MinorServoErrors::StatusErrorEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; + } + + if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Timeout while performing a setup operation.")); + m_core.setFailure(); + this->setStopped(); + return; + } + + switch(m_status) + { + case 0: // Check if all the servos stopped + { + if(std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; + })) + { + m_status = 1; + } + + break; + } + case 1: // Set all the servo offsets to 0 + { + for(const auto& [name, servo] : m_core.m_servos) + { + // Not sure about this + servo->clearSystemOffsets(); + servo->clearUserOffsets(); + } + + //m_status = 2; + //m_status = 100; + m_status = 5; + break; + } + /*case 100: // Send the STOW command to the gregorian cover + { + if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", m_gregorian_cover_position)).checkOutput()) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK when setting the gregorian cover position.")); + m_core.setFailure(); + this->setStopped(); + return; + } + + m_status = 5; + break; + }*/ + /*case 2: // Send the SETUP command + { + try + { + if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration)).checkOutput()) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK in response to a SETUP command.")); + m_core.setFailure(); + this->setStopped(); + return; + } + else + { + m_status = 3; + } + } + catch(...) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Communication error while sending a SETUP command.")); + m_core.setFailure(); + this->setStopped(); + return; + } + + break; + } + case 3: // Wait for the system to show the commanded configuration + { + if(m_core.m_status.getFocalConfiguration() == m_core.m_commanded_configuration.load()) + { + m_status = 4; + } + + break; + } + case 4: // Wait for the whole system to reach the desired configuration + { + // First we check the status of the gregorian cover + bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; + + // Then we cycle through all the servos and make sure their operative mode is SETUP + if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_SETUP ? true : false; + })) + { + m_status = 5; + } + + break; + }*/ + case 5: // Load the servos coefficients and send a PRESET command + { + for(const auto& [servo_name, servo] : m_core.m_servos) + { + try + { + if(servo->setup(m_core.m_commanded_setup.c_str())) + { + m_core.m_current_servos[servo_name] = servo; + try + { + m_core.m_current_tracking_servos[servo_name] = m_core.m_tracking_servos.at(servo_name); + } + catch(...) + { + // Not a tracking servo, ignore + } + } + } + catch(...) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, ("Error while loading a SETUP to servo'" + servo_name + "'.").c_str())); + m_core.setFailure(); + this->setStopped(); + return; + } + } + + // This step is necessary because we have _ASACTIVE configurations that have a slightly different position from the commanded one + // Unfortunately, the Leonardo implementation accepts a fixed number of configurations, therefore we share the _ASACTIVE and AS not active configurations for each focal position + for(const auto& [servo_name, servo] : m_core.m_current_servos) + { + try + { + servo->preset(*servo->calcCoordinates(45)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setFailure(); + this->setStopped(); + return; + } + } + + m_status = 6; + break; + } + case 6: // Wait for the whole system to reach the PRESET configuration + { + // First we check the status of the gregorian cover + //bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; + + if(/*completed && */std::all_of(m_core.m_current_servos.begin(), m_core.m_current_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PRESET ? true : false; + })) + { + m_status = 7; + } + + break; + } + case 7: // Finally set all the variables values and eventually start the elevation tracking thread + { + m_core.m_actual_setup = m_core.m_commanded_setup; + m_core.m_starting.store(Management::MNG_FALSE); + m_core.m_ready.store(Management::MNG_TRUE); + m_core.m_subsystem_status.store(Management::MNG_OK); + + if(m_core.m_elevation_tracking_enabled.load() == Management::MNG_TRUE) + { + m_core.m_motion_status.store(MOTION_STATUS_TRACKING); + } + else + { + m_core.m_motion_status.store(MOTION_STATUS_CONFIGURED); + } + + this->setStopped(); + break; + } + } +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp new file mode 100644 index 000000000..3cbedce9a --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoStatusThread.cpp @@ -0,0 +1,112 @@ +#include "SRTMinorServoStatusThread.h" + +using namespace MinorServo; + +SRTMinorServoStatusThread::SRTMinorServoStatusThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time) : + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_sleep_time(this->getSleepTime()), + m_notification_channel(nullptr) +{ + AUTO_TRACE("SRTMinorServoStatusThread::SRTMinorServoStatusThread()"); +} + +SRTMinorServoStatusThread::~SRTMinorServoStatusThread() +{ + AUTO_TRACE("SRTMinorServoStatusThread::~SRTMinorServoStatusThread()"); +} + +void SRTMinorServoStatusThread::onStart() +{ + AUTO_TRACE("SRTMinorServoStatusThread::onStart()"); + + m_status = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStart()", (LM_NOTICE, "STATUS THREAD STARTED")); +} + +void SRTMinorServoStatusThread::onStop() +{ + AUTO_TRACE("SRTMinorServoStatusThread::onStop()"); + + if(m_notification_channel != nullptr) + { + m_notification_channel->disconnect(); + m_notification_channel = nullptr; + } + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoStatusThread::onStop()", (LM_NOTICE, "STATUS THREAD STOPPED")); +} + +void SRTMinorServoStatusThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoStatusThread::runLoop()"); + + ACS::Time t0 = getTimeStamp(); + unsigned long sleep_time = 10000000; + + switch(m_status) + { + case 0: + { + // Wait for the properties to be monitored by the Boss component. + // This is necessary since this thread might start before the start of the properties monitoring. + if(m_core.m_component.isPropertiesMonitoringActive()) + { + m_status = 1; + } + + break; + } + case 1: + { + if(m_core.status()) + { + // Update the sleep time in order to not drift away by adding latency + sleep_time = std::max(m_sleep_time - (getTimeStamp() - t0), (long unsigned int)0); + } + + break; + } + } + + publish(); + + this->setSleepTime(sleep_time); +} + +void SRTMinorServoStatusThread::publish() +{ + // TODO: maybe update only when anything changed + MinorServoDataBlock data; + TIMEVALUE now; + IRA::CIRATools::getTime(now); + data.timeMark = now.value().value; + data.tracking = m_core.m_tracking.load() == Management::MNG_TRUE; + data.starting = m_core.m_starting.load() == Management::MNG_TRUE; + data.parking = m_core.m_motion_status.load() == MOTION_STATUS_PARKING; + data.parked = m_core.m_motion_status.load() == MOTION_STATUS_PARKED; + data.status = m_core.m_subsystem_status.load(); + + if(m_notification_channel == nullptr) + { + try + { + m_notification_channel = new nc::SimpleSupplier(MINORSERVO_DATA_CHANNEL, &m_core.m_component); + } + catch(...) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoStatusThread::publish()", "cannot access the MinorServoData notification channel!"); + return; + } + } + + try + { + m_notification_channel->publishData<MinorServoDataBlock>(data); + } + catch(ComponentErrors::CORBAProblemEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoStatusThread::publish()", "cannot send MinorServoData over the notification channel!"); + } +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp new file mode 100644 index 000000000..7f4350101 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -0,0 +1,142 @@ +#include "SRTMinorServoTrackingThread.h" + +using namespace MinorServo; + +SRTMinorServoTrackingThread::SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time): + ACS::Thread(name, response_time, sleep_time), + m_core(core), + m_error(false) +{ + AUTO_TRACE("SRTMinorServoTrackingThread::SRTMinorServoTrackingThread()"); +} + +SRTMinorServoTrackingThread::~SRTMinorServoTrackingThread() +{ + AUTO_TRACE("SRTMinorServoTrackingThread::~SRTMinorServoTrackingThread()"); +} + +void SRTMinorServoTrackingThread::onStart() +{ + AUTO_TRACE("SRTMinorServoTrackingThread::onStart()"); + + this->setSleepTime(500000); // 50 milliseconds + m_point_id = 0; + m_point_time = 0; + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStart()", (LM_NOTICE, "TRACKING THREAD STARTED")); +} + +void SRTMinorServoTrackingThread::onStop() +{ + AUTO_TRACE("SRTMinorServoTrackingThread::onStop()"); + + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_NOTICE, "TRACKING THREAD STOPPED")); + + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + + if(m_error) + { + m_core.setFailure(); + } +} + +void SRTMinorServoTrackingThread::runLoop() +{ + AUTO_TRACE("SRTMinorServoTrackingThread::runLoop()"); + + try + { + m_core.checkLineStatus(); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + + if(m_core.m_motion_status.load() != MOTION_STATUS_TRACKING) + { + // System is not ready or is not configured for tracking yet, we wait, even though we should never get here + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", "Waiting for the system to be configured for tracking!"); + return; + } + + // All checks passed, we have to track + if(m_point_id == 0) + { + m_point_time = getTimeStamp() + PROGRAM_TRACK_FUTURE_TIME; + m_trajectory_id = (unsigned int)(IRA::CIRATools::ACSTime2UNIXEpoch(m_point_time)); + } + else if(m_point_id == 1) + { + if(std::all_of(m_core.m_current_tracking_servos.begin(), m_core.m_current_tracking_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + { + ACSErr::Completion_var comp; + if(servo.second->operative_mode()->get_sync(comp.out()) != OPERATIVE_MODE_PROGRAMTRACK) + { + ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::runLoop()", (LM_CRITICAL, (servo.first + ": failed to set PROGRAM_TRACK operative mode!").c_str())); + return false; + } + return true; + })) + { + // All used servos are set to PROGRAMTRACK operative mode, we are tracking the elevation + m_core.m_elevation_tracking.store(Management::MNG_TRUE); + } + else + { + m_error = true; + this->setStopped(); + return; + } + } + + for(const auto& [servo_name, servo] : m_core.m_current_tracking_servos) + { + double elevation = 45.0; + + try + { + elevation = m_core.getElevation(m_point_time); + } + catch(ComponentErrors::ComponentErrorsEx& ex) + { + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); + m_core.m_elevation_tracking.store(Management::MNG_FALSE); + } + + try + { + servo->programTrack(m_trajectory_id, m_point_id, m_point_time, *servo->calcCoordinates(elevation)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_error = true; + this->setStopped(); + return; + } + catch(std::exception& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.what())); + m_error = true; + this->setStopped(); + return; + } + catch(CORBA::Exception& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex._info().c_str())); + m_error = true; + this->setStopped(); + return; + } + } + + m_point_id++; + m_point_time += PROGRAM_TRACK_TIMEGAP; + + // Sleep until the next point - PROGRAM_TRACK_FUTURE_TIME + this->setSleepTime((unsigned long)(m_point_time - PROGRAM_TRACK_FUTURE_TIME - getTimeStamp())); +} diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp new file mode 100644 index 000000000..16fa1ebd6 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -0,0 +1,173 @@ +#include "SRTMinorServoImpl.h" + +using namespace MinorServo; + +SRTProgramTrackMinorServoImpl::SRTProgramTrackMinorServoImpl(const ACE_CString &componentName, maci::ContainerServices *containerServices) : + SRTBaseMinorServoImpl(componentName, containerServices), + m_tracking_queue(1500, m_virtual_axes), + m_tracking_delta(SRTBaseMinorServoImpl::getMotionConstant(*this, "tracking_delta")), + m_tracking_error(m_virtual_axes, 0.0), + m_tracking(Management::MNG_FALSE), + m_trajectory_id(0), + m_total_trajectory_points(0), + m_remaining_trajectory_points(0), + m_tracking_ptr(this), + m_trajectory_id_ptr(this), + m_total_trajectory_points_ptr(this), + m_remaining_trajectory_points_ptr(this), + m_tracking_error_ptr(this) +{ + AUTO_TRACE(m_servo_name + "::SRTProgramTrackMinorServoImpl()"); +} + +SRTProgramTrackMinorServoImpl::~SRTProgramTrackMinorServoImpl() +{ + AUTO_TRACE(m_servo_name + "::~SRTProgramTrackMinorServoImpl()"); +} + +void SRTProgramTrackMinorServoImpl::initialize() +{ + SRTBaseMinorServoImpl::initialize(); + + try + { + m_tracking_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":tracking").c_str(), getComponent(), + new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_tracking), true); + m_trajectory_id_ptr = new baci::ROlong((m_component_name + ":trajectory_id").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_trajectory_id), true); + m_total_trajectory_points_ptr = new baci::ROlong((m_component_name + ":total_trajectory_points").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_total_trajectory_points), true); + m_remaining_trajectory_points_ptr = new baci::ROlong((m_component_name + ":remaining_trajectory_points").c_str(), getComponent(), + new MSGenericDevIO<CORBA::Long, std::atomic<unsigned int>>(m_remaining_trajectory_points), true); + m_tracking_error_ptr = new baci::ROdoubleSeq((m_component_name + ":tracking_error").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_tracking_error), true); + } + catch(std::bad_alloc& ba) + { + _EXCPT(ComponentErrors::MemoryAllocationExImpl, ex, (m_servo_name + "::initialize()").c_str()); + ex.log(LM_DEBUG); + throw ex.getComponentErrorsEx(); + } +} + +/////////////////// PUBLIC methods +bool SRTProgramTrackMinorServoImpl::status() +{ + bool status = SRTBaseMinorServoImpl::status(); + + try + { + ACS::Time last_timestamp = m_status.getTimestamp(); + + // The timestamp of the read positions always corresponds to the one we're asking since they both belong to the same STATUS command answer + // The tracking timestamp is interpolated instead + ACS::doubleSeq virtual_positions = m_status.getVirtualPositions(); + std::pair<ACS::Time, std::vector<double>> tracking_point = m_tracking_queue.get(last_timestamp); + + m_remaining_trajectory_points.store(m_tracking_queue.getRemainingPoints(last_timestamp)); + + if(tracking_point.first < last_timestamp) + { + // We are past the last point of the trajectory, we concluded it + m_tracking.store(Management::MNG_FALSE); + m_tracking_queue.clear(); + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + } + else + { + bool is_tracking = true; + + std::transform(virtual_positions.begin(), virtual_positions.end(), tracking_point.second.begin(), m_tracking_error.begin(), [](double current_pos, double commanded_pos) + { + return std::fabs(current_pos - commanded_pos); + }); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + if(std::fabs(m_tracking_error[i]) > m_tracking_delta[i]) + { + is_tracking = false; + break; + } + } + + m_tracking.store(is_tracking ? Management::MNG_TRUE : Management::MNG_FALSE); + } + } + catch(...) + { + // We might get here if m_tracking_queue is empty + // So whenever we just got a new setup or if we are past the last point inside the trajectory + m_tracking.store(Management::MNG_FALSE); // May be redundant but who cares? + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + } + + return status; +} + +bool SRTProgramTrackMinorServoImpl::setup(const char* configuration_name) +{ + bool return_value = SRTBaseMinorServoImpl::setup(configuration_name); + + m_tracking_queue.clear(); + m_total_trajectory_points.store(0); + m_remaining_trajectory_points.store(0); + + return return_value; +} + +void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORBA::Long point_id, ACS::Time point_time, const ACS::doubleSeq& virtual_coordinates) +{ + AUTO_TRACE("SRTProgramTrackMinorServoImpl::programTrack()"); + + checkLineStatus(); + + if(virtual_coordinates.length() != m_virtual_axes) + { + _EXCPT(MinorServoErrors::TrackingErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.addData("Reason", "Wrong number of values for this servo system!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + std::vector<double> coordinates(virtual_coordinates.get_buffer(), virtual_coordinates.get_buffer() + virtual_coordinates.length()); + ACS::doubleSeq offsets = m_status.getVirtualOffsets(); + + for(size_t i = 0; i < m_virtual_axes; i++) + { + double coordinate = coordinates[i] + offsets[i]; + if(coordinate < m_min[i] || coordinate > m_max[i]) + { + _EXCPT(MinorServoErrors::TrackingErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.addData("Reason", "Resulting position out of range, check the offsets!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coordinates, point_id > 0 ? 0 : IRA::CIRATools::ACSTime2UNIXEpoch(point_time))).checkOutput()) + { + _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); + ex.setReason("Received NAK in response to a PROGRAMTRACK command!"); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + m_trajectory_id.store(trajectory_id); + m_total_trajectory_points.store(point_id + 1); + if(point_id == 0) + { + // Clear the tracking queue to avoid interpolation between 2 different trajectories + m_tracking_queue.clear(); + } + m_tracking_queue.put(point_time, coordinates); +} + + +GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTProgramTrackMinorServoImpl, m_tracking_ptr, tracking); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_trajectory_id_ptr, trajectory_id); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_total_trajectory_points_ptr, total_trajectory_points); +GET_PROPERTY_REFERENCE(ACS::ROlong, SRTProgramTrackMinorServoImpl, m_remaining_trajectory_points_ptr, remaining_trajectory_points); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTProgramTrackMinorServoImpl, m_tracking_error_ptr, tracking_error); + +MACI_DLL_SUPPORT_FUNCTIONS(SRTProgramTrackMinorServoImpl) diff --git a/SRT/Servers/SRTMinorServo/src/_cover.py b/SRT/Servers/SRTMinorServo/src/_cover.py new file mode 100644 index 000000000..add318233 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/_cover.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +# This is a python script that can be used to set the gregorian cover position +# who when what +# Giuseppe Carboni(giuseppe.carboni@inaf.it) 21/01/2024 Creation + +from Acspy.Clients.SimpleClient import PySimpleClient +import ACSLog +import maciErrType +import maciErrTypeImpl +import ClientErrorsImpl +import MinorServoErrors +import ManagementErrorsImpl +import sys +from SimpleParserPy import add_user_message + +def main(): + compName = 'MINORSERVO/Boss' + + simpleClient = PySimpleClient() + + try: + component = simpleClient.getComponent(compName) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName(compName) + add_user_message(newEx, 'MinorServoBoss not ready or not properly configured') + simpleClient.disconnect() + sys.exit(1) + + try: + inputs = component.setGregorianCoverPosition(sys.argv[1]) + except MinorServoErrors.MinorServoErrorsEx as ex: + newEx = ClientErrorsImpl.CouldntPerformActionExImpl(exception=ex, create=1) + newEx.setReason('MinorServoBoss gregorian cover position') + add_user_message(newEx, 'Unable to set the gregorian cover position') + simpleClient.disconnect() + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/SRT/Servers/SRTMinorServo/test/.gitignore b/SRT/Servers/SRTMinorServo/test/.gitignore new file mode 100644 index 000000000..d3a2a1447 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/.gitignore @@ -0,0 +1,3 @@ +TESTS/SRP/* +TESTS/COMBINED/* +TESTS/DEROTATOR* diff --git a/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp new file mode 100644 index 000000000..d53245b9f --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/CombinedProgramTrackTest.cpp @@ -0,0 +1,532 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif + +#define SOCKET_TIMEOUT 0.5 +#define NOISE_THRESHOLD 1 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 5 +#define STATUS_PERIOD 0.01 +#define EPSILON 0.00001 + +#define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } +#define SRP_MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } +#define SRP_MAX_SPEED std::vector<double>{ 4.0, 4.0, 4.0, 0.04, 0.04, 0.04 } + +#define DEROTATOR std::string("GFR1") +#define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } +#define DEROTATOR_RANGES std::vector<double>{ 10.0, 100.0 } +#define DEROTATOR_MAX_SPEED std::vector<double>{ 3.3 } + + +std::atomic<bool> terminate = false; + + +class CombinedProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> SRPStartingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + std::vector<double> DerotatorStartingCoordinates = { 10.0 }; + std::string directory; + std::thread statusThread; + + static void printStatus(std::string directory) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPStatusFile, DerotatorStatusFile; + SRPStatusFile.open(directory + "/SRP/status.txt", ios::out); + DerotatorStatusFile.open(directory + "/DEROTATOR/status.txt", ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string SRPStringStatus = serializeSRPStatus(SRPStatus); + std::string DerotatorStringStatus = serializeDerotatorStatus(DerotatorStatus); + + SRPStatusFile << SRPStringStatus << std::endl; + DerotatorStatusFile << DerotatorStringStatus << std::endl; + if(counter % 10 == 0) + { + std::cout << SRPStringStatus << std::endl; + std::cout << DerotatorStringStatus << std::endl; + } + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + SRPStatusFile.close(); + DerotatorStatusFile.close(); + } + + static void printSRPStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + std::string status = serializeSRPStatus(SRPStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void printDerotatorStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string status = serializeDerotatorStatus(DerotatorStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeSRPStatus(SRTMinorServoAnswerMap map) + { + std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, SRP_COORDINATES)); + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeDerotatorStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, DEROTATOR_COORDINATES)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus, std::vector<std::string> coordinates) + { + std::vector<double> currentCoordinates; + + for(std::string coordinate : coordinates) + { + auto value = SRPStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + auto value = SRPStatus[elongation]; + + try + { + currentElongations.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentElongations.push_back(10000.0); + } + } + + return currentElongations; + } + + static bool compareCoordinates(std::vector<double> first, std::vector<double> second) + { + if(first.size() != second.size()) + return false; + + for(size_t i = 0; i < first.size(); i++) + { + double diff = fabs(first[i] - second[i]); + if(diff > EPSILON) + return false; + } + + return true; + } + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "OK." << std::endl; + + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending initial SRP STATUS command..."; + + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_STATUS"]), 1); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_BLOCK"]), 2); + std::cout << "OK." << std::endl; + + for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + SRTMinorServoAnswerMap DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_STATUS"]), 1); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_BLOCK"]), 2); + + for(iterator = DerotatorStatus.begin(); iterator != DerotatorStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "OK." << std::endl; + std::cout << "Sending all axes to 0..." << std::endl; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", SRPStartingCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("Derotatore" + DEROTATOR, DerotatorStartingCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + signal(SIGINT, CombinedProgramTrackTest::sigintHandler); + + bool SRPReady = false, DerotatorReady = false; + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + std::cout << serializeSRPStatus(SRPStatus) << std::endl; + SRPReady = std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]) == 40 ? true : false; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + std::cout << serializeDerotatorStatus(DerotatorStatus) << std::endl; + DerotatorReady = std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]) == 40 ? true : false; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + while(!SRPReady || !DerotatorReady); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 40); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); + + std::cout << "OK." << std::endl; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/COMBINED"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + boost::filesystem::create_directory(directory + "/SRP"); + boost::filesystem::create_directory(directory + "/DEROTATOR"); + + statusThread = std::thread(&CombinedProgramTrackTest::printStatus, directory); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(CombinedProgramTrackTest, SineWaveMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> SRPCoordinates = SRPStartingCoordinates; + std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; + + std::vector<double> phase_shift; + std::vector<double> period; + for(size_t axis = 0; axis < 6; axis++) + { + period.push_back(SRP_MAX_RANGES[axis] / SRP_MAX_SPEED[axis] * 4); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); + } + + double derotator_amplitude = (DEROTATOR_RANGES[1] - DEROTATOR_RANGES[0]) / 2; + double derotator_center = (DEROTATOR_RANGES[0] + DEROTATOR_RANGES[1]) / 2; + // Derotator period + period.push_back(80); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[6]); + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[6] * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream SRPProgramTrackFile; + SRPProgramTrackFile.open(directory + "/SRP/trajectory.txt", ios::out); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, SRPCoordinates) << std::endl; + + ofstream DerotatorProgramTrackFile; + DerotatorProgramTrackFile.open(directory + "/DEROTATOR/trajectory.txt", ios::out); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, DerotatorCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 6; axis++) + { + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); + } + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[6]) * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, SRPCoordinates) << std::endl; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, DerotatorCoordinates) << std::endl; + } + + SRPProgramTrackFile.close(); + DerotatorProgramTrackFile.close(); + statusThread.join(); +} + +TEST_F(CombinedProgramTrackTest, SineWaveSeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPProgramTrackFile; + SRPProgramTrackFile.open(directory + "/SRP/trajectory.txt", ios::out); + + ofstream DerotatorProgramTrackFile; + DerotatorProgramTrackFile.open(directory + "/DEROTATOR/trajectory.txt", ios::out); + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "Starting new trajectory with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> SRPCoordinates = SRPStartingCoordinates; + std::vector<double> DerotatorCoordinates = DerotatorStartingCoordinates; + + std::vector<double> phase_shift; + std::vector<double> period; + for(size_t axis = 0; axis < 6; axis++) + { + period.push_back(SRP_MAX_RANGES[axis] / SRP_MAX_SPEED[axis] * 4); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); + } + + double derotator_amplitude = (DEROTATOR_RANGES[1] - DEROTATOR_RANGES[0]) / 2; + double derotator_center = (DEROTATOR_RANGES[0] + DEROTATOR_RANGES[1]) / 2; + // Derotator period + period.push_back(80); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[6]); + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin(phase_shift[6] * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, SRPCoordinates) << std::endl; + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(start_time, DerotatorCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(SRPStatus["SRP_OPERATIVE_MODE"]), 50); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 6; axis++) + { + SRPCoordinates[axis] = SRP_MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); + } + DerotatorCoordinates[0] = derotator_center + derotator_amplitude * sin((time_delta + phase_shift[6]) * 2 * M_PI / period[6]); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, SRPCoordinates)); + EXPECT_EQ(std::get<std::string>(SRPStatus["OUTPUT"]), "GOOD"); + SRPProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, SRPCoordinates) << std::endl; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, DerotatorCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + DerotatorProgramTrackFile << CombinedProgramTrackTest::serializeCoordinates(next_expected_time, DerotatorCoordinates) << std::endl; + + if(point_id == 1000) + break; + } + } + + SRPProgramTrackFile.close(); + DerotatorProgramTrackFile.close(); + statusThread.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp new file mode 100644 index 000000000..6f5f719da --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/DerotatorProgramTrackTest.cpp @@ -0,0 +1,495 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif +#define SOCKET_TIMEOUT 0.5 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 5 +#define EPSILON 0.00001 +#define STATUS_PERIOD 0.01 +#define RANGES std::vector<double>{ 10.0, 50.0 } +#define DEROTATOR std::string("GFR1") + +std::atomic<bool> terminate = false; + + +class DerotatorProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> startingCoordinates = { RANGES[0] }; + std::string directory; + std::thread statusThread; + + static void printStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string status = serializeStatus(DerotatorStatus); + + statusFile << status << std::endl; + if(counter % (long unsigned int)(0.1 / STATUS_PERIOD) == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap DerotatorStatus) + { + std::vector<double> currentCoordinates; + std::vector<std::string> coordinates = { DEROTATOR + "_ROTATION" }; + + for(std::string coordinate : coordinates) + { + auto value = DerotatorStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + sign = sign / abs(sign); + double offset_to_add = 3.3 * TIMEGAP; + coordinates[axis_to_move] += sign * offset_to_add; + if(sign > 0) + { + coordinates[axis_to_move] = std::min(RANGES[1], coordinates[axis_to_move]); + } + else + { + coordinates[axis_to_move] = std::max(RANGES[0], coordinates[axis_to_move]); + } + if(coordinates[axis_to_move] == RANGES[0] || coordinates[axis_to_move] == RANGES[1]) + return true; + return false; + } + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_EQ(std::get<std::string>(MSStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(MSStatus["CONTROL"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["POWER"]), 1); + EXPECT_EQ(std::get<long>(MSStatus["EMERGENCY"]), 2); + EXPECT_EQ(std::get<long>(MSStatus["ENABLED"]), 1); + std::cout << "OK." << std::endl; + + SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending initial Derotator STATUS command..."; + + SRTMinorServoAnswerMap DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_STATUS"]), 1); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_BLOCK"]), 2); + std::cout << "OK." << std::endl; + + for(iterator = DerotatorStatus.begin(); iterator != DerotatorStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + } + + std::cout << "Sending derotator to the initial position..." << std::endl; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("Derotatore" + DEROTATOR, startingCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + signal(SIGINT, DerotatorProgramTrackTest::sigintHandler); + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::cout << serializeStatus(DerotatorStatus) << std::endl; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + while(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]) != 40); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 40); + + std::cout << "OK." << std::endl; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/DEROTATOR"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + statusThread = std::thread(&DerotatorProgramTrackTest::printStatus, directory + "/status.txt"); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(DerotatorProgramTrackTest, ContinuousMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + std::string command = SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time); + std::cout << command << std::endl; + DerotatorStatus = socket.sendCommand(command); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + while(!terminate) + { + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 5) + { + idle_count = 0; + idle = false; + } + } + else if(moveAxis(programTrackCoordinates, 0, sign)) + { + sign *= -1; + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + if(round(programTrackCoordinates[0] * 100) == 10 && sign == 1) + { + programTrackCoordinates[0] = RANGES[0]; + break; + } + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(DerotatorProgramTrackTest, SineWaveMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + double phase_shift = (double)std::rand() / RAND_MAX * 60; + double amplitude = (RANGES[1] - RANGES[0]) / 2; + double center = (RANGES[0] + RANGES[1]) / 2; + double period = 80; + programTrackCoordinates[0] = center + amplitude * sin(phase_shift * 2 * M_PI / period); + + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + programTrackCoordinates[0] = center + amplitude * sin((time_delta + phase_shift) * 2 * M_PI / period); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(DerotatorProgramTrackTest, SeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + bool immediate = true; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + //if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP || immediate) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, 0, sign)) + { + sign *= -1; + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + //immediate = immediate ? false : true; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(DerotatorProgramTrackTest, RapidTrajectoryTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap DerotatorStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + int sign = -1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + + while(!terminate) + { + std::vector<double> programTrackCoordinates = startingCoordinates; + programTrackCoordinates[0] = RANGES[1]; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + EXPECT_EQ(std::get<long>(DerotatorStatus[DEROTATOR + "_OPERATIVE_MODE"]), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == (ADVANCE_TIMEGAP * 2) / TIMEGAP) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, 0, sign)) + { + idle = true; + } + + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("Derotatore" + DEROTATOR, trajectory_id, point_id, programTrackCoordinates)); + EXPECT_EQ(std::get<std::string>(DerotatorStatus["OUTPUT"]), "GOOD"); + } + + //std::cout << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << DerotatorProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index cbc49a447..97a093eab 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -1,11 +1,10 @@ # CPP UNIT TESTING SETUP #-------------- -# GTEST_HOME=/usr/local/include/gtest -# GMOCK_HOME=/usr/local/include/gmock -# GTEST_LIBS=gtest gtest_main +GTEST_HOME=/usr/local/include/gtest +GMOCK_HOME=/usr/local/include/gmock +GTEST_LIBS=gtest gtest_main -# USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) -# USER_LIBS=C++ pthread +USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # END OF CPP UNIT TESTING SETUP #--------------------- @@ -15,9 +14,26 @@ # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -# EXECUTABLES_L = unittest -# unittest_OBJECTS = unittest -# unittest_LIBS = $(GTEST_LIBS) +EXECUTABLES_L = SRPProgramTrackTest #DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest + +SRPProgramTrackTest_OBJECTS = SRPProgramTrackTest +SRPProgramTrackTest_CFLAGS = -std=c++17 -fconcepts +SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem + +DerotatorProgramTrackTest_OBJECTS = DerotatorProgramTrackTest +DerotatorProgramTrackTest_CFLAGS = -std=c++17 +DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +DerotatorProgramTrackTest_LDFLAGS = -lstdc++ -lpthread + +CombinedProgramTrackTest_OBJECTS = CombinedProgramTrackTest +CombinedProgramTrackTest_CFLAGS = -std=c++17 +CombinedProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +CombinedProgramTrackTest_LDFLAGS = -lstdc++ -lpthread + +ReadStatusOnlyTest_OBJECTS = ReadStatusOnlyTest +ReadStatusOnlyTest_CFLAGS = -std=c++17 +ReadStatusOnlyTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +ReadStatusOnlyTest_LDFLAGS = -lstdc++ -lpthread # END OF CUSTOMIZATION # do not edit below this line @@ -39,7 +55,11 @@ endif do_unit: all @echo "running cpp unit tests" - ../bin/unittest --gtest_output=xml:results/cppunittest.xml + ../bin/SRTMinorServoSocketTest --gtest_output=xml:results/cppSRTMinorServoSocketTest.xml + ../bin/SRPProgramTrackTest --gtest_output=xml:results/cppSRPProgramTrackTest.xml + ../bin/DerotatorProgramTrackTest --gtest_output=xml:results/cppDerotatorProgramTrackTest.xml + ../bin/CombinedProgramTrackTest --gtest_output=xml:results/cppCombinedProgramTrackTest.xml + ../bin/ReadStatusOnlyTest --gtest_output=xml:results/cppReadStatusOnlyTest.xml do_pyunit: @echo "running python unit tests" diff --git a/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp b/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp new file mode 100644 index 000000000..833348bba --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/ReadStatusOnlyTest.cpp @@ -0,0 +1,216 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +//#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif + +#define SOCKET_TIMEOUT 0.5 +#define STATUS_PERIOD 0.1 +#define SRP_COORDINATES std::vector<std::string>{ "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" } +#define DEROTATOR std::string("GFR1") +#define DEROTATOR_COORDINATES std::vector<std::string>{ DEROTATOR + "_ROTATION" } + + +std::atomic<bool> terminate = false; + + +class ReadStatusOnlyTest : public ::testing::Test +{ +protected: + std::string directory; + + static void printStatus(std::string directory, bool timestamp_only=false) + { + SRTMinorServoSocket& socket = SRTMinorServoSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus, DerotatorStatus; + + ofstream SRPStatusFile, DerotatorStatusFile; + SRPStatusFile.open(directory + "/SRP/status.txt", ios::out); + SRPStatusFile << std::fixed << std::setprecision(6); + DerotatorStatusFile.open(directory + "/DEROTATOR/status.txt", ios::out); + DerotatorStatusFile << std::fixed << std::setprecision(6); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + DerotatorStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("Derotatore" + DEROTATOR)); + std::string SRPStringStatus = serializeSRPStatus(SRPStatus); + std::string DerotatorStringStatus = serializeDerotatorStatus(DerotatorStatus); + + if(timestamp_only) + { + SRPStatusFile << std::get<double>(SRPStatus["TIMESTAMP"]) << std::endl; + DerotatorStatusFile << std::get<double>(DerotatorStatus["TIMESTAMP"]) << std::endl; + } + else + { + SRPStatusFile << SRPStringStatus << std::endl; + DerotatorStatusFile << DerotatorStringStatus << std::endl; + } + + if(counter % 10 == 0) + { + std::cout << SRPStringStatus << std::endl; + std::cout << DerotatorStringStatus << std::endl; + } + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + SRPStatusFile.close(); + DerotatorStatusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeSRPStatus(SRTMinorServoAnswerMap map) + { + std::string status = serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, SRP_COORDINATES)); + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeDerotatorStatus(SRTMinorServoAnswerMap map) + { + return serializeCoordinates(std::get<double>(map["TIMESTAMP"]), getCoordinates(map, DEROTATOR_COORDINATES)); + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus, std::vector<std::string> coordinates) + { + std::vector<double> currentCoordinates; + + for(std::string coordinate : coordinates) + { + auto value = SRPStatus[coordinate]; + + try + { + currentCoordinates.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentCoordinates.push_back(200.0); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + auto value = SRPStatus[elongation]; + + try + { + currentElongations.push_back(std::get<double>(value)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << ex.what() << ", variant index: " << value.index() << std::endl; + currentElongations.push_back(10000.0); + } + } + + return currentElongations; + } + + void SetUp() override + { + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoSocket::getInstance(ADDRESS, PORT, SOCKET_TIMEOUT); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + signal(SIGINT, ReadStatusOnlyTest::sigintHandler); + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/COMBINED"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + boost::filesystem::create_directory(directory + "/SRP"); + boost::filesystem::create_directory(directory + "/DEROTATOR"); + } + + void TearDown() override + { + SRTMinorServoSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(ReadStatusOnlyTest, ReadStatusTest) +{ + ReadStatusOnlyTest::printStatus(directory, true); +} diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp new file mode 100644 index 000000000..e1033748e --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -0,0 +1,632 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoTestingSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +//#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif +#define NOISE_THRESHOLD 1 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 2.6 +#define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } +#define MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } +#define MAX_SPEED std::vector<double>{ 4, 4, 4, 0.04, 0.04, 0.04 } +#define STATUS_PERIOD 0.01 + +std::atomic<bool> terminate = false; + +using namespace MinorServo; +using namespace IRA; + + +class SRPProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> startingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + std::string directory; + std::thread statusThread; + + static void printStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + std::string status = serializeStatus(SRPStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeStatus(SRTMinorServoAnswerMap map) + { + std::string status; + try + { + status = serializeCoordinates(CIRATools::ACSTime2UNIXEpoch(map.getTimestamp()), getCoordinates(map)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad timestamp!" << std::endl; + + /*SRTMinorServoAnswerMap::iterator iterator; + for(iterator = map.begin(); iterator != map.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + } + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentCoordinates; + std::vector<std::string> coordinates = { "SRP_TX", "SRP_TY", "SRP_TZ", "SRP_RX", "SRP_RY", "SRP_RZ" }; + + for(std::string coordinate : coordinates) + { + try + { + currentCoordinates.push_back(SRPStatus.get<double>(coordinate)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad floating point coordinate:" << SRPStatus.get<long>(coordinate) << std::endl; + currentCoordinates.push_back(double(SRPStatus.get<long>(coordinate))); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap SRPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "SRP_ELONG_Z1", "SRP_ELONG_Z2", "SRP_ELONG_Z3", "SRP_ELONG_Y1", "SRP_ELONG_Y2", "SRP_ELONG_X1" }; + + for(std::string elongation : elongations) + { + try + { + currentElongations.push_back(SRPStatus.get<double>(elongation)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad floating point elongation:" << SRPStatus.get<long>(elongation) << std::endl; + currentElongations.push_back(double(SRPStatus.get<long>(elongation))); + } + } + + return currentElongations; + } + + static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + double starting_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + double offset_to_add = MAX_SPEED[axis_to_move] / 5; + coordinates[axis_to_move] += sign * offset_to_add; + double ending_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + if(starting_sign == -1 && ending_sign >= 0) + { + // Zero crossed + coordinates[axis_to_move] = 0.0; + return false; + } + if(fabs(coordinates[axis_to_move]) >= MAX_RANGES[axis_to_move]) + { + coordinates[axis_to_move] = sign * MAX_RANGES[axis_to_move]; + return true; + } + return false; + } + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + try + { + SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT, 0.2); + std::cout << "Socket connected." << std::endl; + } + catch(ComponentErrors::SocketErrorExImpl& ex) + { + if(ex.getData("Reason") == std::string("Cannot connect the socket.").c_str()) + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + else + FAIL() << "Unexpected failure." << std::endl; + } + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_TRUE(MSStatus.checkOutput()); + EXPECT_EQ(MSStatus.get<long>("CONTROL"), 1); + //EXPECT_EQ(MSStatus.get<long>("POWER"), 1); + EXPECT_EQ(MSStatus.get<long>("EMERGENCY"), 2); + //EXPECT_EQ(MSStatus.get<long>("ENABLED"), 1); + std::cout << "OK." << std::endl; + + /*SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + + std::cout << "Sending initial SRP STATUS command..."; + + SRTMinorServoAnswerMap SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + //EXPECT_EQ(SRPStatus.get<long>("SRP_STATUS"), 1); + EXPECT_EQ(SRPStatus.get<long>("SRP_BLOCK"), 2); + std::cout << "OK." << std::endl; + + /*for(iterator = SRPStatus.begin(); iterator != SRPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + + std::cout << "Sending all axes to the starting position..." << std::endl; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("SRP", startingCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + + signal(SIGINT, SRPProgramTrackTest::sigintHandler); + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + std::cout << serializeStatus(SRPStatus) << std::endl; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + while(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE") != 40); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 40); + + std::cout << "OK." << std::endl; + + startingCoordinates = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/SRP"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + statusThread = std::thread(&SRPProgramTrackTest::printStatus, directory + "/status.txt"); + } + + void TearDown() override + { + SRTMinorServoTestingSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(SRPProgramTrackTest, ContinuousMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(SRPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + while(!terminate) + { + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 5) + { + idle_count = 0; + idle = false; + } + } + else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + break; + } + } + + axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, AllAxesMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(SRPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + std::vector<int> sign = { 1, 1, 1 }; + std::vector<unsigned int> idle_count = { 0, 0, 0 }; + std::vector<bool> idle = { false, false, false }; + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + if(!idle[axis]) + { + if(moveAxis(programTrackCoordinates, axis, sign[axis])) + { + sign[axis] *= -1; + idle[axis] = true; + } + } + else + { + idle_count[axis]++; + if(idle_count[axis] == 5) + { + idle_count[axis] = 0; + idle[axis] = false; + } + } + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + for(size_t axis = 0; axis < 3; axis++) + { + if(round(programTrackCoordinates[axis] * 100) == 0 && sign[axis] == 1) + { + programTrackCoordinates[axis] = 0.0; + } + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, SineWaveMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + std::vector<double> phase_shift; + std::vector<double> period; + for(size_t axis = 0; axis < 6; axis++) + { + double period_multiplier = axis < 3 ? 4 : 4; + period.push_back(MAX_RANGES[axis] / MAX_SPEED[axis] * period_multiplier); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin(phase_shift[axis] * 2 * M_PI / period[axis]); + } + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(SRPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 6; axis++) + { + programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, SeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + bool immediate = true; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(SRPStatus.checkOutput()); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == (ADVANCE_TIMEGAP / TIMEGAP) || immediate) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + else if(programTrackCoordinates[axis_to_move] == 0.0 && sign == 1) + { + axis_to_move == 5 ? axis_to_move = 0 : axis_to_move++; + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + } + + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + //immediate = immediate ? false : true; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(SRPProgramTrackTest, RapidTrajectoryTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap SRPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 2; //Always Z + int sign = -1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + + while(!terminate) + { + std::vector<double> programTrackCoordinates = startingCoordinates; + programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(SRPStatus.checkOutput()); + programTrackFile << SRPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("SRP")); + EXPECT_TRUE(SRPStatus.checkOutput()); + EXPECT_EQ(SRPStatus.get<unsigned int>("SRP_OPERATIVE_MODE"), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + idle = true; + } + + SRPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("SRP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(SRPStatus.checkOutput()); + } + + //std::cout << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << SRPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py new file mode 100755 index 000000000..87127cccb --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotCombined.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +srp_status_time = [] +derotator_status_time = [] +status_tx = [] +status_ty = [] +status_tz = [] +status_rx = [] +status_ry = [] +status_rz = [] +status_rotation = [] +starttime = None + +with open(os.path.join(arguments.directory, 'SRP', 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + srp_status_time.append(float(args[0]) - starttime) + status_tx.append(float(args[1])) + status_ty.append(float(args[2])) + status_tz.append(float(args[3])) + status_rx.append(float(args[4])) + status_ry.append(float(args[5])) + status_rz.append(float(args[6])) + +with open(os.path.join(arguments.directory, 'DEROTATOR', 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + derotator_status_time.append(float(args[0]) - starttime) + status_rotation.append(float(args[1])) + +trajectory_time = [] +trajectory_tx = [] +trajectory_ty = [] +trajectory_tz = [] +trajectory_rx = [] +trajectory_ry = [] +trajectory_rz = [] +trajectory_rotation = [] + +with open(os.path.join(arguments.directory, 'SRP', 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_tx.append(float(args[1])) + trajectory_ty.append(float(args[2])) + trajectory_tz.append(float(args[3])) + trajectory_rx.append(float(args[4])) + trajectory_ry.append(float(args[5])) + trajectory_rz.append(float(args[6])) + +with open(os.path.join(arguments.directory, 'DEROTATOR', 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_rotation.append(float(args[1])) + +fig, axs = plt.subplots(7, sharex=True) +fig.canvas.manager.set_window_title('Program Track Positions') +fig.suptitle('Program Track Positions') + +axs[0].plot(srp_status_time, status_tx, 'r') +axs[0].plot(trajectory_time, trajectory_tx, 'b') +axs[0].set_ylabel('tx (mm)') +axs[0].sharey(axs[1]) + +axs[1].plot(srp_status_time, status_ty, 'r') +axs[1].plot(trajectory_time, trajectory_ty, 'b') +axs[1].set_ylabel('ty (mm)') +axs[1].sharey(axs[2]) + +axs[2].plot(srp_status_time, status_tz, 'r') +axs[2].plot(trajectory_time, trajectory_tz, 'b') +axs[2].set_ylabel('tz (mm)') + +axs[3].plot(srp_status_time, status_rx, 'r') +axs[3].plot(trajectory_time, trajectory_rx, 'b') +axs[3].set_ylabel('rx (deg)') +axs[3].sharey(axs[4]) + +axs[4].plot(srp_status_time, status_ry, 'r') +axs[4].plot(trajectory_time, trajectory_ry, 'b') +axs[4].set_ylabel('ry (deg)') +axs[4].sharey(axs[5]) + +axs[5].plot(srp_status_time, status_rz, 'r') +axs[5].plot(trajectory_time, trajectory_rz, 'b') +axs[5].set_ylabel('rz (deg)') + +axs[6].plot(derotator_status_time, status_rotation, 'r') +axs[6].plot(trajectory_time, trajectory_rotation, 'b') +axs[6].set_ylabel('derot (deg)') +axs[6].set_xlabel('time (s)') + + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +try: + plt.show() +except KeyboardInterrupt: + pass diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py new file mode 100755 index 000000000..649ae367a --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotDerotatorTrajectory.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +status_time = [] +status_rotation = [] +starttime = None + +with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + status_time.append(float(args[0]) - starttime) + status_rotation.append(float(args[1])) + +trajectory_time = [] +trajectory_rotation = [] + +with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_rotation.append(float(args[1])) + +#plt.canvas.manager.set_window_title('Derotator positions') +plt.suptitle('Derotator positions') +plt.plot(status_time, status_rotation, 'r') +plt.plot(trajectory_time, trajectory_rotation, 'b') +plt.ylabel('rot (deg)') +plt.xlabel('time (sec)') + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +try: + plt.show() +except KeyboardInterrupt: + pass diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py new file mode 100755 index 000000000..e2f39fe77 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotSRPTrajectories.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +status_time = [] +status_tx = [] +status_ty = [] +status_tz = [] +status_rx = [] +status_ry = [] +status_rz = [] +status_ez1 = [] +status_ez2 = [] +status_ez3 = [] +status_ey1 = [] +status_ey2 = [] +status_ex1 = [] +starttime = None + +with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + status_time.append(float(args[0]) - starttime) + status_tx.append(float(args[1])) + status_ty.append(float(args[2])) + status_tz.append(float(args[3])) + status_rx.append(float(args[4])) + status_ry.append(float(args[5])) + status_rz.append(float(args[6])) + status_ez1.append(float(args[7])) + status_ez2.append(float(args[8])) + status_ez3.append(float(args[9])) + status_ey1.append(float(args[10])) + status_ey2.append(float(args[11])) + status_ex1.append(float(args[12])) + +trajectory_time = [] +trajectory_tx = [] +trajectory_ty = [] +trajectory_tz = [] +trajectory_rx = [] +trajectory_ry = [] +trajectory_rz = [] + +with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_tx.append(float(args[1])) + trajectory_ty.append(float(args[2])) + trajectory_tz.append(float(args[3])) + trajectory_rx.append(float(args[4])) + trajectory_ry.append(float(args[5])) + trajectory_rz.append(float(args[6])) + +fig = plt.figure() +fig.canvas.manager.set_window_title('SRP Positions') +fig.suptitle('SRP Positions') + +gs = fig.add_gridspec(6, 2, hspace=0) +((tx, ex1), (ty, ey1), (tz, ey2), (rx, ez1), (ry, ez2), (rz, ez3)) = gs.subplots(sharex=True) + +tx.plot(status_time, status_tx, 'r') +tx.plot(trajectory_time, trajectory_tx, 'b') +tx.set_ylabel('tx (mm)') +tx.sharey(ty) + +ty.plot(status_time, status_ty, 'r') +ty.plot(trajectory_time, trajectory_ty, 'b') +ty.set_ylabel('ty (mm)') +ty.sharey(tz) + +tz.plot(status_time, status_tz, 'r') +tz.plot(trajectory_time, trajectory_tz, 'b') +tz.set_ylabel('tz (mm)') +tz.sharey(ex1) + +rx.plot(status_time, status_rx, 'r') +rx.plot(trajectory_time, trajectory_rx, 'b') +rx.set_ylabel('rx (deg)') +rx.sharey(ry) + +ry.plot(status_time, status_ry, 'r') +ry.plot(trajectory_time, trajectory_ry, 'b') +ry.set_ylabel('ry (deg)') +ry.sharey(rz) + +rz.plot(status_time, status_rz, 'r') +rz.plot(trajectory_time, trajectory_rz, 'b') +rz.set_ylabel('rz (deg)') +rz.set_xlabel('time (s)') + + +ex1.plot(status_time, status_ex1, 'g') +ex1.set_ylabel('ex1 (mm)') +ex1.sharey(ey1) + +ey1.plot(status_time, status_ey1, 'g') +ey1.set_ylabel('ey1 (mm)') +ey1.sharey(ey2) + +ey2.plot(status_time, status_ey2, 'g') +ey2.set_ylabel('ey2 (mm)') +ey2.sharey(ez1) + +ez1.plot(status_time, status_ez1, 'g') +ez1.set_ylabel('ez1 (mm)') +ez1.sharey(ez2) + +ez2.plot(status_time, status_ez2, 'g') +ez2.set_ylabel('ez2 (mm)') +ez2.sharey(ez3) + +ez3.plot(status_time, status_ez3, 'g') +ez3.set_ylabel('ez3 (mm)') +ez3.set_xlabel('time (s)') + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +try: + plt.show() +except KeyboardInterrupt: + pass diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/MinorServo.xsd b/SRT/Servers/SRTOldMinorServo/config/CDB/schemas/MinorServo.xsd similarity index 100% rename from SRT/Servers/SRTMinorServo/config/CDB/schemas/MinorServo.xsd rename to SRT/Servers/SRTOldMinorServo/config/CDB/schemas/MinorServo.xsd diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/derotator.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/derotator.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/derotator.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/derotator.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/icd.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/icd.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/icd.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/icd.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/icd_bus.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/icd_bus.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/icd_bus.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/icd_bus.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/derotator/sensor.pdf b/SRT/Servers/SRTOldMinorServo/doc/derotator/sensor.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/derotator/sensor.pdf rename to SRT/Servers/SRTOldMinorServo/doc/derotator/sensor.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/minor_servo/gimbal.pdf b/SRT/Servers/SRTOldMinorServo/doc/minor_servo/gimbal.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/minor_servo/gimbal.pdf rename to SRT/Servers/SRTOldMinorServo/doc/minor_servo/gimbal.pdf diff --git a/SRT/Servers/SRTMinorServo/doc/minor_servo/minor_servo_system.pdf b/SRT/Servers/SRTOldMinorServo/doc/minor_servo/minor_servo_system.pdf similarity index 100% rename from SRT/Servers/SRTMinorServo/doc/minor_servo/minor_servo_system.pdf rename to SRT/Servers/SRTOldMinorServo/doc/minor_servo/minor_servo_system.pdf diff --git a/SRT/Servers/SRTMinorServo/include/DerotatorImpl.h b/SRT/Servers/SRTOldMinorServo/include/DerotatorImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DerotatorImpl.h rename to SRT/Servers/SRTOldMinorServo/include/DerotatorImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOASConfiguration.h b/SRT/Servers/SRTOldMinorServo/include/DevIOASConfiguration.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOASConfiguration.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOASConfiguration.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOActualSetup.h b/SRT/Servers/SRTOldMinorServo/include/DevIOActualSetup.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOActualSetup.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOActualSetup.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOElevationTrack.h b/SRT/Servers/SRTOldMinorServo/include/DevIOElevationTrack.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOElevationTrack.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOElevationTrack.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOMotionInfo.h b/SRT/Servers/SRTOldMinorServo/include/DevIOMotionInfo.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOMotionInfo.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOMotionInfo.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOParking.h b/SRT/Servers/SRTOldMinorServo/include/DevIOParking.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOParking.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOParking.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOReady.h b/SRT/Servers/SRTOldMinorServo/include/DevIOReady.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOReady.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOReady.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOScanActive.h b/SRT/Servers/SRTOldMinorServo/include/DevIOScanActive.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOScanActive.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOScanActive.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOScanning.h b/SRT/Servers/SRTOldMinorServo/include/DevIOScanning.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOScanning.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOScanning.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOStarting.h b/SRT/Servers/SRTOldMinorServo/include/DevIOStarting.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOStarting.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOStarting.h diff --git a/SRT/Servers/SRTMinorServo/include/DevIOTracking.h b/SRT/Servers/SRTOldMinorServo/include/DevIOTracking.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/DevIOTracking.h rename to SRT/Servers/SRTOldMinorServo/include/DevIOTracking.h diff --git a/SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h b/SRT/Servers/SRTOldMinorServo/include/MSBossConfiguration.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h rename to SRT/Servers/SRTOldMinorServo/include/MSBossConfiguration.h diff --git a/SRT/Servers/SRTMinorServo/include/MSBossPublisher.h b/SRT/Servers/SRTOldMinorServo/include/MSBossPublisher.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSBossPublisher.h rename to SRT/Servers/SRTOldMinorServo/include/MSBossPublisher.h diff --git a/SRT/Servers/SRTMinorServo/include/MSParameters.h b/SRT/Servers/SRTOldMinorServo/include/MSParameters.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MSParameters.h rename to SRT/Servers/SRTOldMinorServo/include/MSParameters.h diff --git a/SRT/Servers/SRTMinorServo/include/MinorServoBossImpl.h b/SRT/Servers/SRTOldMinorServo/include/MinorServoBossImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/MinorServoBossImpl.h rename to SRT/Servers/SRTOldMinorServo/include/MinorServoBossImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/ParkThread.h b/SRT/Servers/SRTOldMinorServo/include/ParkThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/ParkThread.h rename to SRT/Servers/SRTOldMinorServo/include/ParkThread.h diff --git a/SRT/Servers/SRTMinorServo/include/PdoubleSeqDevIO.h b/SRT/Servers/SRTOldMinorServo/include/PdoubleSeqDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/PdoubleSeqDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/PdoubleSeqDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/RequestDispatcher.h b/SRT/Servers/SRTOldMinorServo/include/RequestDispatcher.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/RequestDispatcher.h rename to SRT/Servers/SRTOldMinorServo/include/RequestDispatcher.h diff --git a/SRT/Servers/SRTMinorServo/include/ScanThread.h b/SRT/Servers/SRTOldMinorServo/include/ScanThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/ScanThread.h rename to SRT/Servers/SRTOldMinorServo/include/ScanThread.h diff --git a/SRT/Servers/SRTMinorServo/include/SetupThread.h b/SRT/Servers/SRTOldMinorServo/include/SetupThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SetupThread.h rename to SRT/Servers/SRTOldMinorServo/include/SetupThread.h diff --git a/SRT/Servers/SRTMinorServo/include/SocketListener.h b/SRT/Servers/SRTOldMinorServo/include/SocketListener.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SocketListener.h rename to SRT/Servers/SRTOldMinorServo/include/SocketListener.h diff --git a/SRT/Servers/SRTMinorServo/include/SubsystemStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/SubsystemStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SubsystemStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/SubsystemStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/SubsystemVStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/SubsystemVStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/SubsystemVStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/SubsystemVStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/TrackingThread.h b/SRT/Servers/SRTOldMinorServo/include/TrackingThread.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/TrackingThread.h rename to SRT/Servers/SRTOldMinorServo/include/TrackingThread.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoImpl.h b/SRT/Servers/SRTOldMinorServo/include/WPServoImpl.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoImpl.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoImpl.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoSocket.h b/SRT/Servers/SRTOldMinorServo/include/WPServoSocket.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoSocket.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoSocket.h diff --git a/SRT/Servers/SRTMinorServo/include/WPServoTalker.h b/SRT/Servers/SRTOldMinorServo/include/WPServoTalker.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPServoTalker.h rename to SRT/Servers/SRTOldMinorServo/include/WPServoTalker.h diff --git a/SRT/Servers/SRTMinorServo/include/WPStatusDevIO.h b/SRT/Servers/SRTOldMinorServo/include/WPStatusDevIO.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPStatusDevIO.h rename to SRT/Servers/SRTOldMinorServo/include/WPStatusDevIO.h diff --git a/SRT/Servers/SRTMinorServo/include/WPStatusUpdater.h b/SRT/Servers/SRTOldMinorServo/include/WPStatusUpdater.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPStatusUpdater.h rename to SRT/Servers/SRTOldMinorServo/include/WPStatusUpdater.h diff --git a/SRT/Servers/SRTMinorServo/include/WPUtils.h b/SRT/Servers/SRTOldMinorServo/include/WPUtils.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/WPUtils.h rename to SRT/Servers/SRTOldMinorServo/include/WPUtils.h diff --git a/SRT/Servers/SRTMinorServo/include/libCom.h b/SRT/Servers/SRTOldMinorServo/include/libCom.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/libCom.h rename to SRT/Servers/SRTOldMinorServo/include/libCom.h diff --git a/SRT/Servers/SRTMinorServo/include/macros.def b/SRT/Servers/SRTOldMinorServo/include/macros.def similarity index 100% rename from SRT/Servers/SRTMinorServo/include/macros.def rename to SRT/Servers/SRTOldMinorServo/include/macros.def diff --git a/SRT/Servers/SRTMinorServo/include/utils.h b/SRT/Servers/SRTOldMinorServo/include/utils.h similarity index 100% rename from SRT/Servers/SRTMinorServo/include/utils.h rename to SRT/Servers/SRTOldMinorServo/include/utils.h diff --git a/SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp b/SRT/Servers/SRTOldMinorServo/src/MSBossConfiguration.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp rename to SRT/Servers/SRTOldMinorServo/src/MSBossConfiguration.cpp diff --git a/SRT/Servers/SRTMinorServo/src/MSBossPublisher.cpp b/SRT/Servers/SRTOldMinorServo/src/MSBossPublisher.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MSBossPublisher.cpp rename to SRT/Servers/SRTOldMinorServo/src/MSBossPublisher.cpp diff --git a/SRT/Servers/SRTOldMinorServo/src/Makefile b/SRT/Servers/SRTOldMinorServo/src/Makefile new file mode 100644 index 000000000..6c47bef42 --- /dev/null +++ b/SRT/Servers/SRTOldMinorServo/src/Makefile @@ -0,0 +1,75 @@ +#***************************************** +#----------------------------------------- +# Marco Buttu <mbuttu@oa-cagliari.inaf.it> +#----------------------------------------- +#***************************************** + +PY_PACKAGES = +PY_SCRIPTS = + +# On-Line Database Files +# ---------------------- +CDB_SCHEMAS = MinorServo + +# ---------------------------- +# Libraries (public and local) +# ---------------------------- +LIBRARIES = WPServoImpl MinorServoBossImpl + +WPServoImpl_OBJECTS = WPServoImpl WPServoSocket WPServoTalker RequestDispatcher \ + WPStatusUpdater SocketListener utils libCom WPUtils +WPServoImpl_LIBS = MinorServoStubs IRALibrary ComponentErrors \ + SRTMinorServoLibrary MinorServoErrors + +MinorServoBossImpl_OBJECTS = MinorServoBossImpl utils SetupThread ParkThread \ + TrackingThread ScanThread MSBossPublisher libCom \ + MSBossConfiguration +MinorServoBossImpl_LIBS = MinorServoStubs MinorServoBossStubs SRTMinorServoLibrary \ + ManagmentDefinitionsStubs ManagementErrors \ + IRALibrary ComponentErrors MinorServoErrors acsnc \ + ParserErrors DiscosVersion AntennaDefinitionsStubs MountStubs \ + AntennaBossStubs AntennaErrors ActiveSurfaceBossStubs \ + SRTActiveSurfaceBossStubs MinorServoDefinitionsStubs +# ---------------------------------------------------------------------- +# List of all possible C-sources (used to create automatic dependencies) +# ---------------------------------------------------------------------- +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + + +# ----------------- +# Include Standards +# ----------------- + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + + +# TARGETS +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + $(RM) *~ ../include/*~ ../idl/*~ ../*~ ../../*~ core + $(RM) ../doc/html + $(RM) tmp.txt acsexmplbeans.jar ../doc/abeans.log + $(RM) ../lib/python/site-packages/* + $(RM) $(INTROOT)/lib/python/site-packages/SRTMinorServoTest + $(RM) $(INTROOT)/bin/mscu-runserver + @echo " . . . clean done" + +clean_dist : clean clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + # cp ../doc/html/group__ACSEXMPLDOC.html ../doc/html/main.html + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + +#___oOo___ diff --git a/SRT/Servers/SRTMinorServo/src/MinorServoBossImpl.cpp b/SRT/Servers/SRTOldMinorServo/src/MinorServoBossImpl.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/MinorServoBossImpl.cpp rename to SRT/Servers/SRTOldMinorServo/src/MinorServoBossImpl.cpp diff --git a/SRT/Servers/SRTMinorServo/src/ParkThread.cpp b/SRT/Servers/SRTOldMinorServo/src/ParkThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/ParkThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/ParkThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/RequestDispatcher.cpp b/SRT/Servers/SRTOldMinorServo/src/RequestDispatcher.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/RequestDispatcher.cpp rename to SRT/Servers/SRTOldMinorServo/src/RequestDispatcher.cpp diff --git a/SRT/Servers/SRTMinorServo/src/ScanThread.cpp b/SRT/Servers/SRTOldMinorServo/src/ScanThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/ScanThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/ScanThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/SetupThread.cpp b/SRT/Servers/SRTOldMinorServo/src/SetupThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/SetupThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/SetupThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/SocketListener.cpp b/SRT/Servers/SRTOldMinorServo/src/SocketListener.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/SocketListener.cpp rename to SRT/Servers/SRTOldMinorServo/src/SocketListener.cpp diff --git a/SRT/Servers/SRTMinorServo/src/TrackingThread.cpp b/SRT/Servers/SRTOldMinorServo/src/TrackingThread.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/TrackingThread.cpp rename to SRT/Servers/SRTOldMinorServo/src/TrackingThread.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoImpl.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoImpl.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoImpl.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoImpl.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoSocket.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoSocket.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoSocket.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoSocket.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPServoTalker.cpp b/SRT/Servers/SRTOldMinorServo/src/WPServoTalker.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPServoTalker.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPServoTalker.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPStatusUpdater.cpp b/SRT/Servers/SRTOldMinorServo/src/WPStatusUpdater.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPStatusUpdater.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPStatusUpdater.cpp diff --git a/SRT/Servers/SRTMinorServo/src/WPUtils.cpp b/SRT/Servers/SRTOldMinorServo/src/WPUtils.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/WPUtils.cpp rename to SRT/Servers/SRTOldMinorServo/src/WPUtils.cpp diff --git a/SRT/Servers/SRTMinorServo/src/libCom.cpp b/SRT/Servers/SRTOldMinorServo/src/libCom.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/libCom.cpp rename to SRT/Servers/SRTOldMinorServo/src/libCom.cpp diff --git a/SRT/Servers/SRTMinorServo/src/utils.cpp b/SRT/Servers/SRTOldMinorServo/src/utils.cpp similarity index 100% rename from SRT/Servers/SRTMinorServo/src/utils.cpp rename to SRT/Servers/SRTOldMinorServo/src/utils.cpp diff --git a/SRT/Servers/SRTOldMinorServo/test/Makefile b/SRT/Servers/SRTOldMinorServo/test/Makefile new file mode 100644 index 000000000..cbc49a447 --- /dev/null +++ b/SRT/Servers/SRTOldMinorServo/test/Makefile @@ -0,0 +1,90 @@ +# CPP UNIT TESTING SETUP +#-------------- +# GTEST_HOME=/usr/local/include/gtest +# GMOCK_HOME=/usr/local/include/gmock +# GTEST_LIBS=gtest gtest_main + +# USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) +# USER_LIBS=C++ pthread +# END OF CPP UNIT TESTING SETUP +#--------------------- + +# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as: +# +# EXECTUABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> + +# EXECUTABLES_L = unittest +# unittest_OBJECTS = unittest +# unittest_LIBS = $(GTEST_LIBS) + +# END OF CUSTOMIZATION +# do not edit below this line +#---------------------------- + +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + +# TEST TARGETS +#TODO: unittest(2) discover pyunit + +do_unit: all + @echo "running cpp unit tests" + ../bin/unittest --gtest_output=xml:results/cppunittest.xml + +do_pyunit: + @echo "running python unit tests" + python -m unittest pyunit + +do_functional: + @echo "running python functional tests" + python -m unittest functional + +do_external: + @echo "running python external tests" + python -m unittest external + +clean_test: + rm -f results/*.xml + rm -f functional/*.pyc + rm -f pyunit/*.pyc + rm -f external/*.pyc + +unit: do_unit + @echo " . . . 'unit' done" + +pyunit: do_pyunit + @echo " . . . 'pyunit' done" + +functional: do_functional + @echo " . . . 'functional' done" + +external: do_external + @echo " . . . 'external' done" + +# TARGETS +# ------- +all: do_all + @echo " . . . 'all' done" + +clean : clean_all clean_test + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all clean_test + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @echo " . . . installation done" + diff --git a/SRT/Servers/SRTOldMinorServo/test/external/__init__.py b/SRT/Servers/SRTOldMinorServo/test/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTOldMinorServo/test/functional/__init__.py b/SRT/Servers/SRTOldMinorServo/test/functional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_container_crash.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_container_crash.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_container_crash.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_container_crash.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_failure.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_failure.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_failure.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_failure.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_setup.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_setup.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_setup.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_setup.py diff --git a/SRT/Servers/SRTMinorServo/test/functional/test_setup_after_manual_movement.py b/SRT/Servers/SRTOldMinorServo/test/functional/test_setup_after_manual_movement.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/functional/test_setup_after_manual_movement.py rename to SRT/Servers/SRTOldMinorServo/test/functional/test_setup_after_manual_movement.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/Makefile b/SRT/Servers/SRTOldMinorServo/test/no_auto/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/Makefile rename to SRT/Servers/SRTOldMinorServo/test/no_auto/Makefile diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/05082013.rst b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/05082013.rst similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/05082013.rst rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/05082013.rst diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/plot_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/SRP_linear/test_SRP_linear_movement.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/TODO.rst b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/TODO.rst similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/TODO.rst rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/TODO.rst diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/clean_test.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/clean_test.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/clean_test.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/clean_test.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/command_input.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/command_input.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/command_input.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/command_input.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPosition.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getAxesPosition/test_getAxesPositionSpeed.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/getFromHistory/test_getFromHistory.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_after_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/offsets/testSRP_before_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/parameters.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/parameters.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/parameters.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/parameters.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/plot_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/plot_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/plot_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/plot_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/property/property_sampler.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/property/property_sampler.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/property/property_sampler.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/property/property_sampler.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/sampling_time/test_getstatus_speed.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_checkMinPositioninTime.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_multiple_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_pointingDuringScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_startFocusScanNow.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/scan/testSRP_stopScan.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions1SRP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2PFP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/timed_pos/timed_positions2SRP.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/commissioning/tracking/test_SRP_elevation_tracking.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/performances/get_axes_positions.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/performances/get_axes_positions.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/performances/get_axes_positions.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/performances/get_axes_positions.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/real2virtual.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/real2virtual.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/real2virtual.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/real2virtual.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/send_command.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/send_command.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/send_command.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/send_command.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/simple_talk.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/simple_talk.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/simple_talk.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/simple_talk.py diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/Makefile diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexdata.txt diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/hexlib.h diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/real2virtual.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/hexlib/virtual2real.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw b/SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw rename to SRT/Servers/SRTOldMinorServo/test/no_auto/srp_refsystems/srp_refsystems.pyw diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/virtual2real.c b/SRT/Servers/SRTOldMinorServo/test/no_auto/virtual2real.c similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/virtual2real.c rename to SRT/Servers/SRTOldMinorServo/test/no_auto/virtual2real.c diff --git a/SRT/Servers/SRTMinorServo/test/no_auto/wpservo_test.py b/SRT/Servers/SRTOldMinorServo/test/no_auto/wpservo_test.py similarity index 100% rename from SRT/Servers/SRTMinorServo/test/no_auto/wpservo_test.py rename to SRT/Servers/SRTOldMinorServo/test/no_auto/wpservo_test.py diff --git a/SRT/Servers/SRTOldMinorServo/test/pyunit/__init__.py b/SRT/Servers/SRTOldMinorServo/test/pyunit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/SRT/Servers/SRTOldMinorServo/test/unittest.cpp b/SRT/Servers/SRTOldMinorServo/test/unittest.cpp new file mode 100644 index 000000000..59cb6295f --- /dev/null +++ b/SRT/Servers/SRTOldMinorServo/test/unittest.cpp @@ -0,0 +1,6 @@ +#include "gtest/gtest.h" + +TEST(FakeTest, Success){ + EXPECT_EQ(1, 1); +} + diff --git a/SystemMake/Makefile b/SystemMake/Makefile index fe778c6be..32834ba76 100644 --- a/SystemMake/Makefile +++ b/SystemMake/Makefile @@ -49,7 +49,7 @@ COMMON_SIMULATORS:= TCPGenericProtocolSim ReceiverBoardSim SRT_DOC:=SRTDox SRT_ERRORS:= SRT_INTERFACES:=SRTAntennaInterface SRTActiveSurfaceInterface \ - SRTReceiversInterface + SRTMinorServoInterface SRTReceiversInterface SRT_LIBRARIES:=SRTMinorServoLibrary SRT_SERVERS:=SRTMount SRTActiveSurfaceBoss SRTMinorServo SRTKBandMFReceiver \ SRT7GHzReceiver SRT5GHzReceiver SRTLPBandReceiver SRTPyIFDistributor WeatherStation -- GitLab From d8759752ea2789173be5ab623a129ef3eefc21e6 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 10 Apr 2024 15:19:07 +0000 Subject: [PATCH 101/150] Various updates, see changelog below Fix #861, increased SRP virtual ranges Fix #860, added setupMISTRAL procedure Fix #859, increased fields length for minor servo boss TUI Fix #858, modified SRT telescopePark procedure --- .../src/MinorServoBossTextClient.cpp | 2 +- .../SRP/LookupTables/LookupTables.xml | 18 +++++----- .../DataBlock/PointingModel/PointingModel.xml | 35 +++++++++++++++++++ SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 4 +-- .../StationProcedures/StationProcedures.xml | 23 +++++++++--- .../SRP/LookupTables/LookupTables.xml | 18 +++++----- .../DataBlock/PointingModel/PointingModel.xml | 35 +++++++++++++++++++ .../CDB/alma/MINORSERVO/SRP/SRP.xml | 4 +-- .../StationProcedures/StationProcedures.xml | 23 +++++++++--- 9 files changed, 131 insertions(+), 31 deletions(-) diff --git a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp index c90158e95..9a5baeeab 100644 --- a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp +++ b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp @@ -279,7 +279,7 @@ int main(int argc, char *argv[]) { userInput=new TW::CInputCommand(); /** setting up the properties of the components of the frame controls */ - _TW_SET_COMPONENT(actualSetup_field,18,0,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(actualSetup_field,18,0,20,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); tracking_display->setPosition(CPoint(18,1)); tracking_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL); tracking_display->setFormatFunction(boolFormat,NULL); diff --git a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml index 6869a5c77..0cabed4bb 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -80,18 +80,18 @@ <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> - <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> - <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> - <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> - <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>TX</axis><coefficients>-1.5 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></MISTRAL> <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> - <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></MISTRAL_ASACTIVE> <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> diff --git a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml index 14a8fbca7..dfad02903 100644 --- a/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -174,4 +174,39 @@ <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> </Receiver> +<Receiver> + <receiverCode>MISTRAL</receiverCode> + <phi>90.0</phi> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> + <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> + <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> + <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> + <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> + <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> + <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> + <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> +</Receiver> + </PointingModel> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index eebfba2c7..d48d39ad4 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -11,8 +11,8 @@ virtual_axes="6" max_speed="4, 4, 4, 0.38, 0.38, 0.38" acceleration="8, 8, 8, 0.76, 0.76, 0.76" - min_range="-50, -110, -50, -0.25, -0.25, -0.25" - max_range="50, 110, 50, 0.25, 0.25, 0.25" + min_range="-125, -125, -125, -0.25, -0.25, -0.25" + max_range="125, 125, 125, 0.25, 0.25, 0.25" tracking_delta="1, 1, 1, 1, 1, 1"> <enabled description="All physical axes enabled" /> diff --git a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 4d86ea178..4be2b1e2d 100644 --- a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -119,16 +119,31 @@ </body> </Procedure> +<Procedure name="setupMISTRAL" args="0"> +<body> + antennaSetup=MISTRAL + servoSetup=MISTRAL + receiversSetup=KKG + receiversMode=SINGLEDISH + chooseBackend=TotalPower + initialize=CCG + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d +</body> +</Procedure> + <Procedure name="telescopePark" args="0"> <body> - goTo=180d,89.8d + goTo=*,89.8d + receiversPark + servoPark + asPark waitOnSource antennaStop wait=1 antennaPark - receiversPark - servoPark - asPark logMessage=Telescope is now parked </body> </Procedure> diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml index 6869a5c77..0cabed4bb 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/SRP/LookupTables/LookupTables.xml @@ -80,18 +80,18 @@ <TRI_ASACTIVE> <axis>RY</axis><coefficients>0 </coefficients></TRI_ASACTIVE> <TRI_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></TRI_ASACTIVE> - <MISTRAL> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL> - <MISTRAL> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL> - <MISTRAL> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL> - <MISTRAL> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL> + <MISTRAL> <axis>TX</axis><coefficients>-1.5 </coefficients></MISTRAL> + <MISTRAL> <axis>TY</axis><coefficients>28.256852219272844,-0.002707044952,-0.009870218853,0.000031617958 </coefficients></MISTRAL> + <MISTRAL> <axis>TZ</axis><coefficients>9.530113849340003,-0.169826241752,0.000419997047,0.000003985237 </coefficients></MISTRAL> + <MISTRAL> <axis>RX</axis><coefficients>-0.011392527142374848,-0.0001426193499425,0.000039508844799,-0.000000131010010 </coefficients></MISTRAL> <MISTRAL> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL> <MISTRAL> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL> - <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>38 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>31 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-12.788622422210521 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.005254963341757046 </coefficients></MISTRAL_ASACTIVE> - <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.03611111111111111 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TX</axis><coefficients>-1.5 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TY</axis><coefficients>29.556666666666498,0.263472663139432,-0.018206701940039,0.000072373113855 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>TZ</axis><coefficients>-15.6669651675,1.9293068324,-0.0628990613,0.0007771141,-0.0000032940 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RX</axis><coefficients>-0.0055555555555569409, 0.00014822163433269445, 0.000027586713698, -0.000000077732053 </coefficients></MISTRAL_ASACTIVE> + <MISTRAL_ASACTIVE> <axis>RY</axis><coefficients>-0.036111111111111108 </coefficients></MISTRAL_ASACTIVE> <MISTRAL_ASACTIVE> <axis>RZ</axis><coefficients>0 </coefficients></MISTRAL_ASACTIVE> <CCB> <axis>TX</axis><coefficients>-1.5 </coefficients></CCB> diff --git a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml index 14a8fbca7..dfad02903 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/PointingModel/PointingModel.xml @@ -174,4 +174,39 @@ <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0 </coefficientVal29> </Receiver> +<Receiver> + <receiverCode>MISTRAL</receiverCode> + <phi>90.0</phi> + <coefficientNum00> 1 </coefficientNum00> <coefficientVal00> -2.2956719398 </coefficientVal00> + <coefficientNum01> 0 </coefficientNum01> <coefficientVal01> 0.0 </coefficientVal01> + <coefficientNum02> 1 </coefficientNum02> <coefficientVal02> -0.0056679383 </coefficientVal02> + <coefficientNum03> 1 </coefficientNum03> <coefficientVal03> -0.0074789114 </coefficientVal03> + <coefficientNum04> 1 </coefficientNum04> <coefficientVal04> -0.0008009398 </coefficientVal04> + <coefficientNum05> 1 </coefficientNum05> <coefficientVal05> -0.0015651340 </coefficientVal05> + <coefficientNum06> 1 </coefficientNum06> <coefficientVal06> 0.0572288483 </coefficientVal06> + <coefficientNum07> 1 </coefficientNum07> <coefficientVal07> 0.1136546656 </coefficientVal07> + <coefficientNum08> 0 </coefficientNum08> <coefficientVal08> 0.0 </coefficientVal08> + <coefficientNum09> 0 </coefficientNum09> <coefficientVal09> 0.0 </coefficientVal09> + <coefficientNum10> 1 </coefficientNum10> <coefficientVal10> -0.0004978125 </coefficientVal10> + <coefficientNum11> 0 </coefficientNum11> <coefficientVal11> 0.0 </coefficientVal11> + <coefficientNum12> 1 </coefficientNum12> <coefficientVal12> 0.0002358370 </coefficientVal12> + <coefficientNum13> 1 </coefficientNum13> <coefficientVal13> 0.0000537828 </coefficientVal13> + <coefficientNum14> 0 </coefficientNum14> <coefficientVal14> 0.0 </coefficientVal14> + <coefficientNum15> 0 </coefficientNum15> <coefficientVal15> 0.0 </coefficientVal15> + <coefficientNum16> 0 </coefficientNum16> <coefficientVal16> 0.0 </coefficientVal16> + <coefficientNum17> 0 </coefficientNum17> <coefficientVal17> 0.0 </coefficientVal17> + <coefficientNum18> 0 </coefficientNum18> <coefficientVal18> 0.0 </coefficientVal18> + <coefficientNum19> 0 </coefficientNum19> <coefficientVal19> 0.0 </coefficientVal19> + <coefficientNum20> 0 </coefficientNum20> <coefficientVal20> 0.0 </coefficientVal20> + <coefficientNum21> 0 </coefficientNum21> <coefficientVal21> 0.0 </coefficientVal21> + <coefficientNum22> 0 </coefficientNum22> <coefficientVal22> 0.0 </coefficientVal22> + <coefficientNum23> 0 </coefficientNum23> <coefficientVal23> 0.0 </coefficientVal23> + <coefficientNum24> 0 </coefficientNum24> <coefficientVal24> 0.0 </coefficientVal24> + <coefficientNum25> 0 </coefficientNum25> <coefficientVal25> 0.0 </coefficientVal25> + <coefficientNum26> 0 </coefficientNum26> <coefficientVal26> 0.0 </coefficientVal26> + <coefficientNum27> 0 </coefficientNum27> <coefficientVal27> 0.0 </coefficientVal27> + <coefficientNum28> 0 </coefficientNum28> <coefficientVal28> 0.0 </coefficientVal28> + <coefficientNum29> 0 </coefficientNum29> <coefficientVal29> 0.0 </coefficientVal29> +</Receiver> + </PointingModel> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index eebfba2c7..d48d39ad4 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -11,8 +11,8 @@ virtual_axes="6" max_speed="4, 4, 4, 0.38, 0.38, 0.38" acceleration="8, 8, 8, 0.76, 0.76, 0.76" - min_range="-50, -110, -50, -0.25, -0.25, -0.25" - max_range="50, 110, 50, 0.25, 0.25, 0.25" + min_range="-125, -125, -125, -0.25, -0.25, -0.25" + max_range="125, 125, 125, 0.25, 0.25, 0.25" tracking_delta="1, 1, 1, 1, 1, 1"> <enabled description="All physical axes enabled" /> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 4d86ea178..4be2b1e2d 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -119,16 +119,31 @@ </body> </Procedure> +<Procedure name="setupMISTRAL" args="0"> +<body> + antennaSetup=MISTRAL + servoSetup=MISTRAL + receiversSetup=KKG + receiversMode=SINGLEDISH + chooseBackend=TotalPower + initialize=CCG + device=0 + calOff + restFrequency=0 + azelOffsets=0d,0d +</body> +</Procedure> + <Procedure name="telescopePark" args="0"> <body> - goTo=180d,89.8d + goTo=*,89.8d + receiversPark + servoPark + asPark waitOnSource antennaStop wait=1 antennaPark - receiversPark - servoPark - asPark logMessage=Telescope is now parked </body> </Procedure> -- GitLab From e23651846fe461409b3daa451aa515f254fead44 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Tue, 23 Apr 2024 10:53:42 +0000 Subject: [PATCH 102/150] Added tests for PFP --- SRT/Servers/SRTMinorServo/test/Makefile | 6 +- .../test/PFPProgramTrackTest.cpp | 633 ++++++++++++++++++ .../SRTMinorServo/test/TESTS/.gitignore | 3 + .../test/TESTS/plotPFPTrajectory.py | 65 ++ 4 files changed, 706 insertions(+), 1 deletion(-) create mode 100644 SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp create mode 100644 SRT/Servers/SRTMinorServo/test/TESTS/.gitignore create mode 100755 SRT/Servers/SRTMinorServo/test/TESTS/plotPFPTrajectory.py diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index 97a093eab..e58a7b680 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -14,12 +14,16 @@ USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME) # unittest_OBJECTS = unittest # unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl> -EXECUTABLES_L = SRPProgramTrackTest #DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest +EXECUTABLES_L = SRPProgramTrackTest PFPProgramTrackTest #DerotatorProgramTrackTest CombinedProgramTrackTest ReadStatusOnlyTest SRPProgramTrackTest_OBJECTS = SRPProgramTrackTest SRPProgramTrackTest_CFLAGS = -std=c++17 -fconcepts SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +PFPProgramTrackTest_OBJECTS = PFPProgramTrackTest +PFPProgramTrackTest_CFLAGS = -std=c++17 -fconcepts +PFPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem + DerotatorProgramTrackTest_OBJECTS = DerotatorProgramTrackTest DerotatorProgramTrackTest_CFLAGS = -std=c++17 DerotatorProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem diff --git a/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp new file mode 100644 index 000000000..c96faa26b --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp @@ -0,0 +1,633 @@ +#include "gtest/gtest.h" +#include <iostream> +#include <thread> +#include <chrono> +#include <ctime> +#include <boost/filesystem.hpp> +#include "SRTMinorServoTestingSocket.h" +#include "SRTMinorServoCommandLibrary.h" + +// This address and port are the ones set in the simulator +// In order for the test to properly be executed, the simulator should be launched with the following command: +// discos-simulator -s minor_servo start & +#define SIMULATION +#ifdef SIMULATION + #define ADDRESS std::string("127.0.0.1") + #define PORT 12800 +#else + #define ADDRESS std::string("192.168.200.13") + #define PORT 4758 +#endif +#define NOISE_THRESHOLD 1 +#define TIMEGAP 0.2 +#define ADVANCE_TIMEGAP 2.6 +#define MIN_RANGES std::vector<double>{ -1490, -200, -1 } +#define MAX_RANGES std::vector<double>{ 1490, 50, 76 } +#define MAX_SPEED std::vector<double>{ 25, 5, 0.42 } +#define STATUS_PERIOD 0.01 + +std::atomic<bool> terminate = false; + +using namespace MinorServo; +using namespace IRA; + + +class PFPProgramTrackTest : public ::testing::Test +{ +protected: + std::vector<double> startingCoordinates = { 0.0, 0.0, 0.0 }; + std::string directory; + std::thread statusThread; + + static void printStatus(std::string filename) + { + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + + ofstream statusFile; + statusFile.open(filename, ios::out); + + long unsigned int counter = 0; + + double tn = CIRATools::getUNIXEpoch(); + + while(!terminate) + { + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + std::string status = serializeStatus(PFPStatus); + + statusFile << status << std::endl; + if(counter % 10 == 0) + std::cout << status << std::endl; + counter++; + + tn += STATUS_PERIOD; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, tn - CIRATools::getUNIXEpoch())))); + } + + statusFile.close(); + } + + static void sigintHandler(int sig_num) + { + std::cout << std::endl << "Terminating..." << std::endl; + terminate = true; + } + + static std::string serializeStatus(SRTMinorServoAnswerMap map) + { + std::string status; + try + { + status = serializeCoordinates(CIRATools::ACSTime2UNIXEpoch(map.getTimestamp()), getCoordinates(map)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad timestamp!" << std::endl; + + /*SRTMinorServoAnswerMap::iterator iterator; + for(iterator = map.begin(); iterator != map.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + } + status += serializeElongations(getElongations(map)); + return status; + } + + static std::string serializeCoordinates(double timestamp, std::vector<double> coordinates) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6) << timestamp; + for(double coordinate : coordinates) + stream << "\t" << coordinate; + return stream.str(); + } + + static std::string serializeElongations(std::vector<double> elongations) + { + std::stringstream stream; + stream << std::fixed << std::setprecision(6); + for(double elongation : elongations) + stream << "\t" << elongation; + return stream.str(); + } + + static std::vector<double> getCoordinates(SRTMinorServoAnswerMap PFPStatus) + { + std::vector<double> currentCoordinates; + std::vector<std::string> coordinates = { "PFP_TX", "PFP_TZ", "PFP_RTHETA" }; + + for(std::string coordinate : coordinates) + { + try + { + currentCoordinates.push_back(PFPStatus.get<double>(coordinate)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad floating point coordinate:" << PFPStatus.get<long>(coordinate) << std::endl; + currentCoordinates.push_back(double(PFPStatus.get<long>(coordinate))); + } + } + + return currentCoordinates; + } + + static std::vector<double> getElongations(SRTMinorServoAnswerMap PFPStatus) + { + std::vector<double> currentElongations; + std::vector<std::string> elongations = { "PFP_ELONG_X", "PFP_ELONG_Z_MASTER", "PFP_ELONG_Z_SLAVE", "PFP_ELONG_THETA_MASTER", "PFP_ELONG_THETA_SLAVE" }; + + for(std::string elongation : elongations) + { + try + { + currentElongations.push_back(PFPStatus.get<double>(elongation)); + } + catch(std::bad_variant_access const& ex) + { + std::cout << "Bad floating point elongation:" << PFPStatus.get<long>(elongation) << std::endl; + currentElongations.push_back(double(PFPStatus.get<long>(elongation))); + } + } + + return currentElongations; + } + + static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + { + double starting_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + double offset_to_add = MAX_SPEED[axis_to_move] / 5; + coordinates[axis_to_move] += sign * offset_to_add; + double ending_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + if(starting_sign == -1 && ending_sign >= 0) + { + // Zero crossed + coordinates[axis_to_move] = 0.0; + return false; + } + if(coordinates[axis_to_move] >= MAX_RANGES[axis_to_move]) + { + coordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + return true; + } + else if(coordinates[axis_to_move] <= MIN_RANGES[axis_to_move]) + { + coordinates[axis_to_move] = MIN_RANGES[axis_to_move]; + return true; + } + return false; + } + + void SetUp() override + { + srand((int)CIRATools::getUNIXEpoch()); + std::cout << std::fixed << std::setprecision(6); + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(ADDRESS, PORT, 0.2); + if(!socket.isConnected()) + { + FAIL() << "Socket failed to connect. Check if the simulator or the hardware can be reached." << std::endl; + } + + std::cout << "Sending MS STATUS command..."; + + SRTMinorServoAnswerMap MSStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status()); + EXPECT_TRUE(MSStatus.checkOutput()); + EXPECT_EQ(MSStatus.get<long>("CONTROL"), 1); + //EXPECT_EQ(MSStatus.get<long>("POWER"), 1); + EXPECT_EQ(MSStatus.get<long>("EMERGENCY"), 2); + //EXPECT_EQ(MSStatus.get<long>("ENABLED"), 1); + std::cout << "OK." << std::endl; + + /*SRTMinorServoAnswerMap::iterator iterator; + for(iterator = MSStatus.begin(); iterator != MSStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + + std::cout << "Sending initial PFP STATUS command..."; + + SRTMinorServoAnswerMap PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + //EXPECT_EQ(PFPStatus.get<long>("PFP_STATUS"), 1); + EXPECT_EQ(PFPStatus.get<long>("PFP_BLOCK"), 2); + std::cout << "OK." << std::endl; + + /*for(iterator = PFPStatus.begin(); iterator != PFPStatus.end(); ++iterator) + { + std::visit([iterator](const auto& var) mutable { std::cout << iterator->first << ": " << var << std::endl; }, iterator->second); + }*/ + + std::cout << "Sending all axes to the starting position..." << std::endl; + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::preset("PFP", startingCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + + signal(SIGINT, PFPProgramTrackTest::sigintHandler); + + do + { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + std::cout << serializeStatus(PFPStatus) << std::endl; + + if(terminate) + FAIL() << "Aborting test..." << std::endl; + } + while(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE") != 40); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 40); + + std::cout << "OK." << std::endl; + + startingCoordinates = { 0.0, 0.0, 0.0 }; + + std::time_t tn = std::time(0); + std::tm* now = std::localtime(&tn); + std::stringstream directory_ss; + directory_ss << "TESTS/PFP"; + boost::filesystem::create_directory(directory_ss.str()); + directory_ss << "/"; + directory_ss << ::testing::UnitTest::GetInstance()->current_test_info()->name(); + directory_ss << "-"; + directory_ss << 1900 + now->tm_year; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mon + 1; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_mday; + directory_ss << "-"; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_hour; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_min; + directory_ss << std::setfill('0') << std::setw(2) << now->tm_sec; + directory = directory_ss.str(); + boost::filesystem::create_directory(directory); + + statusThread = std::thread(&PFPProgramTrackTest::printStatus, directory + "/status.txt"); + } + + void TearDown() override + { + SRTMinorServoTestingSocket::destroyInstance(); + terminate = false; + } +}; + +TEST_F(PFPProgramTrackTest, ContinuousMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(PFPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + while(!terminate) + { + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == 5) + { + idle_count = 0; + idle = false; + } + } + else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + { + programTrackCoordinates[axis_to_move] = 0.0; + break; + } + } + + axis_to_move == 2 ? axis_to_move = 0 : axis_to_move++; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(PFPProgramTrackTest, AllAxesMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(PFPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + std::vector<int> sign = { 1, 1, 1 }; + std::vector<unsigned int> idle_count = { 0, 0, 0 }; + std::vector<bool> idle = { false, false, false }; + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + if(!idle[axis]) + { + if(moveAxis(programTrackCoordinates, axis, sign[axis])) + { + sign[axis] *= -1; + idle[axis] = true; + } + } + else + { + idle_count[axis]++; + if(idle_count[axis] == 5) + { + idle_count[axis] = 0; + idle[axis] = false; + } + } + } + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + + for(size_t axis = 0; axis < 3; axis++) + { + if(round(programTrackCoordinates[axis] * 100) == 0 && sign[axis] == 1) + { + programTrackCoordinates[axis] = 0.0; + } + } + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(PFPProgramTrackTest, SineWaveMovementTest) +{ + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "PRESET position reached, starting PROGRAMTRACK with start time: " << start_time << std::endl; + long unsigned int trajectory_id = int(start_time); + unsigned int point_id = 0; + std::vector<double> programTrackCoordinates = startingCoordinates; + + std::vector<double> phase_shift; + std::vector<double> period; + for(size_t axis = 0; axis < 3; axis++) + { + double amplitude = (MAX_RANGES[axis] - MIN_RANGES[axis]) / 2; + double period_multiplier = 4; + period.push_back(2 * amplitude / MAX_SPEED[axis] * period_multiplier); + phase_shift.push_back((double)std::rand() / RAND_MAX * period[axis]); + double center = (MAX_RANGES[axis] + MIN_RANGES[axis]) / 2; + std::cout << center << std::endl; + programTrackCoordinates[axis] = center + amplitude * sin(phase_shift[axis] * 2 * M_PI / period[axis]); + } + + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(PFPStatus.checkOutput()); + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + double next_expected_time = start_time; + + while(!terminate) + { + next_expected_time += TIMEGAP; + double time_delta = next_expected_time - start_time; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + for(size_t axis = 0; axis < 3; axis++) + { + double center = (MAX_RANGES[axis] + MIN_RANGES[axis]) / 2; + double amplitude = (MAX_RANGES[axis] - MIN_RANGES[axis]) / 2; + programTrackCoordinates[axis] = center + amplitude * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); + } + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(PFPProgramTrackTest, SeparateMovementTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 0; + int sign = 1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::vector<double> programTrackCoordinates = startingCoordinates; + + bool immediate = true; + + while(!terminate) + { + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(PFPStatus.checkOutput()); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == (ADVANCE_TIMEGAP / TIMEGAP) || immediate) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + sign *= -1; + idle = true; + } + else if(programTrackCoordinates[axis_to_move] == 0.0 && sign == 1) + { + axis_to_move == 2 ? axis_to_move = 0 : axis_to_move++; + idle = true; + } + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + } + + //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + + //immediate = immediate ? false : true; + } + + programTrackFile.close(); + statusThread.join(); +} + +TEST_F(PFPProgramTrackTest, RapidTrajectoryTest) +{ + SRTMinorServoSocket& socket = SRTMinorServoTestingSocket::getInstance(); + SRTMinorServoAnswerMap PFPStatus; + + ofstream programTrackFile; + programTrackFile.open(directory + "/trajectory.txt", ios::out); + + unsigned int axis_to_move = 1; + int sign = -1; + unsigned int idle_count = 0; + bool idle = false; + + std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + + while(!terminate) + { + std::vector<double> programTrackCoordinates = startingCoordinates; + programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; + + double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + long unsigned int trajectory_id = int(start_time); + double next_expected_time = start_time; + unsigned int point_id = 0; + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + EXPECT_TRUE(PFPStatus.checkOutput()); + programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + EXPECT_TRUE(PFPStatus.checkOutput()); + EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); + + while(!terminate) + { + next_expected_time += TIMEGAP; + + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; + + if(idle) + { + idle_count++; + if(idle_count == ADVANCE_TIMEGAP / TIMEGAP) + { + idle_count = 0; + idle = false; + break; + } + } + else + { + if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + idle = true; + } + + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + } + + //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + } + } + + programTrackFile.close(); + statusThread.join(); +} diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/.gitignore b/SRT/Servers/SRTMinorServo/test/TESTS/.gitignore new file mode 100644 index 000000000..f67fe34da --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/.gitignore @@ -0,0 +1,3 @@ +PFP/ +SRP/ +DEROTATOR/ diff --git a/SRT/Servers/SRTMinorServo/test/TESTS/plotPFPTrajectory.py b/SRT/Servers/SRTMinorServo/test/TESTS/plotPFPTrajectory.py new file mode 100755 index 000000000..86c44abb2 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/test/TESTS/plotPFPTrajectory.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +import os +import numpy as np +import matplotlib.pyplot as plt +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument( + 'directory', + help="Directory containing the 'status.txt' and 'trajectory.txt' files" +) + +arguments = parser.parse_args() + +status_time = [] +status_tx = [] +status_tz = [] +status_rt = [] +starttime = None + +with open(os.path.join(arguments.directory, 'status.txt'), 'r') as statusfile: + for line in statusfile: + args = line.strip().split() + if not starttime: + starttime = float(args[0]) + status_time.append(float(args[0]) - starttime) + status_tx.append(float(args[1])) + status_tz.append(float(args[2])) + status_rt.append(float(args[3])) + +trajectory_time = [] +trajectory_tx = [] +trajectory_tz = [] +trajectory_rt = [] + +with open(os.path.join(arguments.directory, 'trajectory.txt'), 'r') as trajectoryfile: + for line in trajectoryfile: + args = line.strip().split() + trajectory_time.append(float(args[0]) - starttime) + trajectory_tx.append(float(args[1])) + trajectory_tz.append(float(args[2])) + trajectory_rt.append(float(args[3])) + +fig, axs = plt.subplots(3, sharex=True) +fig.canvas.manager.set_window_title('PFP Positions') +fig.suptitle('PFP Positions') + +axs[0].plot(status_time, status_tx, 'r') +axs[0].plot(trajectory_time, trajectory_tx, 'b') +axs[0].set_ylabel('tx (mm)') + +axs[1].plot(status_time, status_tz, 'r') +axs[1].plot(trajectory_time, trajectory_tz, 'b') +axs[1].set_ylabel('tz (mm)') + +axs[2].plot(status_time, status_rt, 'r') +axs[2].plot(trajectory_time, trajectory_rt, 'b') +axs[2].set_ylabel('rt (deg)') +axs[2].set_xlabel('time (s)') + +plt.get_current_fig_manager().window.attributes('-zoomed', True) +try: + plt.show() +except KeyboardInterrupt: + pass -- GitLab From e1fe250df38bcd45bda3ad56737ce9bb0aa3785a Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 3 May 2024 12:00:23 +0000 Subject: [PATCH 103/150] Updated PFP tests --- .../test/PFPProgramTrackTest.cpp | 166 +++++++++++------- 1 file changed, 99 insertions(+), 67 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp index c96faa26b..c0d12c2bf 100644 --- a/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp @@ -18,11 +18,12 @@ #define ADDRESS std::string("192.168.200.13") #define PORT 4758 #endif -#define NOISE_THRESHOLD 1 #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 2.6 -#define MIN_RANGES std::vector<double>{ -1490, -200, -1 } -#define MAX_RANGES std::vector<double>{ 1490, 50, 76 } +//#define MIN_RANGES std::vector<double>{ -1490, -200, -1 } +//#define MAX_RANGES std::vector<double>{ 1490, 50, 76 } +#define MIN_RANGES std::vector<double>{ -1000, -100, 0 } +#define MAX_RANGES std::vector<double>{ 1000, 25, 20 } #define MAX_SPEED std::vector<double>{ 25, 5, 0.42 } #define STATUS_PERIOD 0.01 @@ -155,29 +156,82 @@ protected: return currentElongations; } - static bool moveAxis(std::vector<double> &coordinates, int axis_to_move, int sign) + bool moveAxis(std::vector<double>& coordinates, unsigned int& axis_to_move, int& sign) { - double starting_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); + bool last_segment = false; + bool go_idle = false; + double starting_position = coordinates[axis_to_move]; + + if(startingCoordinates[axis_to_move] == MIN_RANGES[axis_to_move] || startingCoordinates[axis_to_move] == MAX_RANGES[axis_to_move]) + { + if(starting_position == startingCoordinates[axis_to_move]) + { + // We just started the trajectory for the current axis, correct the sign eventually + if(startingCoordinates[axis_to_move] == MIN_RANGES[axis_to_move]) + { + // Only above + sign = 1; + } + else + { + // Only below + sign = -1; + } + } + else + { + // We are executing the trajectory, check if we are already headed towards the starting position + if((startingCoordinates[axis_to_move] == MIN_RANGES[axis_to_move] && sign < 0) || (startingCoordinates[axis_to_move] == MAX_RANGES[axis_to_move] && sign > 0)) + { + last_segment = true; + } + } + } + else if(starting_position < startingCoordinates[axis_to_move] && sign > 0) + { + last_segment = true; + } + double offset_to_add = MAX_SPEED[axis_to_move] / 5; - coordinates[axis_to_move] += sign * offset_to_add; - double ending_sign = coordinates[axis_to_move] > 0 ? 1 : (coordinates[axis_to_move] < 0 ? -1 : 0); - if(starting_sign == -1 && ending_sign >= 0) + double ending_position = starting_position + sign * offset_to_add; + + if(ending_position >= MAX_RANGES[axis_to_move]) { - // Zero crossed - coordinates[axis_to_move] = 0.0; - return false; + // Top reached, go down + ending_position = MAX_RANGES[axis_to_move]; + go_idle = true; } - if(coordinates[axis_to_move] >= MAX_RANGES[axis_to_move]) + else if(ending_position <= MIN_RANGES[axis_to_move]) { - coordinates[axis_to_move] = MAX_RANGES[axis_to_move]; - return true; + // Bottom reached, go up + ending_position = MIN_RANGES[axis_to_move]; + go_idle = true; } - else if(coordinates[axis_to_move] <= MIN_RANGES[axis_to_move]) + + // Check if we finished the current axis' trajectory + if(sign == 1 && starting_position < startingCoordinates[axis_to_move] && startingCoordinates[axis_to_move] <= ending_position) + { + // Crossed zero while going up, round to zero and change axis + ending_position = startingCoordinates[axis_to_move]; + go_idle = true; + } + + coordinates[axis_to_move] = ending_position; + + if(go_idle) { - coordinates[axis_to_move] = MIN_RANGES[axis_to_move]; - return true; + if(last_segment) + { + sign = 1; + axis_to_move == 2 ? axis_to_move = 0 : axis_to_move++; + } + else + { + sign *= -1; + } } - return false; + + return go_idle; } void SetUp() override @@ -303,41 +357,29 @@ TEST_F(PFPProgramTrackTest, ContinuousMovementTest) while(!terminate) { - while(!terminate) - { - next_expected_time += TIMEGAP; - - std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); - point_id++; - - if(idle) - { - idle_count++; - if(idle_count == 5) - { - idle_count = 0; - idle = false; - } - } - else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) - { - sign *= -1; - idle = true; - } + next_expected_time += TIMEGAP; - PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); - EXPECT_TRUE(PFPStatus.checkOutput()); - //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); + point_id++; - if(round(programTrackCoordinates[axis_to_move] * 100) == 0 && sign == 1) + if(idle) + { + idle_count++; + if(idle_count == 5) { - programTrackCoordinates[axis_to_move] = 0.0; - break; + idle_count = 0; + idle = false; } } + else if(moveAxis(programTrackCoordinates, axis_to_move, sign)) + { + idle = true; + } - axis_to_move == 2 ? axis_to_move = 0 : axis_to_move++; + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + EXPECT_TRUE(PFPStatus.checkOutput()); + //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; + programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; } programTrackFile.close(); @@ -383,10 +425,13 @@ TEST_F(PFPProgramTrackTest, AllAxesMovementTest) { if(!idle[axis]) { - if(moveAxis(programTrackCoordinates, axis, sign[axis])) + unsigned int axis_to_move = axis; + if(moveAxis(programTrackCoordinates, axis_to_move, sign[axis])) { - sign[axis] *= -1; - idle[axis] = true; + if(programTrackCoordinates[axis] != startingCoordinates[axis] || programTrackCoordinates[axis] == MIN_RANGES[axis] || programTrackCoordinates[axis] == MAX_RANGES[axis]) + { + idle[axis] = true; + } } } else @@ -404,14 +449,6 @@ TEST_F(PFPProgramTrackTest, AllAxesMovementTest) EXPECT_TRUE(PFPStatus.checkOutput()); //std::cout << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; programTrackFile << PFPProgramTrackTest::serializeCoordinates(next_expected_time, programTrackCoordinates) << std::endl; - - for(size_t axis = 0; axis < 3; axis++) - { - if(round(programTrackCoordinates[axis] * 100) == 0 && sign[axis] == 1) - { - programTrackCoordinates[axis] = 0.0; - } - } } programTrackFile.close(); @@ -496,7 +533,7 @@ TEST_F(PFPProgramTrackTest, SeparateMovementTest) std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; std::vector<double> programTrackCoordinates = startingCoordinates; - bool immediate = true; + bool immediate = false; while(!terminate) { @@ -536,12 +573,6 @@ TEST_F(PFPProgramTrackTest, SeparateMovementTest) { if(moveAxis(programTrackCoordinates, axis_to_move, sign)) { - sign *= -1; - idle = true; - } - else if(programTrackCoordinates[axis_to_move] == 0.0 && sign == 1) - { - axis_to_move == 2 ? axis_to_move = 0 : axis_to_move++; idle = true; } @@ -568,8 +599,6 @@ TEST_F(PFPProgramTrackTest, RapidTrajectoryTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - unsigned int axis_to_move = 1; - int sign = -1; unsigned int idle_count = 0; bool idle = false; @@ -577,6 +606,9 @@ TEST_F(PFPProgramTrackTest, RapidTrajectoryTest) while(!terminate) { + unsigned int axis_to_move = 1; + int sign = -1; + std::vector<double> programTrackCoordinates = startingCoordinates; programTrackCoordinates[axis_to_move] = MAX_RANGES[axis_to_move]; -- GitLab From 58b656b58a3fcef00bad2bf25fe5a5fdbeca0188 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 9 May 2024 18:20:46 +0200 Subject: [PATCH 104/150] Corrected SRT Minor Servos SETUP strings --- .../include/SRTMinorServoContainers.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index dfea1df66..4c32b5195 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -100,14 +100,14 @@ namespace MinorServo using LDOConfigurationNameTableType = boost::bimap<SRTMinorServoFocalConfiguration, std::string>; const LDOConfigurationNameTableType LDOConfigurationNameTable = boost::assign::list_of<LDOConfigurationNameTableType::relation> (CONFIGURATION_PRIMARY, "Primario") - (CONFIGURATION_GREGORIAN1, "Gregoriano 1") - (CONFIGURATION_GREGORIAN2, "Gregoriano 2") - (CONFIGURATION_GREGORIAN3, "Gregoriano 3") - (CONFIGURATION_GREGORIAN4, "Gregoriano 4") - (CONFIGURATION_GREGORIAN5, "Gregoriano 5") - (CONFIGURATION_GREGORIAN6, "Gregoriano 6") - (CONFIGURATION_GREGORIAN7, "Gregoriano 7") - (CONFIGURATION_GREGORIAN8, "Gregoriano 8") + (CONFIGURATION_GREGORIAN1, "Gregoriano1") + (CONFIGURATION_GREGORIAN2, "Gregoriano2") + (CONFIGURATION_GREGORIAN3, "Gregoriano3") + (CONFIGURATION_GREGORIAN4, "Gregoriano4") + (CONFIGURATION_GREGORIAN5, "Gregoriano5") + (CONFIGURATION_GREGORIAN6, "Gregoriano6") + (CONFIGURATION_GREGORIAN7, "Gregoriano7") + (CONFIGURATION_GREGORIAN8, "Gregoriano8") (CONFIGURATION_BWG1, "BWG1") (CONFIGURATION_BWG2, "BWG2") (CONFIGURATION_BWG3, "BWG3") -- GitLab From 3ada6b6451eea4d1d77e73deb37d60d0723a456e Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 10 May 2024 18:47:59 +0200 Subject: [PATCH 105/150] Reduced the ranges of SRP. In today's tests we ended up activating a pre limit when 125 was commanded on one of the axes. I limited the range a bit. --- SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 4 ++-- SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index d48d39ad4..6dbe537fe 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -11,8 +11,8 @@ virtual_axes="6" max_speed="4, 4, 4, 0.38, 0.38, 0.38" acceleration="8, 8, 8, 0.76, 0.76, 0.76" - min_range="-125, -125, -125, -0.25, -0.25, -0.25" - max_range="125, 125, 125, 0.25, 0.25, 0.25" + min_range="-120, -120, -120, -0.25, -0.25, -0.25" + max_range="120, 120, 120, 0.25, 0.25, 0.25" tracking_delta="1, 1, 1, 1, 1, 1"> <enabled description="All physical axes enabled" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index d48d39ad4..6dbe537fe 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -11,8 +11,8 @@ virtual_axes="6" max_speed="4, 4, 4, 0.38, 0.38, 0.38" acceleration="8, 8, 8, 0.76, 0.76, 0.76" - min_range="-125, -125, -125, -0.25, -0.25, -0.25" - max_range="125, 125, 125, 0.25, 0.25, 0.25" + min_range="-120, -120, -120, -0.25, -0.25, -0.25" + max_range="120, 120, 120, 0.25, 0.25, 0.25" tracking_delta="1, 1, 1, 1, 1, 1"> <enabled description="All physical axes enabled" /> -- GitLab From dc36846297fa4d8bbd26cc4fc9ee2ac62c2d7a03 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Wed, 15 May 2024 09:09:29 +0000 Subject: [PATCH 106/150] Updated Minor Servos tests --- SRT/Servers/SRTMinorServo/test/Makefile | 2 +- .../test/PFPProgramTrackTest.cpp | 57 ++++++++++++------- .../test/SRPProgramTrackTest.cpp | 6 +- 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/SRT/Servers/SRTMinorServo/test/Makefile b/SRT/Servers/SRTMinorServo/test/Makefile index e58a7b680..967e4ef9f 100644 --- a/SRT/Servers/SRTMinorServo/test/Makefile +++ b/SRT/Servers/SRTMinorServo/test/Makefile @@ -22,7 +22,7 @@ SRPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServ PFPProgramTrackTest_OBJECTS = PFPProgramTrackTest PFPProgramTrackTest_CFLAGS = -std=c++17 -fconcepts -PFPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors boost_filesystem +PFPProgramTrackTest_LIBS = $(GTEST_LIBS) SRTMinorServoSocketLibrary SRTMinorServoCommandLibrary IRALibrary ComponentErrors MinorServoErrors boost_filesystem DerotatorProgramTrackTest_OBJECTS = DerotatorProgramTrackTest DerotatorProgramTrackTest_CFLAGS = -std=c++17 diff --git a/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp index c0d12c2bf..de84214f7 100644 --- a/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/PFPProgramTrackTest.cpp @@ -4,13 +4,15 @@ #include <chrono> #include <ctime> #include <boost/filesystem.hpp> +#include <MinorServoErrors.h> +#include "SRTMinorServoUtils.h" #include "SRTMinorServoTestingSocket.h" #include "SRTMinorServoCommandLibrary.h" // This address and port are the ones set in the simulator // In order for the test to properly be executed, the simulator should be launched with the following command: // discos-simulator -s minor_servo start & -#define SIMULATION +//#define SIMULATION #ifdef SIMULATION #define ADDRESS std::string("127.0.0.1") #define PORT 12800 @@ -22,8 +24,8 @@ #define ADVANCE_TIMEGAP 2.6 //#define MIN_RANGES std::vector<double>{ -1490, -200, -1 } //#define MAX_RANGES std::vector<double>{ 1490, 50, 76 } -#define MIN_RANGES std::vector<double>{ -1000, -100, 0 } -#define MAX_RANGES std::vector<double>{ 1000, 25, 20 } +#define MIN_RANGES std::vector<double>{ -1000, -150, 0 } +#define MAX_RANGES std::vector<double>{ 1000, 40, 70 } #define MAX_SPEED std::vector<double>{ 25, 5, 0.42 } #define STATUS_PERIOD 0.01 @@ -52,9 +54,20 @@ protected: double tn = CIRATools::getUNIXEpoch(); - while(!terminate) + while(!terminate.load()) { - PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + try + { + PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::status("PFP")); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + //MinorServoErrors::MinorServoErrorsExImpl impl(ex); + std::cout << getErrorFromEx(ex) << std::endl; + terminate.store(true); + break; + } + std::string status = serializeStatus(PFPStatus); statusFile << status << std::endl; @@ -72,7 +85,7 @@ protected: static void sigintHandler(int sig_num) { std::cout << std::endl << "Terminating..." << std::endl; - terminate = true; + terminate.store(true); } static std::string serializeStatus(SRTMinorServoAnswerMap map) @@ -288,7 +301,7 @@ protected: EXPECT_TRUE(PFPStatus.checkOutput()); std::cout << serializeStatus(PFPStatus) << std::endl; - if(terminate) + if(terminate.load()) FAIL() << "Aborting test..." << std::endl; } while(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE") != 40); @@ -322,7 +335,7 @@ protected: void TearDown() override { SRTMinorServoTestingSocket::destroyInstance(); - terminate = false; + terminate.store(false); } }; @@ -355,7 +368,7 @@ TEST_F(PFPProgramTrackTest, ContinuousMovementTest) unsigned int idle_count = 0; bool idle = false; - while(!terminate) + while(!terminate.load()) { next_expected_time += TIMEGAP; @@ -414,7 +427,7 @@ TEST_F(PFPProgramTrackTest, AllAxesMovementTest) std::vector<unsigned int> idle_count = { 0, 0, 0 }; std::vector<bool> idle = { false, false, false }; - while(!terminate) + while(!terminate.load()) { next_expected_time += TIMEGAP; @@ -493,7 +506,7 @@ TEST_F(PFPProgramTrackTest, SineWaveMovementTest) double next_expected_time = start_time; - while(!terminate) + while(!terminate.load()) { next_expected_time += TIMEGAP; double time_delta = next_expected_time - start_time; @@ -525,24 +538,27 @@ TEST_F(PFPProgramTrackTest, SeparateMovementTest) ofstream programTrackFile; programTrackFile.open(directory + "/trajectory.txt", ios::out); - unsigned int axis_to_move = 0; + unsigned int axis_to_move = 1; int sign = 1; unsigned int idle_count = 0; bool idle = false; - std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; + std::cout << "PRESET position reached" << std::endl; std::vector<double> programTrackCoordinates = startingCoordinates; bool immediate = false; - while(!terminate) + while(!terminate.load()) { double start_time = CIRATools::getUNIXEpoch() + ADVANCE_TIMEGAP; + std::cout << "starting PROGRAMTRACK with timestamp " << std::to_string(start_time) << std::endl; long unsigned int trajectory_id = int(start_time); double next_expected_time = start_time; unsigned int point_id = 0; - PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time)); + std::string command = SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates, start_time); + //std::cout << command; + PFPStatus = socket.sendCommand(command); EXPECT_TRUE(PFPStatus.checkOutput()); programTrackFile << PFPProgramTrackTest::serializeCoordinates(start_time, programTrackCoordinates) << std::endl; @@ -552,7 +568,7 @@ TEST_F(PFPProgramTrackTest, SeparateMovementTest) EXPECT_TRUE(PFPStatus.checkOutput()); EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); - while(!terminate) + while(!terminate.load()) { next_expected_time += TIMEGAP; @@ -576,7 +592,10 @@ TEST_F(PFPProgramTrackTest, SeparateMovementTest) idle = true; } - PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); + command = SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates); + PFPStatus = socket.sendCommand(command); + //std::cout << command; + //PFPStatus = socket.sendCommand(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, point_id, programTrackCoordinates)); EXPECT_TRUE(PFPStatus.checkOutput()); } @@ -604,7 +623,7 @@ TEST_F(PFPProgramTrackTest, RapidTrajectoryTest) std::cout << "PRESET position reached, starting PROGRAMTRACK" << std::endl; - while(!terminate) + while(!terminate.load()) { unsigned int axis_to_move = 1; int sign = -1; @@ -627,7 +646,7 @@ TEST_F(PFPProgramTrackTest, RapidTrajectoryTest) EXPECT_TRUE(PFPStatus.checkOutput()); EXPECT_EQ(PFPStatus.get<unsigned int>("PFP_OPERATIVE_MODE"), 50); - while(!terminate) + while(!terminate.load()) { next_expected_time += TIMEGAP; diff --git a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp index e1033748e..9d2b46c44 100644 --- a/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp +++ b/SRT/Servers/SRTMinorServo/test/SRPProgramTrackTest.cpp @@ -22,7 +22,7 @@ #define TIMEGAP 0.2 #define ADVANCE_TIMEGAP 2.6 #define MAX_RANGES std::vector<double>{ 40, 40, 40, 0.2, 0.2, 0.2 } -#define MAX_RANGES std::vector<double>{ 50, 110, 50, 0.25, 0.25, 0.25 } +#define MAX_RANGES std::vector<double>{ 50, 120, 120, 0.25, 0.25, 0.25 } #define MAX_SPEED std::vector<double>{ 4, 4, 4, 0.04, 0.04, 0.04 } #define STATUS_PERIOD 0.01 @@ -432,7 +432,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) std::vector<double> phase_shift; std::vector<double> period; - for(size_t axis = 0; axis < 6; axis++) + for(size_t axis = 0; axis < 3; axis++) { double period_multiplier = axis < 3 ? 4 : 4; period.push_back(MAX_RANGES[axis] / MAX_SPEED[axis] * period_multiplier); @@ -465,7 +465,7 @@ TEST_F(SRPProgramTrackTest, SineWaveMovementTest) std::this_thread::sleep_for(std::chrono::microseconds((int)round(1000000 * std::max(0.0, next_expected_time - ADVANCE_TIMEGAP - CIRATools::getUNIXEpoch())))); point_id++; - for(size_t axis = 0; axis < 6; axis++) + for(size_t axis = 0; axis < 3; axis++) { programTrackCoordinates[axis] = MAX_RANGES[axis] * sin((time_delta + phase_shift[axis]) * 2 * M_PI / period[axis]); } -- GitLab From 3eacc92681c4119693955f723ede933eb72b0b43 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 16 May 2024 14:35:21 +0200 Subject: [PATCH 107/150] Fix #864, fixed small bug in SRTMount/CommonData.cpp --- SRT/Servers/SRTMount/src/CommonData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SRT/Servers/SRTMount/src/CommonData.cpp b/SRT/Servers/SRTMount/src/CommonData.cpp index 73d181389..0035d6db9 100644 --- a/SRT/Servers/SRTMount/src/CommonData.cpp +++ b/SRT/Servers/SRTMount/src/CommonData.cpp @@ -356,7 +356,7 @@ void CCommonData::reBind() setElevationStatusWord(BRAKE_ERROR,m_elevationStatus->errors().brakeError()); setElevationStatusWord(SERVO_ERROR,m_elevationStatus->errors().servoError()); setElevationStatusWord(AXIS_READY,m_elevationStatus->axisReady()); - setElevationStatusWord(ACTIVE,m_azimuthStatus->axisState()==CACUProtocol::STATE_ACTIVE); + setElevationStatusWord(ACTIVE,m_elevationStatus->axisState()==CACUProtocol::STATE_ACTIVE); setElevationStatusWord(LOW_POWER_MODE,m_elevationStatus->lowPowerMode()); setElevationStatusWord(STOWED,m_elevationStatus->stowed()); //bind motors status word -- GitLab From ebeaefc4cbf6b16d29b18ab20713f0bfcd6e265f Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Thu, 16 May 2024 15:45:50 +0200 Subject: [PATCH 108/150] Fix #868, replaced `.getchildren()` with `list()` --- Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py | 3 +-- .../Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py | 4 ++-- Common/Tests/test/cdb/test_procedures.py | 2 +- .../src/IFDistributor14/SRTIFDistributor14Impl.py | 3 +-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py b/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py index 099156d30..389f52ab9 100644 --- a/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py +++ b/Common/Servers/PyCalmux/src/Calmux/PyCalmuxImpl.py @@ -197,8 +197,7 @@ class PyCalmuxImpl(CalMux, cc, services, lcycle): raise exc try: - children = ElementTree.fromstring(dao).getchildren() - for child in children: + for child in list(ElementTree.fromstring(dao)): backend, channel, polarity = [c.text.strip() for c in child] backend = backend.lower() value = (int(channel), int(polarity)) diff --git a/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py b/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py index e0c3ec63b..e31369e9e 100644 --- a/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py +++ b/Common/Servers/PyDewarPositioner/src/DewarPositioner/cdbconf.py @@ -210,7 +210,7 @@ class CDBConf(object): try: dal = ACSCorba.cdb() dao = dal.get_DAO(path) - children = ElementTree.fromstring(dao).getchildren() + children = list(ElementTree.fromstring(dao)) except cdbErrType.CDBRecordDoesNotExistEx: raeson = "CDB record %s does not exists" %path logger.logError(raeson) @@ -218,7 +218,7 @@ class CDBConf(object): exc.setReason(raeson) raise exc except Exception as ex: - children = () + children = [] setattr(self, dictName, {}) d = getattr(self, dictName) diff --git a/Common/Tests/test/cdb/test_procedures.py b/Common/Tests/test/cdb/test_procedures.py index fa6c6b3fd..690667552 100644 --- a/Common/Tests/test/cdb/test_procedures.py +++ b/Common/Tests/test/cdb/test_procedures.py @@ -7,7 +7,7 @@ class TestProcedures(unittest.TestCase): def setUp(self): dal = ACSCorba.cdb() dao = dal.get_DAO('alma/Procedures/StationProcedures') - self.procedures = ElementTree.fromstring(dao).getchildren() + self.procedures = list(ElementTree.fromstring(dao)) def test_reset_not_allowed_in_setup(self): """Vefify the setup does not execute the antennaReset command""" diff --git a/SRT/Servers/SRTPyIFDistributor14/src/IFDistributor14/SRTIFDistributor14Impl.py b/SRT/Servers/SRTPyIFDistributor14/src/IFDistributor14/SRTIFDistributor14Impl.py index c292225d7..f5ffae436 100644 --- a/SRT/Servers/SRTPyIFDistributor14/src/IFDistributor14/SRTIFDistributor14Impl.py +++ b/SRT/Servers/SRTPyIFDistributor14/src/IFDistributor14/SRTIFDistributor14Impl.py @@ -210,8 +210,7 @@ class SRTIFDistributor14Impl(SRTIFDistributor14, cc, services, lcycle): raise exc try: - children = ElementTree.fromstring(dao).getchildren() - for child in children: + for child in list(ElementTree.fromstring(dao)) backend, channel, address = [c.text.strip() for c in child] value = {int(channel): int(address)} if backend in self.mapping: -- GitLab From d8d4b64bb7a848c42bc0935c3cc20a926490cf84 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Fri, 17 May 2024 13:32:13 +0000 Subject: [PATCH 109/150] Fix #866, focus offsets are now applied when not tracking the elev. Also, fixed an issue with the Python customlogger --- .../IRALibrary/src/IRAPy/customlogging.py | 1 + SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 1 + SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 1 + SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + .../CDB/alma/MINORSERVO/GFR/GFR.xml | 1 + .../CDB/alma/MINORSERVO/M3R/M3R.xml | 1 + .../CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + .../CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + .../idl/SRTMinorServo.idl | 6 ++++ .../config/CDB/schemas/SRTMinorServo.xsd | 1 + .../SRTMinorServo/include/SRTMinorServoImpl.h | 19 +++++++++- .../src/SRTBaseMinorServoImpl.cpp | 28 ++++++++++++++- .../src/SRTMinorServoBossCore.cpp | 36 +++++++++++++++++-- 14 files changed, 95 insertions(+), 4 deletions(-) diff --git a/Common/Libraries/IRALibrary/src/IRAPy/customlogging.py b/Common/Libraries/IRALibrary/src/IRAPy/customlogging.py index 3cd47d96d..8bd0b8e82 100644 --- a/Common/Libraries/IRALibrary/src/IRAPy/customlogging.py +++ b/Common/Libraries/IRALibrary/src/IRAPy/customlogging.py @@ -2,6 +2,7 @@ This module is intended to extend the ACS Logging module in our python code. """ import logging +logging._srcfile = None import sys from Acspy.Common import Log from ACSLog import ACS_LOG_CRITICAL diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index 75f01dc18..656043cef 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -27,6 +27,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index 83ebde14b..abf4e296e 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -27,6 +27,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 6fdbf0722..3d22653f9 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -28,6 +28,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index 6dbe537fe..693ae9163 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -28,6 +28,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml index 75f01dc18..656043cef 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -27,6 +27,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml index 83ebde14b..abf4e296e 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -27,6 +27,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml index 6fdbf0722..3d22653f9 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -28,6 +28,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index 6dbe537fe..693ae9163 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -28,6 +28,7 @@ <virtual_offsets description="Sequence, sum of user and system virtual axis offsets" /> <virtual_user_offsets description="Sequence, virtual user axes offsets" /> <virtual_system_offsets description="Sequence, virtual system axes offsets" /> + <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index 5c3eb142a..f6680cf78 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -82,6 +82,12 @@ module MinorServo */ readonly attribute ACS::ROdoubleSeq virtual_system_offsets; + /** + * This property returns the latest virtual positions commanded with a preset command. + * Offsets are not taken into account since they are added by the LDO system. + */ + readonly attribute ACS::ROdoubleSeq commanded_virtual_positions; + /** * This property indicates whether the servo is in use in the current configuration */ diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index d3f3d966f..c6e235928 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -54,6 +54,7 @@ <xs:element name="virtual_offsets" type="baci:ROdoubleSeq" /> <xs:element name="virtual_user_offsets" type="baci:ROdoubleSeq" /> <xs:element name="virtual_system_offsets" type="baci:ROdoubleSeq" /> + <xs:element name="commanded_virtual_positions" type="baci:ROdoubleSeq" /> <xs:element name="in_use" type="mng:BooleanType" /> <xs:element name="current_setup" type="baci:ROstring" /> </xs:sequence> diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index 2a43122df..a286b5395 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -100,7 +100,7 @@ public: * if the resulting position summing the offsets would go outside the accepted range of the servo, * if there has been a communication error or if the command was not accepted. */ - void preset(const ACS::doubleSeq& coordinates); + void preset(const ACS::doubleSeq& virtual_coords); /** * Asks the servo system to load the commanded configuration table. @@ -270,6 +270,12 @@ public: */ virtual ACS::ROdoubleSeq_ptr virtual_system_offsets(); + /** + * Returns a reference to the commanded_virtual_positions property implementation of the IDL interface. + * @return pointer to the read-only double sequence property commanded_virtual_positions. + */ + virtual ACS::ROdoubleSeq_ptr commanded_virtual_positions(); + /** * Returns a reference to the in_use property implementation of the IDL interface. * @return pointer to the read-only boolean property in_use. @@ -342,6 +348,11 @@ private: * Units of the virtual axes of the servo system. */ const std::vector<std::string> m_virtual_axes_units; + + /** + * Latest commanded virtual positions. It only takes into account the preset command. + */ + std::vector<double> m_commanded_virtual_positions; protected: /** * Dictionary containing the last status retrieved form the servo system. @@ -468,6 +479,11 @@ private: */ baci::SmartPropertyPointer<baci::ROdoubleSeq> m_virtual_system_offsets_ptr; + /** + * Pointer to the commanded_virtual_positions property. + */ + baci::SmartPropertyPointer<baci::ROdoubleSeq> m_commanded_virtual_positions_ptr; + /** * Pointer to the in_use property. */ @@ -538,6 +554,7 @@ protected: virtual ACS::ROdoubleSeq_ptr virtual_offsets() { return SRTBaseMinorServoImpl::virtual_offsets(); }\ virtual ACS::ROdoubleSeq_ptr virtual_user_offsets() { return SRTBaseMinorServoImpl::virtual_user_offsets(); }\ virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }\ + virtual ACS::ROdoubleSeq_ptr commanded_virtual_positions() { return SRTBaseMinorServoImpl::commanded_virtual_positions(); }\ virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }\ virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); } diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index df2e50b72..dea56af00 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -41,6 +41,7 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_virtual_offsets_ptr(this), m_virtual_user_offsets_ptr(this), m_virtual_system_offsets_ptr(this), + m_commanded_virtual_positions_ptr(this), m_in_use_ptr(this), m_current_setup_ptr(this), m_current_lookup_table(), @@ -85,6 +86,8 @@ void SRTBaseMinorServoImpl::initialize() new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_user_offsets), true); m_virtual_system_offsets_ptr = new baci::ROdoubleSeq((m_component_name + ":virtual_system_offsets").c_str(), getComponent(), new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_system_offsets), true); + m_commanded_virtual_positions_ptr = new baci::ROdoubleSeq((m_component_name + ":commanded_virtual_positions").c_str(), getComponent(), + new MSGenericDevIO<ACS::doubleSeq, std::vector<double>>(m_commanded_virtual_positions), true); m_in_use_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":in_use").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_in_use), true); m_current_setup_ptr = new baci::ROstring((m_component_name + ":current_setup").c_str(), getComponent(), @@ -190,12 +193,28 @@ void SRTBaseMinorServoImpl::stop() } } -void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) +void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coords) { AUTO_TRACE(m_servo_name + "::preset()"); checkLineStatus(); + ACS::doubleSeq virtual_coordinates; + virtual_coordinates.length(virtual_coords.length()); + std::copy(virtual_coords.begin(), virtual_coords.end(), virtual_coordinates.begin()); + + if(virtual_coordinates.length() == 0) + { + // It means we want to command the latest coordinates again, to apply the offset in the LDO servo system + // We execute the copy only if we already commanded a set of coordinates, otherwise we let the flow go to the next + // if which will raise regardless + if(!m_commanded_virtual_positions.empty()) + { + virtual_coordinates.length(m_commanded_virtual_positions.size()); + std::copy(m_commanded_virtual_positions.begin(), m_commanded_virtual_positions.end(), virtual_coordinates.begin()); + } + } + if(virtual_coordinates.length() != m_virtual_axes) { _EXCPT(MinorServoErrors::PositioningErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); @@ -226,6 +245,12 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coordinates) ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } + + if(m_commanded_virtual_positions.empty()) + { + m_commanded_virtual_positions.resize(m_virtual_axes); + } + std::copy(coordinates.begin(), coordinates.end(), m_commanded_virtual_positions.begin()); } bool SRTBaseMinorServoImpl::setup(const char* configuration_name) @@ -807,5 +832,6 @@ GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_positi GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_offsets_ptr, virtual_offsets); GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_user_offsets_ptr, virtual_user_offsets); GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_system_offsets_ptr, virtual_system_offsets); +GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_commanded_virtual_positions_ptr, commanded_virtual_positions); GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_in_use_ptr, in_use); GET_PROPERTY_REFERENCE(ACS::ROstring, SRTBaseMinorServoImpl, m_current_setup_ptr, current_setup); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 7c4052822..c529b0b0c 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -135,7 +135,6 @@ bool SRTMinorServoBossCore::status() { if(std::all_of(m_current_tracking_servos.begin(), m_current_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool { - ACSErr::Completion_var comp; return servo.second->isTracking(); })) { @@ -194,6 +193,7 @@ void SRTMinorServoBossCore::setup(std::string commanded_setup) { cmd_configuration = DiscosConfigurationNameTable.at(commanded_setup); commanded_configuration = cmd_configuration.first; + if(m_as_configuration.load() == Management::MNG_TRUE && cmd_configuration.second) { commanded_setup += "_ASACTIVE"; @@ -586,7 +586,12 @@ void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) { for(const auto& [servo_name, servo] : m_current_servos) { - servo->clearUserOffsets(); + servo->clearUserOffsets(); + if(motion_status == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } return; } @@ -602,6 +607,11 @@ void SRTMinorServoBossCore::clearUserOffsets(std::string servo_name) { auto servo = m_current_servos.at(servo_name); servo->clearUserOffsets(); + if(motion_status == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } catch(std::out_of_range& oor) { @@ -658,6 +668,12 @@ void SRTMinorServoBossCore::setUserOffset(std::string servo_axis_name, double of ACS_LOG(LM_FULL_INFO, "setServoOffset", (LM_NOTICE, ("SETTING '" + servo_name + "' '" + axis_name + "' OFFSET TO " + std::to_string(offset)).c_str())); } servo->setUserOffset(axis_name.c_str(), offset); + + if(m_motion_status.load() == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } catch(std::out_of_range& oor) { @@ -724,6 +740,11 @@ void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) for(const auto& [servo_name, servo] : m_current_servos) { servo->clearSystemOffsets(); + if(motion_status == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } return; } @@ -739,6 +760,11 @@ void SRTMinorServoBossCore::clearSystemOffsets(std::string servo_name) { auto servo = m_current_servos.at(servo_name); servo->clearSystemOffsets(); + if(motion_status == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } catch(std::out_of_range& oor) { @@ -791,6 +817,12 @@ void SRTMinorServoBossCore::setSystemOffset(std::string servo_axis_name, double { auto servo = m_current_servos.at(servo_name); servo->setSystemOffset(axis_name.c_str(), offset); + + if(m_motion_status.load() == MOTION_STATUS_CONFIGURED) + { + // We are not tracking but we need to update the servo position to load the offsets + servo->preset(ACS::doubleSeq()); + } } catch(std::out_of_range& oor) { -- GitLab From 4b6050ebba250b94ff2e7ea73a8d282953f9c915 Mon Sep 17 00:00:00 2001 From: Giuseppe Carboni <giuseppecarboni89@live.com> Date: Sat, 1 Jun 2024 10:45:43 +0200 Subject: [PATCH 110/150] Updated minor servos (#871) * Fix #865, fix #869, updated SRTMinorServo component The component now handles correctly a SETUP command. The component is also capable of commanding the gregorian air blade with the 'setGregorianAirBladeStatus' command. A few bugs were fixed here and there. This branch MUST be tested with the real hardware before merging it onto the centos_7_compatibility branch. * Fixed small bug * Various upgrades * Updated _airBlade.py and _servoReset.py * Updated _servoReset * Updated telescopePark procedure commands order With this order, the gregorian cover is started parking when the antenna is already at 89.8 degrees of elevation. This will avoid getting an error on a gregorian cover axis pre limit. Unfortunately, this will not fix a change in configuration from primary to gregorian or BWG and vice versa. That will need to be addressed by opening a ticket. * Upgraded _servoReset behahviour --- .../src/MinorServoBossTextClient.cpp | 2 +- .../SystemTerminal/src/nuraghe_commands.py | 41 ++++- Common/Servers/Scheduler/src/Core.cpp | 3 + .../GFR/LookupTables/LookupTables.xml | 10 +- .../DataBlock/MinorServo/Tabella Setup.csv | 14 ++ SRT/CDB/alma/MINORSERVO/Boss/Boss.xml | 4 +- SRT/CDB/alma/MINORSERVO/GFR/GFR.xml | 1 + SRT/CDB/alma/MINORSERVO/M3R/M3R.xml | 1 + SRT/CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + SRT/CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + SRT/CDB/alma/MINORSERVO/VBrain/VBrain.xml | 13 ++ .../StationProcedures/StationProcedures.xml | 6 +- .../GFR/LookupTables/LookupTables.xml | 10 +- .../CDB/alma/MINORSERVO/Boss/Boss.xml | 4 +- .../CDB/alma/MINORSERVO/GFR/GFR.xml | 1 + .../CDB/alma/MINORSERVO/M3R/M3R.xml | 1 + .../CDB/alma/MINORSERVO/PFP/PFP.xml | 1 + .../CDB/alma/MINORSERVO/SRP/SRP.xml | 1 + .../CDB/alma/MINORSERVO/VBrain/VBrain.xml | 13 ++ .../StationProcedures/StationProcedures.xml | 6 +- .../idl/SRTMinorServo.idl | 16 ++ .../idl/SRTMinorServoBoss.idl | 26 ++- .../idl/SRTMinorServoCommon.midl | 28 ++++ .../include/SRTMinorServoContainers.h | 20 ++- .../src/SRTMinorServoSocket.cpp | 16 +- .../config/CDB/schemas/SRTMinorServo.xsd | 27 +-- .../config/CDB/schemas/SRTMinorServoBoss.xsd | 40 +---- .../CDB/schemas/SRTMinorServoCommon.xsd | 90 ++++++++++ .../SRTMinorServoVBrainConfiguration.xsd | 33 ++++ SRT/Servers/SRTMinorServo/include/MSDevIOs.h | 75 ++++++++- .../include/SRTMinorServoBossCore.h | 22 ++- .../include/SRTMinorServoBossImpl.h | 35 ++++ .../SRTMinorServo/include/SRTMinorServoImpl.h | 44 ++++- .../include/SRTMinorServoTrackingThread.h | 5 - SRT/Servers/SRTMinorServo/src/Makefile | 4 +- .../src/SRTBaseMinorServoImpl.cpp | 63 +++++-- .../src/SRTMinorServoBossCore.cpp | 156 ++++++++++++++---- .../src/SRTMinorServoBossImpl.cpp | 26 ++- .../src/SRTMinorServoParkThread.cpp | 9 +- .../src/SRTMinorServoScanThread.cpp | 3 +- .../src/SRTMinorServoSetupThread.cpp | 100 ++++++----- .../src/SRTMinorServoTrackingThread.cpp | 21 +-- .../src/SRTProgramTrackMinorServoImpl.cpp | 86 ++++++---- SRT/Servers/SRTMinorServo/src/_airBlade.py | 42 +++++ SRT/Servers/SRTMinorServo/src/_servoReset.py | 91 ++++++++++ 45 files changed, 951 insertions(+), 261 deletions(-) create mode 100644 SRT/CDB/alma/DataBlock/MinorServo/Tabella Setup.csv create mode 100644 SRT/CDB/alma/MINORSERVO/VBrain/VBrain.xml create mode 100644 SRT/Configuration/CDB/alma/MINORSERVO/VBrain/VBrain.xml create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoCommon.xsd create mode 100644 SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoVBrainConfiguration.xsd create mode 100644 SRT/Servers/SRTMinorServo/src/_airBlade.py create mode 100644 SRT/Servers/SRTMinorServo/src/_servoReset.py diff --git a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp index 9a5baeeab..0bd15151b 100644 --- a/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp +++ b/Common/Clients/MinorServoBossTextClient/src/MinorServoBossTextClient.cpp @@ -289,7 +289,7 @@ int main(int argc, char *argv[]) { status_box->setStatusLook(Management::MNG_OK,CStyle(BLACK_GREEN,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_WARNING,CStyle(BLACK_YELLOW,CStyle::BOLD)); status_box->setStatusLook(Management::MNG_FAILURE,CStyle(BLACK_RED,CStyle::BOLD)); - _TW_SET_COMPONENT(motionInfo_field,18,3,30,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(motionInfo_field,18,3,40,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); /* ****************************************************************** */ _TW_SET_COMPONENT(userInput,0,WINDOW_HEIGHT-6,WINDOW_WIDTH-1,1,USER_INPUT_COLOR_PAIR,USER_INPUT_STYLE,NULL); diff --git a/Common/Clients/SystemTerminal/src/nuraghe_commands.py b/Common/Clients/SystemTerminal/src/nuraghe_commands.py index 9931cce9f..4b1723e37 100755 --- a/Common/Clients/SystemTerminal/src/nuraghe_commands.py +++ b/Common/Clients/SystemTerminal/src/nuraghe_commands.py @@ -2,6 +2,9 @@ from __future__ import print_function # Marco Buttu <mbuttu@oa-cagliari.inaf.it> # Doctrings from the "Observing at the SRT with Nuraghe, Issue n.8, 21/10/14", # by Simona Righini and Andrea Orlati" +# 21/05/2024 G. Carboni: commands prependend with SRT_, Medicina_, Noto_ are +# only added to the operator input according to the STATION environment +# variable def antennaPark(): @@ -538,6 +541,12 @@ def servoSetup(): (CCB, KKG, LLP, PLP, PPP) configures the minor servos in ordet to put on focus the receiver """ +def SRT_servoReset(): + """ + servoReset + sends the emergency and alarm reset command to OR7 VBrain server, SRT only + """ + def setAttenuation(): """ setAttenuation=sect,att @@ -584,6 +593,29 @@ def setServoOffset(): setServoOffset=SRP_TY,5 """ +def SRT_setGregorianCoverPosition(): + """ + setGregorianCoverPosition=POSITION + It sets the gregorian cover position + Allowed POSITIONs + CLOSED, closed + OPEN, open + """ + +def SRT_setGregorianAirBladeStatus(): + """ + setGregorianAirBladeStatus=STATUS + It sets the gregorian air blade status + Allowed STATUSes: + AUTO, auto + OFF, off + ON, on + If a ON status is commanded, the air blade stays on for 30 seconds. + It can be toggled off manually. + Sending setGregorianAirBladeStatus=ON again will toggle the air blade to + turn on again. + """ + def setupCCB(): """ The setup command sets the antenna mount, the minor servos, @@ -694,6 +726,9 @@ def wx(): atmospheric pressure (hPa), wind speed (km/h). """ +stations = ['SRT', 'Medicina', 'Noto'] +import os +station = os.environ.get('STATION') import copy myself = __import__(__name__) # Create the commands dictionary @@ -701,10 +736,14 @@ commands = myself.__dict__.copy() # Shallow copy, but we do not mind for cmd in list(commands.keys()): if cmd.startswith('__'): del commands[cmd] + elif any(cmd.startswith(s) for s in stations): + command = commands.pop(cmd) + s, cmd = cmd.split('_') + if s == station: + commands[cmd] = command # Make the setupXXX.__doc__ for cmd in commands: if cmd.startswith('setup'): setupXXX = getattr(myself, cmd) setupXXX.__doc__ = setupCCB.__doc__ - diff --git a/Common/Servers/Scheduler/src/Core.cpp b/Common/Servers/Scheduler/src/Core.cpp index 888b55ddc..7e8566567 100644 --- a/Common/Servers/Scheduler/src/Core.cpp +++ b/Common/Servers/Scheduler/src/Core.cpp @@ -217,6 +217,9 @@ void CCore::execute() throw(ComponentErrors::TimerErrorExImpl, ComponentErrors:: m_parser->add("setServoASConfiguration", "minorservo", 4, &CCore::remoteCall); m_parser->add("clearServoOffsets", "minorservo", 4, &CCore::remoteCall); m_parser->add("setServoOffset", "minorservo", 4, &CCore::remoteCall); + m_parser->add("servoReset", "_servoReset", 0, "SRT"); + m_parser->add("setGregorianCoverPosition", "_cover", 1, "SRT"); + m_parser->add("setGregorianAirBladeStatus", "_airBlade", 1, "SRT"); // active surface m_parser->add("asSetup", "activesurface", 5, &CCore::remoteCall); diff --git a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml index 00e681dfa..9481f7890 100644 --- a/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml +++ b/SRT/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -23,10 +23,10 @@ <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> - <!-- BWG - GFR open --> - <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> - <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> - <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> - <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> + <!-- 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--> + <!--XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB--> + <!--XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE--> </SRTMinorServoLookupTable> diff --git a/SRT/CDB/alma/DataBlock/MinorServo/Tabella Setup.csv b/SRT/CDB/alma/DataBlock/MinorServo/Tabella Setup.csv new file mode 100644 index 000000000..18e70dd49 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/MinorServo/Tabella Setup.csv @@ -0,0 +1,14 @@ +CONFIGURATION;PFP_TX;PFP_TZ;PFP_RTHETA;SRP_TX;SRP_TY;SRP_TZ;SRP_RX;SRP_RY;SRP_RZ;M3R_RZ;GFR_RZ;DR_GFR1;DR_GFR2;DR_GFR3;DR_PFP;GREGORIAN_CAP; +Primario;0;0;0;-5;5;-120;0;0;0;*;*;*;*;*;*;1; +Gregoriano1;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-88.70659;*;*;*;*;3; +Gregoriano2;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-159.8899;*;*;*;*;3; +Gregoriano3;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;90.97161;*;*;*;*;3; +Gregoriano4;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;162.771;*;*;*;*;3; +Gregoriano5;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;55.373967;*;*;*;*;3; +Gregoriano6;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-51.82117;*;*;*;*;3; +Gregoriano7;0;0;0;*;*;*;*;*;*;*;*;*;*;*;*;*; +Gregoriano8;0;0;0;*;*;*;*;*;*;*;*;*;*;*;*;*; +BWG1;0;0;0;-1.5;11.1393650793988;0.358165166130078;0.049894179898239;-0.036111111111111;0;10;0;*;*;*;*;3; +BWG2;0;0;0;*;*;*;*;*;*;*;*;*;*;*;*;*; +BWG3;0;0;0;-1.5;11.1393650793988;-3.77159716192807;0.049894179898239;-0.036111111111111;0;20;0;*;*;*;*;3; +BWG4;0;0;0;*;*;*;*;*;*;*;*;*;*;*;*;*; diff --git a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml index 4dab29cf9..4fb06c72f 100644 --- a/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -31,7 +31,9 @@ <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> <power description="All drive cabinets power status" /> <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> - <gregorian_cover description="Status of the gregorian cover" /> + <gregorian_cover description="Position of the gregorian cover" /> + <air_blade description="Status of the gregorian air blade" /> <last_executed_command description="UNIX time of the last correctly executed command" /> + <error_code description="The type of error encountered" /> </SRTMinorServoBoss> diff --git a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml index 656043cef..f34f6a21c 100644 --- a/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -30,5 +30,6 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> </SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml index abf4e296e..8dfa3aa1c 100644 --- a/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -30,5 +30,6 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> </SRTGenericMinorServo> diff --git a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml index 3d22653f9..5503ee2fd 100644 --- a/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -31,6 +31,7 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> diff --git a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml index 693ae9163..d783896b4 100644 --- a/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -31,6 +31,7 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> diff --git a/SRT/CDB/alma/MINORSERVO/VBrain/VBrain.xml b/SRT/CDB/alma/MINORSERVO/VBrain/VBrain.xml new file mode 100644 index 000000000..32131b046 --- /dev/null +++ b/SRT/CDB/alma/MINORSERVO/VBrain/VBrain.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoVBrainConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoVBrainConfiguration:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + Protocol="http" + IPAddress="127.0.0.1" + Port="12799"/> diff --git a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 4be2b1e2d..ef34edabf 100644 --- a/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -137,11 +137,11 @@ <Procedure name="telescopePark" args="0"> <body> goTo=*,89.8d - receiversPark - servoPark - asPark waitOnSource antennaStop + servoPark + asPark + receiversPark wait=1 antennaPark logMessage=Telescope is now parked 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 00e681dfa..9481f7890 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -23,10 +23,10 @@ <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> - <!-- BWG - GFR open --> - <CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB> - <CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE> - <XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB> - <XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE> + <!-- 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--> + <!--XB> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB--> + <!--XB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></XB_ASACTIVE--> </SRTMinorServoLookupTable> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml index 4dab29cf9..4fb06c72f 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/Boss/Boss.xml @@ -31,7 +31,9 @@ <control description="Boolean indicating whether the servos are controlled by DISCOS or VBrain" /> <power description="All drive cabinets power status" /> <emergency description="Boolean indicating whether there is an emergency button(s) pressed" /> - <gregorian_cover description="Status of the gregorian cover" /> + <gregorian_cover description="Position of the gregorian cover" /> + <air_blade description="Status of the gregorian air blade" /> <last_executed_command description="UNIX time of the last correctly executed command" /> + <error_code description="The type of error encountered" /> </SRTMinorServoBoss> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml index 656043cef..f34f6a21c 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/GFR/GFR.xml @@ -30,5 +30,6 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> </SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml index abf4e296e..8dfa3aa1c 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/M3R/M3R.xml @@ -30,5 +30,6 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> </SRTGenericMinorServo> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml index 3d22653f9..5503ee2fd 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/PFP/PFP.xml @@ -31,6 +31,7 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml index 693ae9163..d783896b4 100644 --- a/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml +++ b/SRT/Configuration/CDB/alma/MINORSERVO/SRP/SRP.xml @@ -31,6 +31,7 @@ <commanded_virtual_positions description="Sequence, latest commanded (via preset) virtual positions" /> <in_use description="Boolean indicating whether the servo is in use in the current configuration" /> <current_setup description="The name of the current configuration" /> + <error_code description="The type of error encountered" /> <tracking description="Boolean indicating whether the servo is tracking the given coordinates" /> <trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" /> <total_trajectory_points description="Number of points sent for the current trajectory" /> diff --git a/SRT/Configuration/CDB/alma/MINORSERVO/VBrain/VBrain.xml b/SRT/Configuration/CDB/alma/MINORSERVO/VBrain/VBrain.xml new file mode 100644 index 000000000..8d4815e2e --- /dev/null +++ b/SRT/Configuration/CDB/alma/MINORSERVO/VBrain/VBrain.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> + +<SRTMinorServoVBrainConfiguration + xmlns="urn:schemas-cosylab-com:SRTMinorServoVBrainConfiguration:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + Protocol="https" + IPAddress="192.168.200.200" + Port="8194"/> diff --git a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml index 4be2b1e2d..ef34edabf 100644 --- a/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml +++ b/SRT/Configuration/CDB/alma/Procedures/StationProcedures/StationProcedures.xml @@ -137,11 +137,11 @@ <Procedure name="telescopePark" args="0"> <body> goTo=*,89.8d - receiversPark - servoPark - asPark waitOnSource antennaStop + servoPark + asPark + receiversPark wait=1 antennaPark logMessage=Telescope is now parked diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl index f6680cf78..293610d47 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServo.idl @@ -98,6 +98,11 @@ module MinorServo */ readonly attribute ACS::ROstring current_setup; + /** + * This property returns the current eventual error code. + */ + readonly attribute ROSRTMinorServoError error_code; + /** * This method asks the PLC the status for the corresponding servo * @throw MinorServoErrors::MinorServoErrorsEx when trying to reset the offsets when they don't match the ones loaded into the hardware @@ -225,6 +230,17 @@ module MinorServo * @param max_ranges the maximum range of the servo axes */ void getAxesRanges(out ACS::doubleSeq min_ranges, out ACS::doubleSeq max_ranges); + + /* + * This method returns the current eventual error code + * @return the current eventual error code + */ + SRTMinorServoError getErrorCode(); + + /** + * This command resets the error status inside the component. + */ + void reset(); }; /** diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl index 9748e827e..746365e31 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoBoss.idl @@ -62,11 +62,21 @@ module MinorServo */ readonly attribute ROSRTMinorServoGregorianCoverStatus gregorian_cover; + /** + * Status of the gregorian air blade + */ + readonly attribute ROSRTMinorServoGregorianAirBladeStatus air_blade; + /** * UNIX Epoch of the last executed command (STATUS commands are not shown here) */ readonly attribute ACS::ROdouble last_executed_command; + /** + * This property returns the current eventual error code. + */ + readonly attribute ROSRTMinorServoError error_code; + /** * This command sets all the minor servos involved in the current focal configuration to their position calculated from the elevation argument * @param elevation, the elevation the minor servos should use to calculate their position @@ -79,7 +89,21 @@ module MinorServo * @param value, the desired gregorian cover position, accepted values are 'open', 'OPEN', 'closed' or 'CLOSED' * @throw MinorServoErrors::MinorServoErrorsEx */ - //void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); + void setGregorianCoverPosition(in string value) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This command turns the gregorian air blade on or off, or sets it to automatic mode + * @param value, the desired air blade status, accepted values are 'on', 'ON', 'off', 'OFF', 'auto' or 'AUTO' + * @throw MinorServoErrors::MinorServoErrorsEx + */ + void setGregorianAirBladeStatus(in string value) raises (MinorServoErrors::MinorServoErrorsEx); + + /** + * This command resets the error status inside the component. It DOES NOT send a reset command to the Leonardo minor servo system. + * In order to reset emergencies and alarms inside the Leonardo minor servo system the user has to call the servoReset command from operatorInput. + * The servoReset command sends a reset to the Leonardo minnor servo system and then calls this method to clear the component error status. + */ + void reset(); }; }; diff --git a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl index 6addf4c0d..45980430f 100644 --- a/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl +++ b/SRT/Interfaces/SRTMinorServoInterface/idl/SRTMinorServoCommon.midl @@ -59,6 +59,17 @@ module MinorServo }; ACS_ENUM(SRTMinorServoGregorianCoverStatus); + /** + * Enumerator which indicates the status of the gregorian air blade + */ + enum SRTMinorServoGregorianAirBladeStatus + { + AIR_BLADE_STATUS_AUTO, + AIR_BLADE_STATUS_OFF, + AIR_BLADE_STATUS_ON + }; + ACS_ENUM(SRTMinorServoGregorianAirBladeStatus); + /** * Enumerator which indicates the status of a servo drive cabinet */ @@ -98,5 +109,22 @@ module MinorServo MOTION_STATUS_ERROR }; ACS_ENUM(SRTMinorServoMotionStatus); + + /** + * Enumerator which indicates what type of error is present on the component + */ + enum SRTMinorServoError + { + ERROR_NO_ERROR, + ERROR_NOT_CONNECTED, + ERROR_MAINTENANCE, + ERROR_EMERGENCY_STOP, + ERROR_COVER_WRONG_POSITION, + ERROR_CONFIG_ERROR, + ERROR_COMMAND_ERROR, + ERROR_SERVO_BLOCKED, + ERROR_DRIVE_CABINET + }; + ACS_ENUM(SRTMinorServoError); }; #endif diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index 4c32b5195..3c5446638 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -702,7 +702,25 @@ namespace MinorServo */ SRTMinorServoGregorianCoverStatus getGregorianCoverPosition() const { - return SRTMinorServoGregorianCoverStatus(this->get<unsigned int>("GREGORIAN_CAP")); + return SRTMinorServoGregorianCoverStatus(std::min(this->get<unsigned int>("GREGORIAN_CAP"), (unsigned int)COVER_STATUS_OPEN)); + } + + /** + * Returns the status of the gregorian air blade. + * @return an enum indicating the status of the gregorian air blade. + */ + SRTMinorServoGregorianAirBladeStatus getGregorianAirBladeStatus() const + { + unsigned int status = this->get<unsigned int>("GREGORIAN_CAP"); + if(status <= COVER_STATUS_CLOSED) + { + status = AIR_BLADE_STATUS_OFF; + } + else + { + status -= 2; + } + return SRTMinorServoGregorianAirBladeStatus(status); } /** diff --git a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp index f0606fe29..1f182d455 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp +++ b/SRT/Libraries/SRTMinorServoLibrary/src/SRTMinorServoSocket.cpp @@ -74,21 +74,21 @@ void SRTMinorServoSocket::connect() throw impl.getMinorServoErrorsEx(); } - if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) + if(setSockMode(m_error, NONBLOCKING) != SUCCESS) { - m_socket_status = TIMEOUT; + m_socket_status = NOTREADY; Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); - impl.setReason("Cannot connect the socket."); + impl.setReason("Cannot set the socket to non-blocking."); throw impl.getMinorServoErrorsEx(); } - if(setSockMode(m_error, NONBLOCKING) != SUCCESS) + if(Connect(m_error, m_ip_address.c_str(), m_port) == FAIL) { - m_socket_status = NOTREADY; + m_socket_status = TIMEOUT; Close(m_error); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, impl, "SRTMinorServoSocket::SRTMinorServoSocket()"); - impl.setReason("Cannot set the socket to non-blocking."); + impl.setReason("Cannot connect the socket."); throw impl.getMinorServoErrorsEx(); } @@ -102,10 +102,10 @@ const bool SRTMinorServoSocket::isConnected() const SRTMinorServoAnswerMap SRTMinorServoSocket::sendCommand(std::string command, std::optional<std::reference_wrapper<SRTMinorServoAnswerMap>> map) { - std::lock_guard<std::mutex> guard(m_mutex); - connect(); + std::lock_guard<std::mutex> guard(m_mutex); + double start_time = IRA::CIRATools::getUNIXEpoch(); size_t sent_bytes = 0; diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd index c6e235928..88b054568 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServo.xsd @@ -10,41 +10,23 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:ms="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> - - <xs:complexType name="SRTMinorServoCabinetStatusType"> - <xs:complexContent> - <xs:restriction base="baci:ROEnum"> - <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> - <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DRIVE_CABINET_OK" /> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="SRTMinorServoOperativeModeType"> - <xs:complexContent> - <xs:restriction base="baci:ROEnum"> - <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> - <xs:attribute name="graph_max" type="xs:int" use="optional" default="5" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OPERATIVE_MODE_UNKNOWN" /> - </xs:restriction> - </xs:complexContent> - </xs:complexType> + <xs:import namespace="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" schemaLocation="SRTMinorServoCommon.xsd"/> <xs:complexType name="SRTBaseMinorServoType"> <xs:complexContent> <xs:extension base="baci:CharacteristicComponent"> <xs:sequence> <xs:element name="enabled" type="mng:BooleanType" /> - <xs:element name="drive_cabinet_status" type="SRTMinorServoCabinetStatusType" /> + <xs:element name="drive_cabinet_status" type="ms:SRTMinorServoCabinetStatusType" /> <xs:element name="block" type="mng:BooleanType" /> - <xs:element name="operative_mode" type="SRTMinorServoOperativeModeType" /> + <xs:element name="operative_mode" type="ms:SRTMinorServoOperativeModeType" /> <xs:element name="physical_axes" type="baci:ROlong" /> <xs:element name="physical_axes_enabled" type="baci:RObooleanSeq" /> <xs:element name="physical_positions" type="baci:ROdoubleSeq" /> @@ -57,6 +39,7 @@ <xs:element name="commanded_virtual_positions" type="baci:ROdoubleSeq" /> <xs:element name="in_use" type="mng:BooleanType" /> <xs:element name="current_setup" type="baci:ROstring" /> + <xs:element name="error_code" type="ms:SRTMinorServoErrorType" /> </xs:sequence> <xs:attribute name="physical_axes" type="xs:unsignedShort" use="required" /> <xs:attribute name="virtual_axes" type="xs:unsignedShort" use="required" /> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd index 2d87a89a5..153014681 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoBoss.xsd @@ -9,42 +9,14 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + xmlns:ms="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> - - <xs:complexType name="SRTMinorServoFocalConfigurationType"> - <xs:complexContent> - <xs:restriction base="baci:ROEnum"> - <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> - <xs:attribute name="graph_max" type="xs:int" use="optional" default="13" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONFIGURATION_UNKNOWN" /> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="SRTMinorServoGregorianCoverStatusType"> - <xs:complexContent> - <xs:restriction base="baci:ROEnum"> - <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> - <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="COVER_STATUS_UNKNOWN" /> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="SRTMinorServoControlStatusType"> - <xs:complexContent> - <xs:restriction base="baci:ROEnum"> - <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> - <xs:attribute name="graph_max" type="xs:int" use="optional" default="1" /> - <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONTROL_DISCOS" /> - </xs:restriction> - </xs:complexContent> - </xs:complexType> + <xs:import namespace="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" schemaLocation="SRTMinorServoCommon.xsd"/> <xs:complexType name="SRTMinorServoBossType"> <xs:complexContent> @@ -61,15 +33,17 @@ <xs:element name="scanActive" type="mng:BooleanType" /> <xs:element name="scanning" type="mng:BooleanType" /> <xs:element name="tracking" type="mng:BooleanType" /> - <xs:element name="current_configuration" type="SRTMinorServoFocalConfigurationType" /> + <xs:element name="current_configuration" type="ms:SRTMinorServoFocalConfigurationType" /> <xs:element name="simulation_enabled" type="mng:BooleanType" /> <xs:element name="plc_time" type="baci:ROdouble" /> <xs:element name="plc_version" type="baci:ROstring" /> - <xs:element name="control" type="SRTMinorServoControlStatusType" /> + <xs:element name="control" type="ms:SRTMinorServoControlStatusType" /> <xs:element name="power" type="mng:BooleanType" /> <xs:element name="emergency" type="mng:BooleanType" /> - <xs:element name="gregorian_cover" type="SRTMinorServoGregorianCoverStatusType" /> + <xs:element name="gregorian_cover" type="ms:SRTMinorServoGregorianCoverStatusType" /> + <xs:element name="air_blade" type="ms:SRTMinorServoGregorianAirBladeStatusType" /> <xs:element name="last_executed_command" type="baci:ROdouble" /> + <xs:element name="error_code" type="ms:SRTMinorServoErrorType" /> </xs:sequence> <xs:attribute name="status_thread_period" type="xs:double" use="required" /> <xs:attribute name="active_surface_configuration" type="xs:string" use="required" /> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoCommon.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoCommon.xsd new file mode 100644 index 000000000..d1458353c --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoCommon.xsd @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Author: Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoCommon:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoFocalConfigurationType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="13" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONFIGURATION_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoGregorianCoverStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="COVER_STATUS_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoGregorianAirBladeStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="AIR_BLADE_STATUS_OFF" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoControlStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="1" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="CONTROL_DISCOS" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoCabinetStatusType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="2" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="DRIVE_CABINET_OK" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoOperativeModeType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="5" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="OPERATIVE_MODE_UNKNOWN" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="SRTMinorServoErrorType"> + <xs:complexContent> + <xs:restriction base="baci:ROEnum"> + <xs:attribute name="graph_min" type="xs:int" use="optional" default="0" /> + <xs:attribute name="graph_max" type="xs:int" use="optional" default="7" /> + <xs:attribute name="statesDescription" type="xs:string" use="optional" default="ERROR_NO_ERROR" /> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoVBrainConfiguration.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoVBrainConfiguration.xsd new file mode 100644 index 000000000..722053f54 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoVBrainConfiguration.xsd @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<xs:schema + targetNamespace="urn:schemas-cosylab-com:SRTMinorServoVBrainConfiguration:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:SRTMinorServoVBrainConfiguration:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:mng="urn:schemas-cosylab-com:Managment:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/> + + <xs:complexType name="SRTMinorServoVBrainConfigurationType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + <xs:attribute name="Protocol" type="xs:string" use="required" /> + <xs:attribute name="IPAddress" type="xs:string" use="required" /> + <xs:attribute name="Port" type="xs:unsignedShort" use="required" /> + <xs:attribute name="RequestTimeout" type="xs:double" use="optional" default="3"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="SRTMinorServoVBrainConfiguration" type="SRTMinorServoVBrainConfigurationType"/> + +</xs:schema> diff --git a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h index 330d3905d..49749dc7f 100644 --- a/SRT/Servers/SRTMinorServo/include/MSDevIOs.h +++ b/SRT/Servers/SRTMinorServo/include/MSDevIOs.h @@ -68,9 +68,10 @@ namespace MinorServo * @param scanning a reference to the TBoolean indicating whether the system is scanning or not. * @param current_scan a reference to the SRTMinorServoScan object containing the parameters for the current scan. It is used to read the servo name and axis involved in the scan. */ - MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoGeneralStatus& boss_status, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : + MSMotionInfoDevIO(const std::atomic<SRTMinorServoMotionStatus>& motion_status, const SRTMinorServoGeneralStatus& boss_status, const std::atomic<SRTMinorServoError>& error, const std::atomic<Management::TBoolean>& scanning, const SRTMinorServoScan& current_scan) : m_motion_status(motion_status), m_boss_status(boss_status), + m_error(error), m_scanning(scanning), m_current_scan(current_scan) {} @@ -120,13 +121,13 @@ namespace MinorServo // If I can read the status of the gregorian cover I will notify the user about it on the GUI SRTMinorServoGregorianCoverStatus cover_position = m_boss_status.getGregorianCoverPosition(); - if(cover_position == COVER_STATUS_OPEN) + if(cover_position == COVER_STATUS_CLOSED) { - motion_status += ", gregorian cover open"; + motion_status += ", gregorian cover closed"; } - else if(cover_position == COVER_STATUS_CLOSED) + if(cover_position == COVER_STATUS_OPEN) { - motion_status += ", gregorian cover closed"; + motion_status += ", gregorian cover open"; } } catch(...) @@ -138,7 +139,61 @@ namespace MinorServo } case MOTION_STATUS_ERROR: { - motion_status = "Error"; + switch(m_error.load()) + { + case ERROR_NO_ERROR: + { + // Should never get here, leave empty + motion_status = ""; + break; + } + case ERROR_NOT_CONNECTED: + { + motion_status = "Socket not connected"; + break; + } + case ERROR_MAINTENANCE: + { + motion_status = "System in maintenance mode"; + break; + } + case ERROR_EMERGENCY_STOP: + { + motion_status = "Emergency stop pressed"; + break; + } + case ERROR_COVER_WRONG_POSITION: + { + motion_status = "Gregorian cover in wrong position"; + break; + } + case ERROR_CONFIG_ERROR: + { + motion_status = "Error while configuring the system"; + break; + } + case ERROR_COMMAND_ERROR: + { + motion_status = "Error while executing a remote command"; + break; + } + case ERROR_SERVO_BLOCKED: + { + motion_status = "Minor servo group is blocked"; + break; + } + case ERROR_DRIVE_CABINET: + { + motion_status = "Minor servo group drive cabinet error"; + break; + } + default: + { + // Should never get here, unknown error condition + motion_status = "Unknown error"; + break; + } + } break; } } @@ -161,6 +216,11 @@ namespace MinorServo */ const SRTMinorServoGeneralStatus& m_boss_status; + /** + * Reference to the SRTMinorServoError object of the Boss. + */ + const std::atomic<SRTMinorServoError>& m_error; + /** * Reference to the boolean telling if the system is scanning. */ @@ -187,6 +247,7 @@ namespace MinorServo SRTMinorServoFocalConfiguration, SRTMinorServoControlStatus, SRTMinorServoGregorianCoverStatus, + SRTMinorServoGregorianAirBladeStatus, SRTMinorServoCabinetStatus, SRTMinorServoOperativeMode > @@ -261,7 +322,7 @@ namespace MinorServo * The templates is specialized for the combinations of types listed right below and the compilation will fail if the developer attempts to use it with any other types combination. */ template <typename C, typename A, typename = std::enable_if_t< - is_any_v<C, Management::TSystemStatus, Management::TBoolean, ACE_CString, CORBA::Long> || (std::is_same_v<C, ACS::doubleSeq> && std::is_same_v<A, std::vector<double>>) + is_any_v<C, Management::TSystemStatus, Management::TBoolean, ACE_CString, CORBA::Long, SRTMinorServoError> || (std::is_same_v<C, ACS::doubleSeq> && std::is_same_v<A, std::vector<double>>) >> class MSGenericDevIO : public MSBaseDevIO<C> { diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h index 157fe1f23..b315443a8 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossCore.h @@ -118,6 +118,14 @@ private: */ void setGregorianCoverPosition(std::string position); + /** + * Sets the gregorian air blade status. + * @param status the desired status for the gregorian air blade, allowed value are 'on', 'ON', 'off', 'OFF', 'auto' or 'AUTO'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded status is unknown or the gregorian cover is currently closed, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + void setGregorianAirBladeStatus(std::string status); + /** * Configures the whole minor servo system to a desired position. * @param elevation the elevation to use for all the minor servo positions calculation. @@ -268,8 +276,15 @@ private: /** * Method that sets all the necessary variable to signal a failure of the minor servo system. + * @param error the type of error the system should display + */ + void setError(SRTMinorServoError error); + + /** + * Method that clears the error status from the system. + * This will show the system cleared the error status and is ready to be configured again. */ - void setFailure(); + void reset(bool force=false); /** * Method used to retrieve a configuration value from the CDB. @@ -382,6 +397,11 @@ private: */ std::atomic<Management::TBoolean> m_tracking; + /** + * Enumerator containing the error code. + */ + std::atomic<SRTMinorServoError> m_error_code; + /** * This boolean will be set to true every time the socket connects. * When true it will trigger a procedure that will check if the minor servos offsets need to be reloaded because of a discrepancy between the DISCOS offsets (user + system) and the Leonardo offsets. diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h index 40eb0c828..a22cceb6b 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoBossImpl.h @@ -264,6 +264,14 @@ public: */ virtual void setGregorianCoverPosition(const char* position); + /** + * Sets the gregorian air blade status. + * @param status the desired status of the gregorian air blade, allowed values are 'on', 'ON', 'off', 'OFF', 'auto' or 'AUTO'. + * @throw MinorServoErrors::MinorServoErrorsEx when the commanded status is unknown or the gregorian cover is currently closed, + * when anything goes wrong in the lower communication level or if checkLineStatus throws. + */ + virtual void setGregorianAirBladeStatus(const char* status); + /** * This method checks if a scan with the given parameters is feasible. * @param start_time the starting ACS::Time for the requested scan. @@ -298,6 +306,11 @@ public: */ virtual void preset(double elevation); + /** + * This command clears the error status from the component. + */ + void reset(); + /** * Parser method. It executes the desired command. */ @@ -417,12 +430,24 @@ public: */ virtual ROSRTMinorServoGregorianCoverStatus_ptr gregorian_cover(); + /** + * Returns a reference to the air_blade property implementation of the IDL interface. + * @return pointer to read-only SRTMinorServoGregorianAirBladeStatus property air_blade. + */ + virtual ROSRTMinorServoGregorianAirBladeStatus_ptr air_blade(); + /** * Returns a reference to the last_executed_command property implementation of the IDL interface. * @return pointer to read-only double property last_executed_command. */ virtual ACS::ROdouble_ptr last_executed_command(); + /** + * Returns a reference to the error_code property implementation of the IDL interface. + * @return pointer to the read-only SRTMinorServoError property error_code. + */ + virtual ROSRTMinorServoError_ptr error_code(); + private: /** * Component name. @@ -539,10 +564,20 @@ private: */ baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>> m_gregorian_cover_ptr; + /** + * Pointer to the air_blade property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianAirBladeStatus), POA_MinorServo::ROSRTMinorServoGregorianAirBladeStatus>> m_air_blade_ptr; + /** * Pointer to the last_executed_command property. */ baci::SmartPropertyPointer<baci::ROdouble> m_last_executed_command_ptr; + + /** + * Pointer to the error_code property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoError), POA_MinorServo::ROSRTMinorServoError>> m_error_code_ptr; }; #endif diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h index a286b5395..a8254f7dd 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoImpl.h @@ -173,6 +173,17 @@ public: */ void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out); + /** + * Returns the current error code. + * @return the current SRTMinorServoError code. + */ + SRTMinorServoError getErrorCode() { return m_error_code.load(); }; + + /** + * Resets the component error code to ERROR_NO_ERROR. + */ + void reset(); + /** * Returns the virtual axes positions to where the servo system was at the given time acs_time. * @param acs_time the epoch we want to retrieve the axes virtual positions of the servo system. @@ -288,6 +299,12 @@ public: */ virtual ACS::ROstring_ptr current_setup(); + /** + * Returns a reference to the error_code property implementation of the IDL interface. + * @return pointer to the read-only SRTMinorServoError property error_code. + */ + virtual ROSRTMinorServoError_ptr error_code(); + protected: /** * Checks if the socket is connected and if the minor servo system is in a good state. @@ -348,17 +365,17 @@ private: * Units of the virtual axes of the servo system. */ const std::vector<std::string> m_virtual_axes_units; - - /** - * Latest commanded virtual positions. It only takes into account the preset command. - */ - std::vector<double> m_commanded_virtual_positions; protected: /** * Dictionary containing the last status retrieved form the servo system. */ SRTMinorServoStatus m_status; + /** + * Current error code. + */ + std::atomic<SRTMinorServoError> m_error_code; + /** * Commanded user offsets for each axis of the servo system. */ @@ -369,6 +386,11 @@ protected: */ std::vector<double> m_system_offsets; + /** + * Latest commanded virtual positions. It only takes into account the preset command. + */ + std::vector<double> m_commanded_virtual_positions; + /** * Queue of positions assumed by the servo system in time. */ @@ -494,6 +516,11 @@ private: */ baci::SmartPropertyPointer<baci::ROstring> m_current_setup_ptr; + /** + * Pointer to the error_code property. + */ + baci::SmartPropertyPointer<ROEnumImpl<ACS_ENUM_T(SRTMinorServoError), POA_MinorServo::ROSRTMinorServoError>> m_error_code_ptr; + /** * Table containing the coefficients for the positions calculations. */ @@ -532,7 +559,9 @@ protected: void getAxesInfo(ACS::stringSeq_out axes_names_out, ACS::stringSeq_out axes_units_out) { SRTBaseMinorServoImpl::getAxesInfo(axes_names_out, axes_units_out); }\ ACS::doubleSeq* getAxesPositions(ACS::Time acs_time) { return SRTBaseMinorServoImpl::getAxesPositions(acs_time); }\ long getTravelTime(const ACS::doubleSeq& start, const ACS::doubleSeq& dest) { return SRTBaseMinorServoImpl::getTravelTime(start, dest); }\ - void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) { SRTBaseMinorServoImpl::getAxesRanges(min_ranges_out, max_ranges_out); } + void getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS::doubleSeq_out max_ranges_out) { SRTBaseMinorServoImpl::getAxesRanges(min_ranges_out, max_ranges_out); }\ + SRTMinorServoError getErrorCode() { return SRTBaseMinorServoImpl::getErrorCode(); }\ + void reset() { SRTBaseMinorServoImpl::reset(); } /** * MACRO definition of child classes properties methods. @@ -556,7 +585,8 @@ protected: virtual ACS::ROdoubleSeq_ptr virtual_system_offsets() { return SRTBaseMinorServoImpl::virtual_system_offsets(); }\ virtual ACS::ROdoubleSeq_ptr commanded_virtual_positions() { return SRTBaseMinorServoImpl::commanded_virtual_positions(); }\ virtual Management::ROTBoolean_ptr in_use() { return SRTBaseMinorServoImpl::in_use(); }\ - virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); } + virtual ACS::ROstring_ptr current_setup() { return SRTBaseMinorServoImpl::current_setup(); }\ + virtual ROSRTMinorServoError_ptr error_code() { return SRTBaseMinorServoImpl::error_code(); } /** * This class implements the SRTGenericMinorServoImpl CORBA interface for a generic SRTMinorServo component. diff --git a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h index 32ae15c9e..c5160b019 100644 --- a/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h +++ b/SRT/Servers/SRTMinorServo/include/SRTMinorServoTrackingThread.h @@ -75,11 +75,6 @@ private: * The current trajectory point time. */ ACS::Time m_point_time; - - /** - * Boolean which indicates if the tracking thread exited with an error or not. - */ - bool m_error; }; #endif /*_SRTMINORSERVOTRACKINGTHREAD_H_*/ diff --git a/SRT/Servers/SRTMinorServo/src/Makefile b/SRT/Servers/SRTMinorServo/src/Makefile index c11de1645..a61ed3645 100644 --- a/SRT/Servers/SRTMinorServo/src/Makefile +++ b/SRT/Servers/SRTMinorServo/src/Makefile @@ -9,11 +9,11 @@ EXECUTABLES = EXECUTABLES_L = -PY_SCRIPTS = #_cover +PY_SCRIPTS = _cover _airBlade _servoReset # On-Line Database Files # ---------------------- -CDB_SCHEMAS = SRTMinorServoBoss SRTMinorServo SRTMinorServoSocketConfiguration SRTMinorServoProperties SRTMinorServoLookupTable +CDB_SCHEMAS = SRTMinorServoCommon SRTMinorServoBoss SRTMinorServo SRTMinorServoSocketConfiguration SRTMinorServoVBrainConfiguration SRTMinorServoProperties SRTMinorServoLookupTable # ---------------------------- # Libraries (public and local) diff --git a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp index dea56af00..8371127f0 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTBaseMinorServoImpl.cpp @@ -17,8 +17,10 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_virtual_axes_names, SRTBaseMinorServoImpl::getPropertiesTable(*this, "virtual_offsets") ), + m_error_code(ERROR_NO_ERROR), m_user_offsets(m_virtual_axes, 0.0), m_system_offsets(m_virtual_axes, 0.0), + m_commanded_virtual_positions(m_virtual_axes, 0.0), m_positions_queue(5 * 60 * int(1 / getCDBValue<double>(container_services, "status_thread_period", "/MINORSERVO/Boss")), m_virtual_axes), m_min(SRTBaseMinorServoImpl::getMotionConstant(*this, "min_range")), m_max(SRTBaseMinorServoImpl::getMotionConstant(*this, "max_range")), @@ -44,6 +46,7 @@ SRTBaseMinorServoImpl::SRTBaseMinorServoImpl(const ACE_CString& component_name, m_commanded_virtual_positions_ptr(this), m_in_use_ptr(this), m_current_setup_ptr(this), + m_error_code_ptr(this), m_current_lookup_table(), m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(container_services)), m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)) @@ -92,6 +95,8 @@ void SRTBaseMinorServoImpl::initialize() new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_in_use), true); m_current_setup_ptr = new baci::ROstring((m_component_name + ":current_setup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(m_current_setup), true); + m_error_code_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoError), POA_MinorServo::ROSRTMinorServoError>((m_component_name + ":error_code").c_str(), getComponent(), + new MSGenericDevIO<SRTMinorServoError, std::atomic<SRTMinorServoError>>(m_error_code), true); } catch(std::bad_alloc& ba) { @@ -157,6 +162,8 @@ bool SRTBaseMinorServoImpl::status() } catch(...) { + // Something went wrong when sending the status command + m_error_code.store(ERROR_COMMAND_ERROR); return false; } @@ -171,6 +178,7 @@ void SRTBaseMinorServoImpl::stow(CORBA::Long stow_position) if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow(m_servo_name, (unsigned int)stow_position)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stow()").c_str()); ex.setReason("Received NAK in response to a STOW command."); ex.log(LM_DEBUG); @@ -186,6 +194,7 @@ void SRTBaseMinorServoImpl::stop() if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stop(m_servo_name)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::stop()").c_str()); ex.setReason("Received NAK in response to a STOP command."); ex.log(LM_DEBUG); @@ -206,13 +215,8 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coords) if(virtual_coordinates.length() == 0) { // It means we want to command the latest coordinates again, to apply the offset in the LDO servo system - // We execute the copy only if we already commanded a set of coordinates, otherwise we let the flow go to the next - // if which will raise regardless - if(!m_commanded_virtual_positions.empty()) - { - virtual_coordinates.length(m_commanded_virtual_positions.size()); - std::copy(m_commanded_virtual_positions.begin(), m_commanded_virtual_positions.end(), virtual_coordinates.begin()); - } + virtual_coordinates.length(m_commanded_virtual_positions.size()); + std::copy(m_commanded_virtual_positions.begin(), m_commanded_virtual_positions.end(), virtual_coordinates.begin()); } if(virtual_coordinates.length() != m_virtual_axes) @@ -240,16 +244,13 @@ void SRTBaseMinorServoImpl::preset(const ACS::doubleSeq& virtual_coords) if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::preset(m_servo_name, coordinates)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::preset()").c_str()); ex.setReason("Received NAK in response to a PRESET command."); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } - if(m_commanded_virtual_positions.empty()) - { - m_commanded_virtual_positions.resize(m_virtual_axes); - } std::copy(coordinates.begin(), coordinates.end(), m_commanded_virtual_positions.begin()); } @@ -320,9 +321,16 @@ bool SRTBaseMinorServoImpl::setup(const char* configuration_name) clearUserOffsets(); clearSystemOffsets(); m_in_use.store(Management::MNG_TRUE); + // The positions tables inside the Leonardo minor servo systems are calculated with an elevation of 45 degrees. + // We need to be sure the values are correct otherwise there will be a discrepancy. + ACS::doubleSeq commanded_coordinates = *calcCoordinates(45); + std::copy(commanded_coordinates.begin(), commanded_coordinates.end(), m_commanded_virtual_positions.begin()); + return true; + } + else + { + return false; } - - return true; } ACS::doubleSeq* SRTBaseMinorServoImpl::calcCoordinates(double elevation) @@ -408,6 +416,7 @@ void SRTBaseMinorServoImpl::setUserOffset(const char* axis_name, CORBA::Double o if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setUserOffset()").c_str()); ex.setReason("Received NAK in response to an OFFSET command."); ex.log(LM_DEBUG); @@ -430,6 +439,7 @@ void SRTBaseMinorServoImpl::clearUserOffsets() if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearUserOffset()").c_str()); ex.setReason("Received NAK in response to an OFFSET command."); ex.log(LM_DEBUG); @@ -486,6 +496,7 @@ void SRTBaseMinorServoImpl::setSystemOffset(const char* axis_name, CORBA::Double if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::setSystemOffset()").c_str()); ex.setReason("Received NAK in response to an OFFSET command."); ex.log(LM_DEBUG); @@ -509,6 +520,7 @@ void SRTBaseMinorServoImpl::clearSystemOffsets() if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, offsets)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::clearSystemOffset()").c_str()); ex.setReason("Received NAK in response to an OFFSET command."); ex.log(LM_DEBUG); @@ -534,6 +546,7 @@ void SRTBaseMinorServoImpl::reloadOffsets() // Offsets do not correspond, should reset them by sending a offset command if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::offset(m_servo_name, DISCOS_offsets)).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::reloadOffsets()").c_str()); ex.setReason("Received NAK in response to an OFFSET command."); ex.log(LM_DEBUG); @@ -555,7 +568,7 @@ void SRTBaseMinorServoImpl::getAxesInfo(ACS::stringSeq_out axes_names_out, ACS:: for(size_t i = 0; i < m_virtual_axes; i++) { - axes_names[i] = (m_servo_name + "_" + m_virtual_axes_names[i] == "ROTATION" ? "RZ" : m_virtual_axes_names[i]).c_str(); + axes_names[i] = (m_virtual_axes_names[i] == "ROTATION" ? "RZ" : m_virtual_axes_names[i]).c_str(); axes_units[i] = m_virtual_axes_units[i].c_str(); } @@ -684,6 +697,12 @@ void SRTBaseMinorServoImpl::getAxesRanges(ACS::doubleSeq_out min_ranges_out, ACS max_ranges_out = max_ranges._retn(); } +void SRTBaseMinorServoImpl::reset() +{ + AUTO_TRACE("SRTBaseMinorServoImpl::reset()"); + m_error_code.store(ERROR_NO_ERROR); +} + /////////////////// PROTECTED methods void SRTBaseMinorServoImpl::checkLineStatus() { @@ -692,14 +711,25 @@ void SRTBaseMinorServoImpl::checkLineStatus() _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "checkLineStatus()").c_str()); ex.setReason("Socket not connected."); ex.log(LM_DEBUG); + m_error_code.store(ERROR_NOT_CONNECTED); + throw ex.getMinorServoErrorsEx(); + } + + if(m_status.isBlocked() == Management::MNG_TRUE) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); + ex.setReason("Servo system blocked."); + ex.log(LM_DEBUG); + m_error_code.store(ERROR_SERVO_BLOCKED); throw ex.getMinorServoErrorsEx(); } - if(m_status.isBlocked() == Management::MNG_TRUE || m_status.getDriveCabinetStatus() == DRIVE_CABINET_ERROR) + if(m_status.getDriveCabinetStatus() == DRIVE_CABINET_ERROR) { _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, (m_servo_name + "::checkLineStatus()").c_str()); - ex.setReason("Servo system blocked or drive cabinet error."); + ex.setReason("Drive cabinet error."); ex.log(LM_DEBUG); + m_error_code.store(ERROR_DRIVE_CABINET); throw ex.getMinorServoErrorsEx(); } } @@ -835,3 +865,4 @@ GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_virtual_system GET_PROPERTY_REFERENCE(ACS::ROdoubleSeq, SRTBaseMinorServoImpl, m_commanded_virtual_positions_ptr, commanded_virtual_positions); GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTBaseMinorServoImpl, m_in_use_ptr, in_use); GET_PROPERTY_REFERENCE(ACS::ROstring, SRTBaseMinorServoImpl, m_current_setup_ptr, current_setup); +GET_PROPERTY_REFERENCE(ROSRTMinorServoError, SRTBaseMinorServoImpl, m_error_code_ptr, error_code); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index c529b0b0c..3e8120561 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -24,6 +24,7 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_scan_active(Management::MNG_FALSE), m_scanning(Management::MNG_FALSE), m_tracking(Management::MNG_FALSE), + m_error_code(ERROR_NO_ERROR), m_reload_servo_offsets(true), m_socket_configuration(SRTMinorServoSocketConfiguration::getInstance(m_component.getContainerServices())), m_socket(SRTMinorServoSocket::getInstance(m_socket_configuration.m_ip_address, m_socket_configuration.m_port, m_socket_configuration.m_timeout)), @@ -31,8 +32,8 @@ SRTMinorServoBossCore::SRTMinorServoBossCore(SRTMinorServoBossImpl& component) : m_servos{ //{ "PFP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/PFP") }, { "SRP", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/SRP") }, - { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") } - //{ "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } + { "GFR", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/GFR") }, + { "M3R", m_component.getContainerServices()->getComponent<SRTBaseMinorServo>("MINORSERVO/M3R") } }, m_tracking_servos{ //{ "PFP", m_component.getContainerServices()->getComponent<SRTProgramTrackMinorServo>("MINORSERVO/PFP") }, @@ -62,13 +63,18 @@ bool SRTMinorServoBossCore::status() try { // Attempt communication anyway - m_socket.sendCommand(SRTMinorServoCommandLibrary::status(), m_status); + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::status(), m_status).checkOutput()) + { + setError(ERROR_COMMAND_ERROR); + return false; + } if(m_socket_connected.load() == Management::MNG_FALSE) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_NOTICE, "Socket connected.")); + // We just reconnected, we can try to reset the error automatically, if there is another error in the following code the reset will simply be overridden m_socket_connected.store(Management::MNG_TRUE); - m_subsystem_status.store(Management::MNG_WARNING); + reset(true); } } catch(MinorServoErrors::MinorServoErrorsEx& ex) @@ -82,7 +88,7 @@ bool SRTMinorServoBossCore::status() stopThread(m_park_thread); stopThread(m_tracking_thread); stopThread(m_scan_thread); - setFailure(); + setError(ERROR_NOT_CONNECTED); m_reload_servo_offsets = true; } @@ -97,29 +103,28 @@ bool SRTMinorServoBossCore::status() catch(MinorServoErrors::MinorServoErrorsEx& ex) { _IRA_LOGFILTER_LOG(LM_ERROR, "SRTMinorServoBossCore::status()", getReasonFromEx(ex)); - setFailure(); return false; } SRTMinorServoMotionStatus motion_status = m_motion_status.load(); - /*if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) + if(motion_status == MOTION_STATUS_TRACKING || motion_status == MOTION_STATUS_CONFIGURED) { // We only get here if the system is configured, therefore we check the correct position of the gregorian cover SRTMinorServoGregorianCoverStatus commanded_gregorian_cover_position = m_status.getFocalConfiguration() == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; if(m_status.getGregorianCoverPosition() != commanded_gregorian_cover_position) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, "Gregorian cover in wrong position.")); - setFailure(); + setError(ERROR_COVER_WRONG_POSITION); return false; } - }*/ + } for(const auto& [name, servo] : m_servos) { if(!servo->status()) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::status()", (LM_CRITICAL, ("Error checking " + name + " status.").c_str())); - setFailure(); + setError(servo->getErrorCode()); return false; } @@ -131,7 +136,7 @@ bool SRTMinorServoBossCore::status() m_reload_servo_offsets = false; - if(motion_status == MOTION_STATUS_TRACKING) + if(motion_status == MOTION_STATUS_CONFIGURED || motion_status == MOTION_STATUS_TRACKING) { if(std::all_of(m_current_tracking_servos.begin(), m_current_tracking_servos.end(), [](const std::pair<std::string, SRTProgramTrackMinorServo_ptr>& servo) -> bool { @@ -145,10 +150,6 @@ bool SRTMinorServoBossCore::status() m_tracking.store(Management::MNG_FALSE); } } - else if(motion_status == MOTION_STATUS_CONFIGURED) - { - m_tracking.store(Management::MNG_TRUE); - } else { m_tracking.store(Management::MNG_FALSE); @@ -338,10 +339,10 @@ void SRTMinorServoBossCore::park() m_current_servos.clear(); m_current_tracking_servos.clear(); - /*try + try { // Send the STOW command to close the gregorian cover - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", COVER_STATUS_CLOSED)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", COVER_STATUS_CLOSED)).checkOutput()) { _EXCPT(ManagementErrors::ParkingErrorExImpl, ex, "SRTMinorServoBossCore::park()"); ex.setSubsystem("MinorServo"); @@ -357,7 +358,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) @@ -433,6 +434,14 @@ void SRTMinorServoBossCore::setElevationTracking(std::string configuration) if(m_motion_status.load() == MOTION_STATUS_TRACKING) { m_motion_status.store(MOTION_STATUS_CONFIGURED); + + try + { + preset(getElevation(getTimeStamp())); + } + catch(...) + { + } } } } @@ -517,15 +526,82 @@ void SRTMinorServoBossCore::setGregorianCoverPosition(std::string position) throw ex.getMinorServoErrorsEx(); } - ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_NOTICE, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); + SRTMinorServoGregorianCoverStatus desired_position; + if(position == "OPEN") + { + desired_position = COVER_STATUS_OPEN; + } + else + { + desired_position = COVER_STATUS_CLOSED; + } + + if(desired_position != m_status.getGregorianCoverPosition()) + { + ACS_LOG(LM_FULL_INFO, "setGregorianCoverPosition", (LM_NOTICE, ("SETTING GREGORIAN COVER POSITION TO " + position).c_str())); - if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", position == "OPEN" ? COVER_STATUS_OPEN : COVER_STATUS_CLOSED)).checkOutput()) + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", desired_position)).checkOutput()) + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); + ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } +} + +void SRTMinorServoBossCore::setGregorianAirBladeStatus(std::string status) +{ + AUTO_TRACE("SRTMinorServoBossCore::setGregorianAirBladeStatus()"); + + checkLineStatus(); + + std::transform(status.begin(), status.end(), status.begin(), ::toupper); + + if(status != "ON" && status != "OFF" && status != "AUTO") { - _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianCoverPosition()"); - ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianAirBladeStatus()"); + ex.addData("Reason", ("Unknown status '" + status + "'.").c_str()); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + + SRTMinorServoMotionStatus motion_status = m_motion_status.load(); + SRTMinorServoGregorianCoverStatus cover_status = m_status.getGregorianCoverPosition(); + if((motion_status != MOTION_STATUS_CONFIGURED && motion_status != MOTION_STATUS_TRACKING) || cover_status == COVER_STATUS_CLOSED) + { + _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianAirBladeStatus()"); + ex.setReason("You can set the gregorian cover air blade status only when the system is configured or tracking and the gregorian cover is open."); ex.log(LM_DEBUG); throw ex.getMinorServoErrorsEx(); } + + SRTMinorServoGregorianAirBladeStatus desired_status; + if(status == "ON") + { + desired_status = AIR_BLADE_STATUS_ON; + } + else if(status == "OFF") + { + desired_status = AIR_BLADE_STATUS_OFF; + } + else + { + desired_status = AIR_BLADE_STATUS_AUTO; + } + + if(desired_status != m_status.getGregorianAirBladeStatus()) + { + ACS_LOG(LM_FULL_INFO, "setGregorianAirBladeStatus", (LM_NOTICE, ("SETTING AIR BLADE STATUS TO " + status).c_str())); + + if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", 2 + (unsigned int)desired_status)).checkOutput()) + { + _EXCPT(MinorServoErrors::StowErrorExImpl, ex, "SRTMinorServoBossCore::setGregorianAirBladeStatus()"); + ex.addData("Reason", "Error while sending a STOW command to the gregorian cover."); + ex.log(LM_DEBUG); + throw ex.getMinorServoErrorsEx(); + } + } } void SRTMinorServoBossCore::preset(double elevation) @@ -1227,7 +1303,7 @@ void SRTMinorServoBossCore::checkLineStatus() _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("Socket not connected."); ex.log(LM_DEBUG); - setFailure(); + setError(ERROR_NOT_CONNECTED); throw ex.getMinorServoErrorsEx(); } @@ -1236,7 +1312,7 @@ void SRTMinorServoBossCore::checkLineStatus() _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system is not controlled by DISCOS."); ex.log(LM_DEBUG); - setFailure(); + setError(ERROR_MAINTENANCE); throw ex.getMinorServoErrorsEx(); } @@ -1245,7 +1321,7 @@ void SRTMinorServoBossCore::checkLineStatus() _EXCPT(MinorServoErrors::StatusErrorExImpl, ex, "SRTMinorServoBossCore::checkLineStatus()"); ex.setReason("MinorServo system in emergency status."); ex.log(LM_DEBUG); - setFailure(); + setError(ERROR_EMERGENCY_STOP); throw ex.getMinorServoErrorsEx(); } } @@ -1285,7 +1361,7 @@ void SRTMinorServoBossCore::startThread(T*& thread, const ACS::TimeInterval& sle _ADD_BACKTRACE(ComponentErrors::CanNotStartThreadExImpl, ex, impl, "SRTMinorServoBossCore::startThread()"); ex.setThreadName(T::c_thread_name); ex.log(LM_DEBUG); - setFailure(); + setError(ERROR_CONFIG_ERROR); throw ex.getComponentErrorsEx(); } } @@ -1315,10 +1391,12 @@ void SRTMinorServoBossCore::destroyThread(T*& thread) ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossCore::destroyThread()", (LM_NOTICE, (std::string(T::c_thread_name) + " destroyed.").c_str())); } -void SRTMinorServoBossCore::setFailure() +void SRTMinorServoBossCore::setError(SRTMinorServoError error) { - AUTO_TRACE("SRTMinorServoBossCore::setFailure()"); + AUTO_TRACE("SRTMinorServoBossCore::setError()"); + m_commanded_setup = ""; + m_actual_setup = "Error"; m_subsystem_status.store(Management::MNG_FAILURE); m_ready.store(Management::MNG_FALSE); m_elevation_tracking.store(Management::MNG_FALSE); @@ -1327,6 +1405,28 @@ void SRTMinorServoBossCore::setFailure() m_scanning.store(Management::MNG_FALSE); m_tracking.store(Management::MNG_FALSE); m_motion_status.store(MOTION_STATUS_ERROR); + m_error_code.store(error); +} + +void SRTMinorServoBossCore::reset(bool force) +{ + AUTO_TRACE("SRTMinorServoBossCore::reset()"); + + if(m_error_code.load() == ERROR_NOT_CONNECTED && !force) + { + // If we are still not connected we should not proceed with the reset + return; + } + + for(const auto& [servo_name, servo] : m_servos) + { + servo->reset(); + } + + m_actual_setup = "Unknown"; + m_subsystem_status.store(Management::MNG_WARNING); + m_motion_status.store(MOTION_STATUS_UNCONFIGURED); + m_error_code.store(ERROR_NO_ERROR); } Management::TBoolean SRTMinorServoBossCore::getCDBConfiguration(std::string which_configuration) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp index 8a8a55374..ee9f13f24 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossImpl.cpp @@ -30,7 +30,9 @@ SRTMinorServoBossImpl::SRTMinorServoBossImpl(const ACE_CString& component_name, m_power_ptr(this), m_emergency_ptr(this), m_gregorian_cover_ptr(this), - m_last_executed_command_ptr(this) + m_air_blade_ptr(this), + m_last_executed_command_ptr(this), + m_error_code_ptr(this) { AUTO_TRACE("SRTMinorServoBossImpl::SRTMinorServoBossImpl()"); @@ -60,7 +62,7 @@ void SRTMinorServoBossImpl::initialize() m_actual_setup_ptr = new baci::ROstring((m_component_name + ":actualSetup").c_str(), getComponent(), new MSGenericDevIO<ACE_CString, std::string>(m_core.m_actual_setup), true); m_motion_info_ptr = new baci::ROstring((m_component_name + ":motionInfo").c_str(), getComponent(), - new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status, m_core.m_scanning, m_core.m_current_scan), true); + new MSMotionInfoDevIO(m_core.m_motion_status, m_core.m_status, m_core.m_error_code, m_core.m_scanning, m_core.m_current_scan), true); m_starting_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":starting").c_str(), getComponent(), new MSGenericDevIO<Management::TBoolean, std::atomic<Management::TBoolean>>(m_core.m_starting), true); m_as_configuration_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":asConfiguration").c_str(), getComponent(), @@ -87,8 +89,11 @@ void SRTMinorServoBossImpl::initialize() m_emergency_ptr = new ROEnumImpl<ACS_ENUM_T(Management::TBoolean), POA_Management::ROTBoolean>((m_component_name + ":emergency").c_str(), getComponent(), new MSAnswerMapDevIO<Management::TBoolean, SRTMinorServoGeneralStatus>("emergency", m_core.m_status, &SRTMinorServoGeneralStatus::emergencyPressed), true); m_gregorian_cover_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianCoverStatus), POA_MinorServo::ROSRTMinorServoGregorianCoverStatus>((m_component_name + ":gregorian_cover").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoGregorianCoverStatus, SRTMinorServoGeneralStatus>("gregorian_cover", m_core.m_status, &SRTMinorServoGeneralStatus::getGregorianCoverPosition), true); + m_air_blade_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoGregorianAirBladeStatus), POA_MinorServo::ROSRTMinorServoGregorianAirBladeStatus>((m_component_name + ":air_blade").c_str(), getComponent(), new MSAnswerMapDevIO<SRTMinorServoGregorianAirBladeStatus, SRTMinorServoGeneralStatus>("air_blade", m_core.m_status, &SRTMinorServoGeneralStatus::getGregorianAirBladeStatus), true); m_last_executed_command_ptr = new baci::ROdouble((m_component_name + ":last_executed_command").c_str(), getComponent(), new MSAnswerMapDevIO<CORBA::Double, SRTMinorServoGeneralStatus>("last_executed_command", m_core.m_status, &SRTMinorServoGeneralStatus::getLastExecutedCommand), true); + m_error_code_ptr = new ROEnumImpl<ACS_ENUM_T(SRTMinorServoError), POA_MinorServo::ROSRTMinorServoError>((m_component_name + ":error_code").c_str(), getComponent(), + new MSGenericDevIO<SRTMinorServoError, std::atomic<SRTMinorServoError>>(m_core.m_error_code), true); } catch(std::bad_alloc& ba) { @@ -105,7 +110,8 @@ void SRTMinorServoBossImpl::initialize() m_parser.add("setServoASConfiguration", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setASConfiguration), 1); m_parser.add("setServoOffset", new SP::function2<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>, SP::I<SP::double_type>>(this, &SRTMinorServoBossImpl::setUserOffset), 2); m_parser.add("clearServoOffsets", new SP::function0<SRTMinorServoBossImpl, SP::non_constant, SP::void_type>(this, &SRTMinorServoBossImpl::clearOffsets), 0); - //m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); + m_parser.add("setGregorianCoverPosition", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianCoverPosition), 1); + m_parser.add("setGregorianAirBladeStatus", new SP::function1<SRTMinorServoBossImpl, SP::non_constant, SP::void_type, SP::I<SP::string_type>>(this, &SRTMinorServoBossImpl::setGregorianAirBladeStatus), 1); ACS_LOG(LM_FULL_INFO, "SRTMinorServoBossImpl::initialize()", (LM_NOTICE, "PARSER INITIALIZED")); @@ -335,6 +341,12 @@ void SRTMinorServoBossImpl::setGregorianCoverPosition(const char* position) m_core.setGregorianCoverPosition(std::string(position)); } +void SRTMinorServoBossImpl::setGregorianAirBladeStatus(const char* status) +{ + AUTO_TRACE("SRTMinorServoBossImpl::setGregorianAirBladeStatus()"); + m_core.setGregorianAirBladeStatus(std::string(status)); +} + CORBA::Boolean SRTMinorServoBossImpl::checkScan(const ACS::Time start_time, const MinorServoScan& scan_info, const Antenna::TRunTimeParameters& antenna_info, TRunTimeParameters_out ms_parameters) { AUTO_TRACE("SRTMinorServoBossImpl::checkScan()"); @@ -359,6 +371,12 @@ void SRTMinorServoBossImpl::preset(double elevation) m_core.preset(elevation); } +void SRTMinorServoBossImpl::reset() +{ + AUTO_TRACE("SRTMinorServoBossImpl::reset()"); + m_core.reset(); +} + CORBA::Boolean SRTMinorServoBossImpl::command(const char* cmd, CORBA::String_out answer) { AUTO_TRACE("SRTMinorServoBossImpl::command()"); @@ -416,7 +434,9 @@ GET_PROPERTY_REFERENCE(ROSRTMinorServoControlStatus, SRTMinorServoBossImpl, m_co GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_power_ptr, power); GET_PROPERTY_REFERENCE(Management::ROTBoolean, SRTMinorServoBossImpl, m_emergency_ptr, emergency); GET_PROPERTY_REFERENCE(ROSRTMinorServoGregorianCoverStatus, SRTMinorServoBossImpl, m_gregorian_cover_ptr, gregorian_cover); +GET_PROPERTY_REFERENCE(ROSRTMinorServoGregorianAirBladeStatus, SRTMinorServoBossImpl, m_air_blade_ptr, air_blade); GET_PROPERTY_REFERENCE(ACS::ROdouble, SRTMinorServoBossImpl, m_last_executed_command_ptr, last_executed_command); +GET_PROPERTY_REFERENCE(ROSRTMinorServoError, SRTMinorServoBossImpl, m_error_code_ptr, error_code); #include <maciACSComponentDefines.h> MACI_DLL_SUPPORT_FUNCTIONS(SRTMinorServoBossImpl) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index 8afaab79f..f13092fb3 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -43,7 +43,6 @@ void SRTMinorServoParkThread::runLoop() catch(MinorServoErrors::MinorServoErrorsEx& ex) { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); this->setStopped(); return; } @@ -51,7 +50,7 @@ void SRTMinorServoParkThread::runLoop() if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= PARK_TIMEOUT) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoParkThread::runLoop()", (LM_CRITICAL, "Timeout while performing a park operation.")); - m_core.setFailure(); + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -61,13 +60,13 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - //bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED ? true : false; + bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED; // 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 + if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP ? true : false; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_STOP; })) { m_status = 1; diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp index a70f66795..d195b2bf1 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoScanThread.cpp @@ -67,7 +67,6 @@ void SRTMinorServoScanThread::onStop() if(m_error) // We didn't reach the end of the scan because of some error { // Should we set everything to failure? - m_core.setFailure(); return; } @@ -168,6 +167,7 @@ void SRTMinorServoScanThread::runLoop() else { m_error = true; + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -224,6 +224,7 @@ void SRTMinorServoScanThread::runLoop() { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); m_error = true; + m_core.setError(ERROR_COMMAND_ERROR); this->setStopped(); return; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp index 1daa85968..c48f98d14 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoSetupThread.cpp @@ -23,9 +23,9 @@ void SRTMinorServoSetupThread::onStart() m_status = 0; - //SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); - //m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); - //m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; + SRTMinorServoFocalConfiguration commanded_configuration = m_core.m_commanded_configuration.load(); + m_LDO_configuration = LDOConfigurationNameTable.left.at(commanded_configuration); + m_gregorian_cover_position = commanded_configuration == CONFIGURATION_PRIMARY ? COVER_STATUS_CLOSED : COVER_STATUS_OPEN; ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::onStart()", (LM_NOTICE, ("SETUP THREAD STARTED WITH '" + m_core.m_commanded_setup + "' CONFIGURATION").c_str())); } @@ -45,7 +45,6 @@ void SRTMinorServoSetupThread::onStop() catch(ComponentErrors::ComponentErrorsEx& ex) { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); } } } @@ -61,7 +60,6 @@ void SRTMinorServoSetupThread::runLoop() catch(MinorServoErrors::StatusErrorEx& ex) { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); this->setStopped(); return; } @@ -69,7 +67,7 @@ void SRTMinorServoSetupThread::runLoop() if(IRA::CIRATools::getUNIXEpoch() - m_start_time >= SETUP_TIMEOUT) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Timeout while performing a setup operation.")); - m_core.setFailure(); + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -98,32 +96,17 @@ void SRTMinorServoSetupThread::runLoop() servo->clearUserOffsets(); } - //m_status = 2; - //m_status = 100; - m_status = 5; + m_status = 2; break; } - /*case 100: // Send the STOW command to the gregorian cover - { - if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("Gregoriano", m_gregorian_cover_position)).checkOutput()) - { - ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK when setting the gregorian cover position.")); - m_core.setFailure(); - this->setStopped(); - return; - } - - m_status = 5; - break; - }*/ - /*case 2: // Send the SETUP command + case 2: // Send the SETUP command { try { if(!m_core.m_socket.sendCommand(SRTMinorServoCommandLibrary::setup(m_LDO_configuration)).checkOutput()) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Received NAK in response to a SETUP command.")); - m_core.setFailure(); + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -135,7 +118,7 @@ void SRTMinorServoSetupThread::runLoop() catch(...) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, "Communication error while sending a SETUP command.")); - m_core.setFailure(); + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -151,24 +134,21 @@ void SRTMinorServoSetupThread::runLoop() break; } - case 4: // Wait for the whole system to reach the desired configuration + case 4: // Wait for all the servos to reach the desired configuration { - // First we check the status of the gregorian cover - bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; - // Then we cycle through all the servos and make sure their operative mode is SETUP - if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; - return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_SETUP ? true : false; + return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_SETUP; })) { m_status = 5; } break; - }*/ - case 5: // Load the servos coefficients and send a PRESET command + } + case 5: // Load the servos coefficients { for(const auto& [servo_name, servo] : m_core.m_servos) { @@ -190,38 +170,43 @@ void SRTMinorServoSetupThread::runLoop() catch(...) { ACS_LOG(LM_FULL_INFO, "SRTMinorServoSetupThread::runLoop()", (LM_CRITICAL, ("Error while loading a SETUP to servo'" + servo_name + "'.").c_str())); - m_core.setFailure(); + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } } - // This step is necessary because we have _ASACTIVE configurations that have a slightly different position from the commanded one - // Unfortunately, the Leonardo implementation accepts a fixed number of configurations, therefore we share the _ASACTIVE and AS not active configurations for each focal position - for(const auto& [servo_name, servo] : m_core.m_current_servos) + if(m_core.m_commanded_setup.find("_ASACTIVE") == std::string::npos) { - try - { - servo->preset(*servo->calcCoordinates(45)); - } - catch(MinorServoErrors::MinorServoErrorsEx& ex) + // We commanded a configuration which does not use the active surface, therefore we need to send some slightly different coordinates with a preset command + + for(const auto& [servo_name, servo] : m_core.m_current_servos) { - ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_core.setFailure(); - this->setStopped(); - return; + try + { + servo->preset(*servo->calcCoordinates(45)); + } + catch(MinorServoErrors::MinorServoErrorsEx& ex) + { + ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); + m_core.setError(ERROR_COMMAND_ERROR); + this->setStopped(); + return; + } } + m_status = 6; + } + else + { + // _ASACTIVE configuration, jump directly to state 7 + m_status = 7; } - m_status = 6; break; } - case 6: // Wait for the whole system to reach the PRESET configuration + case 6: // Wait for the used servos to reach the PRESET configuration { - // First we check the status of the gregorian cover - //bool completed = m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position ? true : false; - - if(/*completed && */std::all_of(m_core.m_current_servos.begin(), m_core.m_current_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool + if(std::all_of(m_core.m_current_servos.begin(), m_core.m_current_servos.end(), [this](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool { ACSErr::Completion_var comp; return servo.second->operative_mode()->get_sync(comp.out()) == OPERATIVE_MODE_PRESET ? true : false; @@ -232,7 +217,16 @@ void SRTMinorServoSetupThread::runLoop() break; } - case 7: // Finally set all the variables values and eventually start the elevation tracking thread + case 7: // Check the status of the gregorian cover + { + if(m_core.m_status.getGregorianCoverPosition() == m_gregorian_cover_position) + { + m_status = 8; + } + + break; + } + case 8: // Finally set all the variables values and eventually start the elevation tracking thread { m_core.m_actual_setup = m_core.m_commanded_setup; m_core.m_starting.store(Management::MNG_FALSE); diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp index 7f4350101..b45fb40e5 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoTrackingThread.cpp @@ -4,8 +4,7 @@ using namespace MinorServo; SRTMinorServoTrackingThread::SRTMinorServoTrackingThread(const ACE_CString& name, SRTMinorServoBossCore& core, const ACS::TimeInterval& response_time, const ACS::TimeInterval& sleep_time): ACS::Thread(name, response_time, sleep_time), - m_core(core), - m_error(false) + m_core(core) { AUTO_TRACE("SRTMinorServoTrackingThread::SRTMinorServoTrackingThread()"); } @@ -33,11 +32,6 @@ void SRTMinorServoTrackingThread::onStop() ACS_LOG(LM_FULL_INFO, "SRTMinorServoTrackingThread::onStop()", (LM_NOTICE, "TRACKING THREAD STOPPED")); m_core.m_elevation_tracking.store(Management::MNG_FALSE); - - if(m_error) - { - m_core.setFailure(); - } } void SRTMinorServoTrackingThread::runLoop() @@ -51,7 +45,6 @@ void SRTMinorServoTrackingThread::runLoop() catch(MinorServoErrors::MinorServoErrorsEx& ex) { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_error = true; this->setStopped(); return; } @@ -59,7 +52,7 @@ void SRTMinorServoTrackingThread::runLoop() if(m_core.m_motion_status.load() != MOTION_STATUS_TRACKING) { // System is not ready or is not configured for tracking yet, we wait, even though we should never get here - _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", "Waiting for the system to be configured for tracking!"); + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoTrackingThread::runLoop()", "Waiting for the system to be configured for tracking!"); return; } @@ -87,7 +80,7 @@ void SRTMinorServoTrackingThread::runLoop() } else { - m_error = true; + m_core.setError(ERROR_CONFIG_ERROR); this->setStopped(); return; } @@ -103,7 +96,7 @@ void SRTMinorServoTrackingThread::runLoop() } catch(ComponentErrors::ComponentErrorsEx& ex) { - _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoScanThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); + _IRA_LOGFILTER_LOG(LM_WARNING, "SRTMinorServoTrackingThread::runLoop()", (std::string(getReasonFromEx(ex)) + ": using a fixed elevation of 45° for tracking!").c_str()); m_core.m_elevation_tracking.store(Management::MNG_FALSE); } @@ -114,21 +107,21 @@ void SRTMinorServoTrackingThread::runLoop() catch(MinorServoErrors::MinorServoErrorsEx& ex) { ACS_SHORT_LOG((LM_ERROR, ex.errorTrace.routine)); - m_error = true; + m_core.setError(ERROR_COMMAND_ERROR); this->setStopped(); return; } catch(std::exception& ex) { ACS_SHORT_LOG((LM_ERROR, ex.what())); - m_error = true; + m_core.setError(ERROR_COMMAND_ERROR); this->setStopped(); return; } catch(CORBA::Exception& ex) { ACS_SHORT_LOG((LM_ERROR, ex._info().c_str())); - m_error = true; + m_core.setError(ERROR_COMMAND_ERROR); this->setStopped(); return; } diff --git a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp index 16fa1ebd6..ddad515e1 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTProgramTrackMinorServoImpl.cpp @@ -55,53 +55,70 @@ bool SRTProgramTrackMinorServoImpl::status() { bool status = SRTBaseMinorServoImpl::status(); - try + ACS::doubleSeq virtual_positions = m_status.getVirtualPositions(); + std::vector<double> commanded_positions; + + SRTMinorServoOperativeMode operative_mode = m_status.getOperativeMode(); + if(operative_mode == OPERATIVE_MODE_PROGRAMTRACK) { - ACS::Time last_timestamp = m_status.getTimestamp(); + try + { + ACS::Time last_timestamp = m_status.getTimestamp(); - // The timestamp of the read positions always corresponds to the one we're asking since they both belong to the same STATUS command answer - // The tracking timestamp is interpolated instead - ACS::doubleSeq virtual_positions = m_status.getVirtualPositions(); - std::pair<ACS::Time, std::vector<double>> tracking_point = m_tracking_queue.get(last_timestamp); + // The timestamp of the read positions always corresponds to the one we're asking since they both belong to the same STATUS command answer + // The tracking timestamp is interpolated instead + std::pair<ACS::Time, std::vector<double>> tracking_point = m_tracking_queue.get(last_timestamp); + commanded_positions = tracking_point.second; - m_remaining_trajectory_points.store(m_tracking_queue.getRemainingPoints(last_timestamp)); + m_remaining_trajectory_points.store(m_tracking_queue.getRemainingPoints(last_timestamp)); - if(tracking_point.first < last_timestamp) + if(tracking_point.first < last_timestamp) + { + // We are past the last point of the trajectory, we concluded it + m_tracking.store(Management::MNG_FALSE); + m_tracking_queue.clear(); + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + return status; + } + } + catch(...) { - // We are past the last point of the trajectory, we concluded it - m_tracking.store(Management::MNG_FALSE); - m_tracking_queue.clear(); + // We might get here if m_tracking_queue is empty + // So whenever we just got a new setup or if we are past the last point inside the trajectory + m_tracking.store(Management::MNG_FALSE); // May be redundant but who cares? m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + return status; } - else - { - bool is_tracking = true; + } + else if(operative_mode == OPERATIVE_MODE_SETUP || operative_mode == OPERATIVE_MODE_PRESET) + { + commanded_positions = m_commanded_virtual_positions; + } + else + { + m_tracking.store(Management::MNG_FALSE); + m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + return status; + } - std::transform(virtual_positions.begin(), virtual_positions.end(), tracking_point.second.begin(), m_tracking_error.begin(), [](double current_pos, double commanded_pos) - { - return std::fabs(current_pos - commanded_pos); - }); + bool is_tracking = true; - for(size_t i = 0; i < m_virtual_axes; i++) - { - if(std::fabs(m_tracking_error[i]) > m_tracking_delta[i]) - { - is_tracking = false; - break; - } - } + std::transform(virtual_positions.begin(), virtual_positions.end(), commanded_positions.begin(), m_tracking_error.begin(), [](double current_pos, double commanded_pos) + { + return std::fabs(current_pos - commanded_pos); + }); - m_tracking.store(is_tracking ? Management::MNG_TRUE : Management::MNG_FALSE); - } - } - catch(...) + for(size_t i = 0; i < m_virtual_axes; i++) { - // We might get here if m_tracking_queue is empty - // So whenever we just got a new setup or if we are past the last point inside the trajectory - m_tracking.store(Management::MNG_FALSE); // May be redundant but who cares? - m_tracking_error = std::vector<double>(m_virtual_axes, 0.0); + if(std::fabs(m_tracking_error[i]) > m_tracking_delta[i]) + { + is_tracking = false; + break; + } } + m_tracking.store(is_tracking ? Management::MNG_TRUE : Management::MNG_FALSE); + return status; } @@ -147,6 +164,7 @@ void SRTProgramTrackMinorServoImpl::programTrack(CORBA::Long trajectory_id, CORB if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::programTrack(m_servo_name, trajectory_id, point_id, coordinates, point_id > 0 ? 0 : IRA::CIRATools::ACSTime2UNIXEpoch(point_time))).checkOutput()) { + m_error_code.store(ERROR_COMMAND_ERROR); _EXCPT(MinorServoErrors::CommunicationErrorExImpl, ex, (m_servo_name + "::programTrack()").c_str()); ex.setReason("Received NAK in response to a PROGRAMTRACK command!"); ex.log(LM_DEBUG); diff --git a/SRT/Servers/SRTMinorServo/src/_airBlade.py b/SRT/Servers/SRTMinorServo/src/_airBlade.py new file mode 100644 index 000000000..820e945cf --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/_airBlade.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +# This is a python script that can be used to set the air blade status +# who when what +# Giuseppe Carboni(giuseppe.carboni@inaf.it) 18/05/2024 Creation + +from Acspy.Clients.SimpleClient import PySimpleClient +import ACSLog +import maciErrType +import maciErrTypeImpl +import ClientErrorsImpl +import MinorServoErrors +import ManagementErrorsImpl +import sys +from SimpleParserPy import add_user_message + +def main(): + compName = 'MINORSERVO/Boss' + + simpleClient = PySimpleClient() + + try: + component = simpleClient.getComponent(compName) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName(compName) + add_user_message(newEx, 'MinorServoBoss not ready or not properly configured') + simpleClient.disconnect() + sys.exit(1) + + try: + inputs = component.setGregorianAirBladeStatus(sys.argv[1]) + except MinorServoErrors.MinorServoErrorsEx as ex: + newEx = ClientErrorsImpl.CouldntPerformActionExImpl(exception=ex, create=1) + newEx.setReason('MinorServoBoss gregorian air blade status') + add_user_message(newEx, 'Unable to set the gregorian air blade status') + simpleClient.disconnect() + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/SRT/Servers/SRTMinorServo/src/_servoReset.py b/SRT/Servers/SRTMinorServo/src/_servoReset.py new file mode 100644 index 000000000..ab95fdc16 --- /dev/null +++ b/SRT/Servers/SRTMinorServo/src/_servoReset.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python + +# This is a python script that can be used to send OR7 VBrain an emergency and +# alarms reset command +# who when what +# Giuseppe Carboni(giuseppe.carboni@inaf.it) 21/05/2024 Creation + +import sys +import time +import requests +import urllib3 +import cdbErrType +import ComponentErrorsImpl +import ClientErrorsImpl +from IRAPy import logger +from SimpleParserPy import add_user_message +from Acspy.Clients.SimpleClient import PySimpleClient +from Acspy.Util import ACSCorba +from MinorServo import ERROR_NO_ERROR + + +def get_cdb_args(): + try: + path = 'alma/MINORSERVO/VBrain' + dal = ACSCorba.cdb() + dao = dal.get_DAO_Servant(path) + field = 'Protocol' + protocol = dao.get_field_data(field).strip() + field = 'IPAddress' + address = dao.get_field_data(field).strip() + field = 'Port' + port = dao.get_field_data(field).strip() + except cdbErrType.CDBRecordDoesNotExistEx: + reason = f'CDB record {path} does not exist' + logger.logError(reason) + exc = ComponentErrorsImpl.CouldntGetAttributeExImpl() + exc.setData('Reason', reason) + raise exc + except cdbErrType.CDBFieldDoesNotExistEx: + reason = f'CDB field {field} does not exist' + logger.logError(reasong) + exc = ComponentErrorsImpl.ValidationErrorExImpl() + exc.setReason(reason) + raise exc + return protocol, address, port + + +def send_requests(protocol, address, port): + url = \ + f'{protocol}://{address}:{port}/Exporting/json/ExecuteCommand?name' + emergency = f'{url}=INAF_SRT_OR7_EMG_RESET_CMD' + alarms = f'{url}=INAF_SRT_OR7_RESET_CMD' + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + try: + # We just try to send the commands, if it fails, we do nothing, it + # means there is a problem reaching the VBrain server so we cannot + # reset the status anyway + response = requests.get(emergency, verify=False, timeout=3) + time.sleep(3) + response = requests.get(alarms, verify=False, timeout=3) + except: + pass + + +if __name__ == "__main__": + # Retrieve the CDB attributes + protocol, address, port = get_cdb_args() + + # Retrieve the component + compName = 'MINORSERVO/Boss' + + simpleClient = PySimpleClient() + + try: + component = simpleClient.getComponent(compName) + # Check if we have an error, if not we just exit immediately + error_code = component.error_code.get_sync()[0] + if error_code == ERROR_NO_ERROR: + sys.exit(0) + except Exception as ex: + newEx = ClientErrorsImpl.CouldntAccessComponentExImpl(exception=ex, create=1) + newEx.setComponentName(compName) + add_user_message(newEx, 'MinorServoBoss not ready or not properly configured') + simpleClient.disconnect() + sys.exit(1) + + # Send the reset commands to VBrain + send_requests(protocol, address, port) + + # Send the reset command to the component + component.reset() -- GitLab From 7de27f52318fd74f103faaff58981c456b95e750 Mon Sep 17 00:00:00 2001 From: Andrea Orlati <aorlati@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:01:50 +0200 Subject: [PATCH 111/150] Added configuration files for Noto Active Surface (#872) --- .../ActiveSurfaceLan/src/.lanImpl.cpp.swo | Bin 0 -> 16384 bytes .../ActiveSurfaceLan/src/lanSocket.cpp | 2 +- .../src/ActiveSurfaceUSDImpl.cpp | 4 +- .../Components/AS/SECTOR01/LAN01/LAN01.xml | 12 +- .../Components/AS/SECTOR01/LAN02/LAN02.xml | 10 +- .../Components/AS/SECTOR01/LAN03/LAN03.xml | 12 +- .../Components/AS/SECTOR01/LAN04/LAN04.xml | 10 +- .../Components/AS/SECTOR01/LAN05/LAN05.xml | 12 +- .../Components/AS/SECTOR01/LAN06/LAN06.xml | 10 +- .../Components/AS/SECTOR01/LAN07/LAN07.xml | 14 +- .../Components/AS/SECTOR01/LAN08/LAN08.xml | 10 +- .../Components/AS/SECTOR01/LAN09/LAN09.xml | 12 +- .../Components/AS/SECTOR01/LAN10/LAN10.xml | 10 +- .../Components/AS/SECTOR01/LAN11/LAN11.xml | 12 +- .../Components/AS/SECTOR01/LAN12/LAN12.xml | 10 +- .../Components/AS/SECTOR02/LAN01/LAN01.xml | 12 +- .../Components/AS/SECTOR02/LAN02/LAN02.xml | 10 +- .../Components/AS/SECTOR02/LAN03/LAN03.xml | 12 +- .../Components/AS/SECTOR02/LAN04/LAN04.xml | 10 +- .../Components/AS/SECTOR02/LAN05/LAN05.xml | 12 +- .../Components/AS/SECTOR02/LAN06/LAN06.xml | 10 +- .../Components/AS/SECTOR02/LAN07/LAN07.xml | 14 +- .../Components/AS/SECTOR02/LAN08/LAN08.xml | 10 +- .../Components/AS/SECTOR02/LAN09/LAN09.xml | 12 +- .../Components/AS/SECTOR02/LAN10/LAN10.xml | 10 +- .../Components/AS/SECTOR02/LAN11/LAN11.xml | 12 +- .../Components/AS/SECTOR02/LAN12/LAN12.xml | 10 +- .../Components/AS/SECTOR03/LAN01/LAN01.xml | 12 +- .../Components/AS/SECTOR03/LAN02/LAN02.xml | 10 +- .../Components/AS/SECTOR03/LAN03/LAN03.xml | 12 +- .../Components/AS/SECTOR03/LAN04/LAN04.xml | 10 +- .../Components/AS/SECTOR03/LAN05/LAN05.xml | 12 +- .../Components/AS/SECTOR03/LAN06/LAN06.xml | 10 +- .../Components/AS/SECTOR03/LAN07/LAN07.xml | 14 +- .../Components/AS/SECTOR03/LAN08/LAN08.xml | 10 +- .../Components/AS/SECTOR03/LAN09/LAN09.xml | 12 +- .../Components/AS/SECTOR03/LAN10/LAN10.xml | 10 +- .../Components/AS/SECTOR03/LAN11/LAN11.xml | 12 +- .../Components/AS/SECTOR03/LAN12/LAN12.xml | 10 +- .../Components/AS/SECTOR04/LAN01/LAN01.xml | 12 +- .../Components/AS/SECTOR04/LAN02/LAN02.xml | 10 +- .../Components/AS/SECTOR04/LAN03/LAN03.xml | 12 +- .../Components/AS/SECTOR04/LAN04/LAN04.xml | 10 +- .../Components/AS/SECTOR04/LAN05/LAN05.xml | 12 +- .../Components/AS/SECTOR04/LAN06/LAN06.xml | 10 +- .../Components/AS/SECTOR04/LAN07/LAN07.xml | 14 +- .../Components/AS/SECTOR04/LAN08/LAN08.xml | 10 +- .../Components/AS/SECTOR04/LAN09/LAN09.xml | 12 +- .../Components/AS/SECTOR04/LAN10/LAN10.xml | 10 +- .../Components/AS/SECTOR04/LAN11/LAN11.xml | 12 +- .../Components/AS/SECTOR04/LAN12/LAN12.xml | 10 +- .../NotoActiveSurfaceContainer01.xml | 2 +- .../NotoActiveSurfaceContainer02.xml | 2 +- .../NotoActiveSurfaceContainer03.xml | 2 +- .../NotoActiveSurfaceContainer04.xml | 2 +- Noto/CDB/MACI/Managers/Manager/Manager.xml | 8 +- Noto/CDB/alma/AS/Boss/Boss.xml | 19 +- Noto/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml | 4 +- Noto/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml | 4 +- Noto/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml | 2 +- Noto/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml | 2 +- Noto/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml | 2 +- Noto/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml | 2 +- Noto/CDB/alma/AS/act_Noto_rev01.txt | 268 + Noto/CDB/alma/AS/act_Noto_rev02.txt | 244 + Noto/CDB/alma/AS/set_calibrate.py | 0 Noto/CDB/alma/AS/tab_convUSD.txt | 24 - Noto/CDB/alma/AS/tab_convUSD.txt.orig | 268 + Noto/CDB/alma/AS/tab_convUSD_S1.txt | 8 +- Noto/CDB/alma/AS/tab_convUSD_S2.txt | 8 +- Noto/CDB/alma/AS/tab_convUSD_S3.txt | 8 +- Noto/CDB/alma/AS/tab_convUSD_S4.txt | 8 +- .../include/NotoActiveSurfaceGUI.h | 3086 +- .../src/NotoActiveSurfaceCore.cpp | 52 +- .../src/NotoActiveSurfaceGUI.ui | 8624 +- .../src/NotoActiveSurfaceGUI.ui.17012024 | 161729 +++++++++++++++ .../CDB/MACI/Components/AS/Boss/Boss.xml | 5 +- .../Components/AS/SECTOR01/LAN01/LAN01.xml | 14 + .../Components/AS/SECTOR01/LAN02/LAN02.xml | 13 + .../Components/AS/SECTOR01/LAN03/LAN03.xml | 14 + .../Components/AS/SECTOR01/LAN04/LAN04.xml | 13 + .../Components/AS/SECTOR01/LAN05/LAN05.xml | 14 + .../Components/AS/SECTOR01/LAN06/LAN06.xml | 13 + .../Components/AS/SECTOR01/LAN07/LAN07.xml | 15 + .../Components/AS/SECTOR01/LAN08/LAN08.xml | 13 + .../Components/AS/SECTOR01/LAN09/LAN09.xml | 14 + .../Components/AS/SECTOR01/LAN10/LAN10.xml | 13 + .../Components/AS/SECTOR01/LAN11/LAN11.xml | 14 + .../Components/AS/SECTOR01/LAN12/LAN12.xml | 13 + .../Components/AS/SECTOR02/LAN01/LAN01.xml | 14 + .../Components/AS/SECTOR02/LAN02/LAN02.xml | 13 + .../Components/AS/SECTOR02/LAN03/LAN03.xml | 14 + .../Components/AS/SECTOR02/LAN04/LAN04.xml | 13 + .../Components/AS/SECTOR02/LAN05/LAN05.xml | 14 + .../Components/AS/SECTOR02/LAN06/LAN06.xml | 13 + .../Components/AS/SECTOR02/LAN07/LAN07.xml | 15 + .../Components/AS/SECTOR02/LAN08/LAN08.xml | 13 + .../Components/AS/SECTOR02/LAN09/LAN09.xml | 14 + .../Components/AS/SECTOR02/LAN10/LAN10.xml | 13 + .../Components/AS/SECTOR02/LAN11/LAN11.xml | 14 + .../Components/AS/SECTOR02/LAN12/LAN12.xml | 13 + .../Components/AS/SECTOR03/LAN01/LAN01.xml | 14 + .../Components/AS/SECTOR03/LAN02/LAN02.xml | 13 + .../Components/AS/SECTOR03/LAN03/LAN03.xml | 14 + .../Components/AS/SECTOR03/LAN04/LAN04.xml | 13 + .../Components/AS/SECTOR03/LAN05/LAN05.xml | 14 + .../Components/AS/SECTOR03/LAN06/LAN06.xml | 13 + .../Components/AS/SECTOR03/LAN07/LAN07.xml | 15 + .../Components/AS/SECTOR03/LAN08/LAN08.xml | 13 + .../Components/AS/SECTOR03/LAN09/LAN09.xml | 14 + .../Components/AS/SECTOR03/LAN10/LAN10.xml | 13 + .../Components/AS/SECTOR03/LAN11/LAN11.xml | 14 + .../Components/AS/SECTOR03/LAN12/LAN12.xml | 13 + .../Components/AS/SECTOR04/LAN01/LAN01.xml | 14 + .../Components/AS/SECTOR04/LAN02/LAN02.xml | 13 + .../Components/AS/SECTOR04/LAN03/LAN03.xml | 14 + .../Components/AS/SECTOR04/LAN04/LAN04.xml | 13 + .../Components/AS/SECTOR04/LAN05/LAN05.xml | 14 + .../Components/AS/SECTOR04/LAN06/LAN06.xml | 13 + .../Components/AS/SECTOR04/LAN07/LAN07.xml | 15 + .../Components/AS/SECTOR04/LAN08/LAN08.xml | 13 + .../Components/AS/SECTOR04/LAN09/LAN09.xml | 14 + .../Components/AS/SECTOR04/LAN10/LAN10.xml | 13 + .../Components/AS/SECTOR04/LAN11/LAN11.xml | 14 + .../Components/AS/SECTOR04/LAN12/LAN12.xml | 13 + .../NotoActiveSurfaceContainer.xml | 2 +- .../NotoActiveSurfaceContainer01.xml | 27 + .../NotoActiveSurfaceContainer02.xml | 26 + .../NotoActiveSurfaceContainer03.xml | 26 + .../NotoActiveSurfaceContainer04.xml | 26 + Noto/Configuration/CDB/alma/AS/Boss/Boss.xml | 48 +- .../CDB/alma/AS/SECTOR01/LAN01/LAN01.xml | 6 + .../alma/AS/SECTOR01/LAN01/USD01/USD01.xml | 34 + .../alma/AS/SECTOR01/LAN01/USD02/USD02.xml | 34 + .../alma/AS/SECTOR01/LAN01/USD03/USD03.xml | 34 + .../alma/AS/SECTOR01/LAN01/USD04/USD04.xml | 368 + .../alma/AS/SECTOR01/LAN01/USD05/USD05.xml | 359 + .../alma/AS/SECTOR01/LAN01/USD06/USD06.xml | 349 + .../CDB/alma/AS/SECTOR01/LAN02/LAN02.xml | 6 + .../alma/AS/SECTOR01/LAN02/USD02/USD02.xml | 263 + .../alma/AS/SECTOR01/LAN02/USD03/USD03.xml | 260 + .../alma/AS/SECTOR01/LAN02/USD04/USD04.xml | 261 + .../alma/AS/SECTOR01/LAN02/USD05/USD05.xml | 261 + .../alma/AS/SECTOR01/LAN02/USD06/USD06.xml | 260 + .../CDB/alma/AS/SECTOR01/LAN03/LAN03.xml | 6 + .../alma/AS/SECTOR01/LAN03/USD01/USD01.xml | 274 + .../alma/AS/SECTOR01/LAN03/USD02/USD02.xml | 257 + .../alma/AS/SECTOR01/LAN03/USD03/USD03.xml | 258 + .../alma/AS/SECTOR01/LAN03/USD04/USD04.xml | 255 + .../alma/AS/SECTOR01/LAN03/USD05/USD05.xml | 255 + .../alma/AS/SECTOR01/LAN03/USD06/USD06.xml | 256 + .../CDB/alma/AS/SECTOR01/LAN04/LAN04.xml | 6 + .../alma/AS/SECTOR01/LAN04/USD02/USD02.xml | 240 + .../alma/AS/SECTOR01/LAN04/USD03/USD03.xml | 236 + .../alma/AS/SECTOR01/LAN04/USD04/USD04.xml | 235 + .../alma/AS/SECTOR01/LAN04/USD05/USD05.xml | 236 + .../alma/AS/SECTOR01/LAN04/USD06/USD06.xml | 235 + .../CDB/alma/AS/SECTOR01/LAN05/LAN05.xml | 6 + .../alma/AS/SECTOR01/LAN05/USD01/USD01.xml | 230 + .../alma/AS/SECTOR01/LAN05/USD02/USD02.xml | 230 + .../alma/AS/SECTOR01/LAN05/USD03/USD03.xml | 230 + .../alma/AS/SECTOR01/LAN05/USD04/USD04.xml | 230 + .../alma/AS/SECTOR01/LAN05/USD05/USD05.xml | 227 + .../alma/AS/SECTOR01/LAN05/USD06/USD06.xml | 225 + .../CDB/alma/AS/SECTOR01/LAN06/LAN06.xml | 6 + .../alma/AS/SECTOR01/LAN06/USD02/USD02.xml | 221 + .../alma/AS/SECTOR01/LAN06/USD03/USD03.xml | 220 + .../alma/AS/SECTOR01/LAN06/USD04/USD04.xml | 217 + .../alma/AS/SECTOR01/LAN06/USD05/USD05.xml | 217 + .../alma/AS/SECTOR01/LAN06/USD06/USD06.xml | 216 + .../CDB/alma/AS/SECTOR01/LAN07/LAN07.xml | 6 + .../alma/AS/SECTOR01/LAN07/USD01/USD01.xml | 219 + .../alma/AS/SECTOR01/LAN07/USD02/USD02.xml | 210 + .../alma/AS/SECTOR01/LAN07/USD03/USD03.xml | 211 + .../alma/AS/SECTOR01/LAN07/USD04/USD04.xml | 212 + .../alma/AS/SECTOR01/LAN07/USD05/USD05.xml | 212 + .../alma/AS/SECTOR01/LAN07/USD06/USD06.xml | 210 + .../alma/AS/SECTOR01/LAN07/USD07/USD07.xml | 209 + .../CDB/alma/AS/SECTOR01/LAN08/LAN08.xml | 6 + .../alma/AS/SECTOR01/LAN08/USD02/USD02.xml | 204 + .../alma/AS/SECTOR01/LAN08/USD03/USD03.xml | 204 + .../alma/AS/SECTOR01/LAN08/USD04/USD04.xml | 202 + .../alma/AS/SECTOR01/LAN08/USD05/USD05.xml | 202 + .../alma/AS/SECTOR01/LAN08/USD06/USD06.xml | 204 + .../CDB/alma/AS/SECTOR01/LAN09/LAN09.xml | 6 + .../alma/AS/SECTOR01/LAN09/USD01/USD01.xml | 200 + .../alma/AS/SECTOR01/LAN09/USD02/USD02.xml | 200 + .../alma/AS/SECTOR01/LAN09/USD03/USD03.xml | 200 + .../alma/AS/SECTOR01/LAN09/USD04/USD04.xml | 202 + .../alma/AS/SECTOR01/LAN09/USD05/USD05.xml | 200 + .../alma/AS/SECTOR01/LAN09/USD06/USD06.xml | 200 + .../CDB/alma/AS/SECTOR01/LAN10/LAN10.xml | 6 + .../alma/AS/SECTOR01/LAN10/USD02/USD02.xml | 195 + .../alma/AS/SECTOR01/LAN10/USD03/USD03.xml | 196 + .../alma/AS/SECTOR01/LAN10/USD04/USD04.xml | 195 + .../alma/AS/SECTOR01/LAN10/USD05/USD05.xml | 194 + .../alma/AS/SECTOR01/LAN10/USD06/USD06.xml | 194 + .../CDB/alma/AS/SECTOR01/LAN11/LAN11.xml | 6 + .../alma/AS/SECTOR01/LAN11/USD01/USD01.xml | 184 + .../alma/AS/SECTOR01/LAN11/USD02/USD02.xml | 195 + .../alma/AS/SECTOR01/LAN11/USD03/USD03.xml | 195 + .../alma/AS/SECTOR01/LAN11/USD04/USD04.xml | 194 + .../alma/AS/SECTOR01/LAN11/USD05/USD05.xml | 192 + .../alma/AS/SECTOR01/LAN11/USD06/USD06.xml | 190 + .../CDB/alma/AS/SECTOR01/LAN12/LAN12.xml | 6 + .../alma/AS/SECTOR01/LAN12/USD02/USD02.xml | 178 + .../alma/AS/SECTOR01/LAN12/USD03/USD03.xml | 175 + .../alma/AS/SECTOR01/LAN12/USD04/USD04.xml | 173 + .../alma/AS/SECTOR01/LAN12/USD05/USD05.xml | 173 + .../alma/AS/SECTOR01/LAN12/USD06/USD06.xml | 172 + .../CDB/alma/AS/SECTOR02/LAN01/LAN01.xml | 6 + .../alma/AS/SECTOR02/LAN01/USD01/USD01.xml | 34 + .../alma/AS/SECTOR02/LAN01/USD02/USD02.xml | 34 + .../alma/AS/SECTOR02/LAN01/USD03/USD03.xml | 34 + .../alma/AS/SECTOR02/LAN01/USD04/USD04.xml | 368 + .../alma/AS/SECTOR02/LAN01/USD05/USD05.xml | 359 + .../alma/AS/SECTOR02/LAN01/USD06/USD06.xml | 349 + .../CDB/alma/AS/SECTOR02/LAN02/LAN02.xml | 6 + .../alma/AS/SECTOR02/LAN02/USD02/USD02.xml | 263 + .../alma/AS/SECTOR02/LAN02/USD03/USD03.xml | 260 + .../alma/AS/SECTOR02/LAN02/USD04/USD04.xml | 261 + .../alma/AS/SECTOR02/LAN02/USD05/USD05.xml | 261 + .../alma/AS/SECTOR02/LAN02/USD06/USD06.xml | 260 + .../CDB/alma/AS/SECTOR02/LAN03/LAN03.xml | 6 + .../alma/AS/SECTOR02/LAN03/USD01/USD01.xml | 274 + .../alma/AS/SECTOR02/LAN03/USD02/USD02.xml | 257 + .../alma/AS/SECTOR02/LAN03/USD03/USD03.xml | 258 + .../alma/AS/SECTOR02/LAN03/USD04/USD04.xml | 255 + .../alma/AS/SECTOR02/LAN03/USD05/USD05.xml | 255 + .../alma/AS/SECTOR02/LAN03/USD06/USD06.xml | 256 + .../CDB/alma/AS/SECTOR02/LAN04/LAN04.xml | 6 + .../alma/AS/SECTOR02/LAN04/USD02/USD02.xml | 240 + .../alma/AS/SECTOR02/LAN04/USD03/USD03.xml | 236 + .../alma/AS/SECTOR02/LAN04/USD04/USD04.xml | 235 + .../alma/AS/SECTOR02/LAN04/USD05/USD05.xml | 236 + .../alma/AS/SECTOR02/LAN04/USD06/USD06.xml | 235 + .../CDB/alma/AS/SECTOR02/LAN05/LAN05.xml | 6 + .../alma/AS/SECTOR02/LAN05/USD01/USD01.xml | 230 + .../alma/AS/SECTOR02/LAN05/USD02/USD02.xml | 230 + .../alma/AS/SECTOR02/LAN05/USD03/USD03.xml | 230 + .../alma/AS/SECTOR02/LAN05/USD04/USD04.xml | 230 + .../alma/AS/SECTOR02/LAN05/USD05/USD05.xml | 227 + .../alma/AS/SECTOR02/LAN05/USD06/USD06.xml | 225 + .../CDB/alma/AS/SECTOR02/LAN06/LAN06.xml | 6 + .../alma/AS/SECTOR02/LAN06/USD02/USD02.xml | 221 + .../alma/AS/SECTOR02/LAN06/USD03/USD03.xml | 220 + .../alma/AS/SECTOR02/LAN06/USD04/USD04.xml | 217 + .../alma/AS/SECTOR02/LAN06/USD05/USD05.xml | 217 + .../alma/AS/SECTOR02/LAN06/USD06/USD06.xml | 216 + .../CDB/alma/AS/SECTOR02/LAN07/LAN07.xml | 6 + .../alma/AS/SECTOR02/LAN07/USD01/USD01.xml | 219 + .../alma/AS/SECTOR02/LAN07/USD02/USD02.xml | 210 + .../alma/AS/SECTOR02/LAN07/USD03/USD03.xml | 211 + .../alma/AS/SECTOR02/LAN07/USD04/USD04.xml | 212 + .../alma/AS/SECTOR02/LAN07/USD05/USD05.xml | 212 + .../alma/AS/SECTOR02/LAN07/USD06/USD06.xml | 210 + .../alma/AS/SECTOR02/LAN07/USD07/USD07.xml | 209 + .../CDB/alma/AS/SECTOR02/LAN08/LAN08.xml | 6 + .../alma/AS/SECTOR02/LAN08/USD02/USD02.xml | 204 + .../alma/AS/SECTOR02/LAN08/USD03/USD03.xml | 204 + .../alma/AS/SECTOR02/LAN08/USD04/USD04.xml | 202 + .../alma/AS/SECTOR02/LAN08/USD05/USD05.xml | 202 + .../alma/AS/SECTOR02/LAN08/USD06/USD06.xml | 204 + .../CDB/alma/AS/SECTOR02/LAN09/LAN09.xml | 6 + .../alma/AS/SECTOR02/LAN09/USD01/USD01.xml | 200 + .../alma/AS/SECTOR02/LAN09/USD02/USD02.xml | 200 + .../alma/AS/SECTOR02/LAN09/USD03/USD03.xml | 200 + .../alma/AS/SECTOR02/LAN09/USD04/USD04.xml | 202 + .../alma/AS/SECTOR02/LAN09/USD05/USD05.xml | 200 + .../alma/AS/SECTOR02/LAN09/USD06/USD06.xml | 200 + .../CDB/alma/AS/SECTOR02/LAN10/LAN10.xml | 6 + .../alma/AS/SECTOR02/LAN10/USD02/USD02.xml | 195 + .../alma/AS/SECTOR02/LAN10/USD03/USD03.xml | 196 + .../alma/AS/SECTOR02/LAN10/USD04/USD04.xml | 195 + .../alma/AS/SECTOR02/LAN10/USD05/USD05.xml | 194 + .../alma/AS/SECTOR02/LAN10/USD06/USD06.xml | 194 + .../CDB/alma/AS/SECTOR02/LAN11/LAN11.xml | 6 + .../alma/AS/SECTOR02/LAN11/USD01/USD01.xml | 184 + .../alma/AS/SECTOR02/LAN11/USD02/USD02.xml | 195 + .../alma/AS/SECTOR02/LAN11/USD03/USD03.xml | 195 + .../alma/AS/SECTOR02/LAN11/USD04/USD04.xml | 194 + .../alma/AS/SECTOR02/LAN11/USD05/USD05.xml | 192 + .../alma/AS/SECTOR02/LAN11/USD06/USD06.xml | 190 + .../CDB/alma/AS/SECTOR02/LAN12/LAN12.xml | 6 + .../alma/AS/SECTOR02/LAN12/USD02/USD02.xml | 178 + .../alma/AS/SECTOR02/LAN12/USD03/USD03.xml | 175 + .../alma/AS/SECTOR02/LAN12/USD04/USD04.xml | 173 + .../alma/AS/SECTOR02/LAN12/USD05/USD05.xml | 173 + .../alma/AS/SECTOR02/LAN12/USD06/USD06.xml | 172 + .../CDB/alma/AS/SECTOR03/LAN01/LAN01.xml | 6 + .../alma/AS/SECTOR03/LAN01/USD01/USD01.xml | 34 + .../alma/AS/SECTOR03/LAN01/USD02/USD02.xml | 34 + .../alma/AS/SECTOR03/LAN01/USD03/USD03.xml | 34 + .../alma/AS/SECTOR03/LAN01/USD04/USD04.xml | 368 + .../alma/AS/SECTOR03/LAN01/USD05/USD05.xml | 359 + .../alma/AS/SECTOR03/LAN01/USD06/USD06.xml | 349 + .../CDB/alma/AS/SECTOR03/LAN02/LAN02.xml | 6 + .../alma/AS/SECTOR03/LAN02/USD02/USD02.xml | 263 + .../alma/AS/SECTOR03/LAN02/USD03/USD03.xml | 260 + .../alma/AS/SECTOR03/LAN02/USD04/USD04.xml | 261 + .../alma/AS/SECTOR03/LAN02/USD05/USD05.xml | 261 + .../alma/AS/SECTOR03/LAN02/USD06/USD06.xml | 260 + .../CDB/alma/AS/SECTOR03/LAN03/LAN03.xml | 6 + .../alma/AS/SECTOR03/LAN03/USD01/USD01.xml | 274 + .../alma/AS/SECTOR03/LAN03/USD02/USD02.xml | 257 + .../alma/AS/SECTOR03/LAN03/USD03/USD03.xml | 258 + .../alma/AS/SECTOR03/LAN03/USD04/USD04.xml | 255 + .../alma/AS/SECTOR03/LAN03/USD05/USD05.xml | 255 + .../alma/AS/SECTOR03/LAN03/USD06/USD06.xml | 256 + .../CDB/alma/AS/SECTOR03/LAN04/LAN04.xml | 6 + .../alma/AS/SECTOR03/LAN04/USD02/USD02.xml | 240 + .../alma/AS/SECTOR03/LAN04/USD03/USD03.xml | 236 + .../alma/AS/SECTOR03/LAN04/USD04/USD04.xml | 235 + .../alma/AS/SECTOR03/LAN04/USD05/USD05.xml | 236 + .../alma/AS/SECTOR03/LAN04/USD06/USD06.xml | 235 + .../CDB/alma/AS/SECTOR03/LAN05/LAN05.xml | 6 + .../alma/AS/SECTOR03/LAN05/USD01/USD01.xml | 230 + .../alma/AS/SECTOR03/LAN05/USD02/USD02.xml | 230 + .../alma/AS/SECTOR03/LAN05/USD03/USD03.xml | 230 + .../alma/AS/SECTOR03/LAN05/USD04/USD04.xml | 230 + .../alma/AS/SECTOR03/LAN05/USD05/USD05.xml | 227 + .../alma/AS/SECTOR03/LAN05/USD06/USD06.xml | 225 + .../CDB/alma/AS/SECTOR03/LAN06/LAN06.xml | 6 + .../alma/AS/SECTOR03/LAN06/USD02/USD02.xml | 221 + .../alma/AS/SECTOR03/LAN06/USD03/USD03.xml | 220 + .../alma/AS/SECTOR03/LAN06/USD04/USD04.xml | 217 + .../alma/AS/SECTOR03/LAN06/USD05/USD05.xml | 217 + .../alma/AS/SECTOR03/LAN06/USD06/USD06.xml | 216 + .../CDB/alma/AS/SECTOR03/LAN07/LAN07.xml | 6 + .../alma/AS/SECTOR03/LAN07/USD01/USD01.xml | 219 + .../alma/AS/SECTOR03/LAN07/USD02/USD02.xml | 210 + .../alma/AS/SECTOR03/LAN07/USD03/USD03.xml | 211 + .../alma/AS/SECTOR03/LAN07/USD04/USD04.xml | 212 + .../alma/AS/SECTOR03/LAN07/USD05/USD05.xml | 212 + .../alma/AS/SECTOR03/LAN07/USD06/USD06.xml | 210 + .../alma/AS/SECTOR03/LAN07/USD07/USD07.xml | 209 + .../CDB/alma/AS/SECTOR03/LAN08/LAN08.xml | 6 + .../alma/AS/SECTOR03/LAN08/USD02/USD02.xml | 204 + .../alma/AS/SECTOR03/LAN08/USD03/USD03.xml | 204 + .../alma/AS/SECTOR03/LAN08/USD04/USD04.xml | 202 + .../alma/AS/SECTOR03/LAN08/USD05/USD05.xml | 202 + .../alma/AS/SECTOR03/LAN08/USD06/USD06.xml | 204 + .../CDB/alma/AS/SECTOR03/LAN09/LAN09.xml | 6 + .../alma/AS/SECTOR03/LAN09/USD01/USD01.xml | 200 + .../alma/AS/SECTOR03/LAN09/USD02/USD02.xml | 200 + .../alma/AS/SECTOR03/LAN09/USD03/USD03.xml | 200 + .../alma/AS/SECTOR03/LAN09/USD04/USD04.xml | 202 + .../alma/AS/SECTOR03/LAN09/USD05/USD05.xml | 200 + .../alma/AS/SECTOR03/LAN09/USD06/USD06.xml | 200 + .../CDB/alma/AS/SECTOR03/LAN10/LAN10.xml | 6 + .../alma/AS/SECTOR03/LAN10/USD02/USD02.xml | 195 + .../alma/AS/SECTOR03/LAN10/USD03/USD03.xml | 196 + .../alma/AS/SECTOR03/LAN10/USD04/USD04.xml | 195 + .../alma/AS/SECTOR03/LAN10/USD05/USD05.xml | 194 + .../alma/AS/SECTOR03/LAN10/USD06/USD06.xml | 194 + .../CDB/alma/AS/SECTOR03/LAN11/LAN11.xml | 6 + .../alma/AS/SECTOR03/LAN11/USD01/USD01.xml | 184 + .../alma/AS/SECTOR03/LAN11/USD02/USD02.xml | 195 + .../alma/AS/SECTOR03/LAN11/USD03/USD03.xml | 195 + .../alma/AS/SECTOR03/LAN11/USD04/USD04.xml | 194 + .../alma/AS/SECTOR03/LAN11/USD05/USD05.xml | 192 + .../alma/AS/SECTOR03/LAN11/USD06/USD06.xml | 190 + .../CDB/alma/AS/SECTOR03/LAN12/LAN12.xml | 6 + .../alma/AS/SECTOR03/LAN12/USD02/USD02.xml | 178 + .../alma/AS/SECTOR03/LAN12/USD03/USD03.xml | 175 + .../alma/AS/SECTOR03/LAN12/USD04/USD04.xml | 173 + .../alma/AS/SECTOR03/LAN12/USD05/USD05.xml | 173 + .../alma/AS/SECTOR03/LAN12/USD06/USD06.xml | 172 + .../CDB/alma/AS/SECTOR03/set_calibrate.py | 24 + .../CDB/alma/AS/SECTOR04/LAN01/LAN01.xml | 6 + .../alma/AS/SECTOR04/LAN01/USD01/USD01.xml | 34 + .../alma/AS/SECTOR04/LAN01/USD02/USD02.xml | 34 + .../alma/AS/SECTOR04/LAN01/USD03/USD03.xml | 34 + .../alma/AS/SECTOR04/LAN01/USD04/USD04.xml | 368 + .../alma/AS/SECTOR04/LAN01/USD05/USD05.xml | 359 + .../alma/AS/SECTOR04/LAN01/USD06/USD06.xml | 349 + .../CDB/alma/AS/SECTOR04/LAN02/LAN02.xml | 6 + .../alma/AS/SECTOR04/LAN02/USD02/USD02.xml | 263 + .../alma/AS/SECTOR04/LAN02/USD03/USD03.xml | 260 + .../alma/AS/SECTOR04/LAN02/USD04/USD04.xml | 261 + .../alma/AS/SECTOR04/LAN02/USD05/USD05.xml | 261 + .../alma/AS/SECTOR04/LAN02/USD06/USD06.xml | 260 + .../CDB/alma/AS/SECTOR04/LAN03/LAN03.xml | 6 + .../alma/AS/SECTOR04/LAN03/USD01/USD01.xml | 274 + .../alma/AS/SECTOR04/LAN03/USD02/USD02.xml | 257 + .../alma/AS/SECTOR04/LAN03/USD03/USD03.xml | 258 + .../alma/AS/SECTOR04/LAN03/USD04/USD04.xml | 255 + .../alma/AS/SECTOR04/LAN03/USD05/USD05.xml | 255 + .../alma/AS/SECTOR04/LAN03/USD06/USD06.xml | 256 + .../CDB/alma/AS/SECTOR04/LAN04/LAN04.xml | 6 + .../alma/AS/SECTOR04/LAN04/USD02/USD02.xml | 240 + .../alma/AS/SECTOR04/LAN04/USD03/USD03.xml | 236 + .../alma/AS/SECTOR04/LAN04/USD04/USD04.xml | 235 + .../alma/AS/SECTOR04/LAN04/USD05/USD05.xml | 236 + .../alma/AS/SECTOR04/LAN04/USD06/USD06.xml | 235 + .../CDB/alma/AS/SECTOR04/LAN05/LAN05.xml | 6 + .../alma/AS/SECTOR04/LAN05/USD01/USD01.xml | 230 + .../alma/AS/SECTOR04/LAN05/USD02/USD02.xml | 230 + .../alma/AS/SECTOR04/LAN05/USD03/USD03.xml | 230 + .../alma/AS/SECTOR04/LAN05/USD04/USD04.xml | 230 + .../alma/AS/SECTOR04/LAN05/USD05/USD05.xml | 227 + .../alma/AS/SECTOR04/LAN05/USD06/USD06.xml | 225 + .../CDB/alma/AS/SECTOR04/LAN06/LAN06.xml | 6 + .../alma/AS/SECTOR04/LAN06/USD02/USD02.xml | 221 + .../alma/AS/SECTOR04/LAN06/USD03/USD03.xml | 220 + .../alma/AS/SECTOR04/LAN06/USD04/USD04.xml | 217 + .../alma/AS/SECTOR04/LAN06/USD05/USD05.xml | 217 + .../alma/AS/SECTOR04/LAN06/USD06/USD06.xml | 216 + .../CDB/alma/AS/SECTOR04/LAN07/LAN07.xml | 6 + .../alma/AS/SECTOR04/LAN07/USD01/USD01.xml | 219 + .../alma/AS/SECTOR04/LAN07/USD02/USD02.xml | 210 + .../alma/AS/SECTOR04/LAN07/USD03/USD03.xml | 211 + .../alma/AS/SECTOR04/LAN07/USD04/USD04.xml | 212 + .../alma/AS/SECTOR04/LAN07/USD05/USD05.xml | 212 + .../alma/AS/SECTOR04/LAN07/USD06/USD06.xml | 210 + .../alma/AS/SECTOR04/LAN07/USD07/USD07.xml | 209 + .../CDB/alma/AS/SECTOR04/LAN08/LAN08.xml | 6 + .../alma/AS/SECTOR04/LAN08/USD02/USD02.xml | 204 + .../alma/AS/SECTOR04/LAN08/USD03/USD03.xml | 204 + .../alma/AS/SECTOR04/LAN08/USD04/USD04.xml | 202 + .../alma/AS/SECTOR04/LAN08/USD05/USD05.xml | 202 + .../alma/AS/SECTOR04/LAN08/USD06/USD06.xml | 204 + .../CDB/alma/AS/SECTOR04/LAN09/LAN09.xml | 6 + .../alma/AS/SECTOR04/LAN09/USD01/USD01.xml | 200 + .../alma/AS/SECTOR04/LAN09/USD02/USD02.xml | 200 + .../alma/AS/SECTOR04/LAN09/USD03/USD03.xml | 200 + .../alma/AS/SECTOR04/LAN09/USD04/USD04.xml | 202 + .../alma/AS/SECTOR04/LAN09/USD05/USD05.xml | 200 + .../alma/AS/SECTOR04/LAN09/USD06/USD06.xml | 200 + .../CDB/alma/AS/SECTOR04/LAN10/LAN10.xml | 6 + .../alma/AS/SECTOR04/LAN10/USD02/USD02.xml | 195 + .../alma/AS/SECTOR04/LAN10/USD03/USD03.xml | 196 + .../alma/AS/SECTOR04/LAN10/USD04/USD04.xml | 195 + .../alma/AS/SECTOR04/LAN10/USD05/USD05.xml | 194 + .../alma/AS/SECTOR04/LAN10/USD06/USD06.xml | 194 + .../CDB/alma/AS/SECTOR04/LAN11/LAN11.xml | 6 + .../alma/AS/SECTOR04/LAN11/USD01/USD01.xml | 184 + .../alma/AS/SECTOR04/LAN11/USD02/USD02.xml | 195 + .../alma/AS/SECTOR04/LAN11/USD03/USD03.xml | 195 + .../alma/AS/SECTOR04/LAN11/USD04/USD04.xml | 194 + .../alma/AS/SECTOR04/LAN11/USD05/USD05.xml | 192 + .../alma/AS/SECTOR04/LAN11/USD06/USD06.xml | 190 + .../CDB/alma/AS/SECTOR04/LAN12/LAN12.xml | 6 + .../alma/AS/SECTOR04/LAN12/USD02/USD02.xml | 178 + .../alma/AS/SECTOR04/LAN12/USD03/USD03.xml | 175 + .../alma/AS/SECTOR04/LAN12/USD04/USD04.xml | 173 + .../alma/AS/SECTOR04/LAN12/USD05/USD05.xml | 173 + .../alma/AS/SECTOR04/LAN12/USD06/USD06.xml | 172 + .../CDB/alma/AS/SECTOR04/set_calibrate.py | 24 + .../CDB/alma/AS/act_Noto_rev01.txt | 268 + .../CDB/alma/AS/act_Noto_rev02.txt | 244 + .../Configuration/CDB/alma/AS/act_new_lut.txt | 1116 + Noto/Configuration/CDB/alma/AS/act_rev02.txt | 1116 + .../CDB/alma/AS/actuatorsCorrections.txt | 100440 +++++++++ .../CDB/alma/AS/actuatorsCorrections_FEM.txt | 5580 + .../AS/actuatorsCorrections_FEM_Initial.txt | 1116 + .../Configuration/CDB/alma/AS/default_lut.txt | 1116 + Noto/Configuration/CDB/alma/AS/make_lan.py | 16 + Noto/Configuration/CDB/alma/AS/new_lut.txt | 1116 + .../CDB/alma/AS/set_calibrate.py | 24 + .../Configuration/CDB/alma/AS/tab_convUSD.txt | 244 + .../CDB/alma/AS/tab_convUSD.txt.Circles | 1116 + .../CDB/alma/AS/tab_convUSD.txt.Sectors | 1116 + .../CDB/alma/AS/tab_convUSD.txt.orig | 268 + .../CDB/alma/AS/tab_convUSD_S1.txt | 61 + .../CDB/alma/AS/tab_convUSD_S2.txt | 61 + .../CDB/alma/AS/tab_convUSD_S3.txt | 61 + .../CDB/alma/AS/tab_convUSD_S4.txt | 61 + Noto/Configuration/CDB/alma/AS/usd_pos.txt | 24 + .../include/NotoActiveSurfaceBossCore.h | 6 +- .../src/NotoActiveSurfaceBossCore.cpp | 43 +- .../src/NotoActiveSurfaceBossImpl.cpp | 4 +- .../src/NotoActiveSurfaceBossSectorThread.cpp | 7 +- 515 files changed, 343735 insertions(+), 5177 deletions(-) create mode 100644 Common/Servers/ActiveSurfaceLan/src/.lanImpl.cpp.swo create mode 100644 Noto/CDB/alma/AS/act_Noto_rev01.txt create mode 100644 Noto/CDB/alma/AS/act_Noto_rev02.txt mode change 100644 => 100755 Noto/CDB/alma/AS/set_calibrate.py create mode 100644 Noto/CDB/alma/AS/tab_convUSD.txt.orig create mode 100755 Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui.17012024 create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer01/NotoActiveSurfaceContainer01.xml create mode 100644 Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer02/NotoActiveSurfaceContainer02.xml create mode 100644 Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer03/NotoActiveSurfaceContainer03.xml create mode 100644 Noto/Configuration/CDB/MACI/Containers/NotoActiveSurfaceContainer04/NotoActiveSurfaceContainer04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN01/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN02/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN03/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN04/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN05/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN06/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN07/USD07/USD07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN08/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN09/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN10/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN11/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR01/LAN12/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN01/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN02/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN03/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN04/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN05/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN06/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN07/USD07/USD07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN08/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN09/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN10/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN11/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR02/LAN12/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN01/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN02/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN03/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN04/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN05/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN06/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN07/USD07/USD07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN08/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN09/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN10/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN11/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR03/LAN12/USD06/USD06.xml create mode 100755 Noto/Configuration/CDB/alma/AS/SECTOR03/set_calibrate.py create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN01/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN02/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN03/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN04/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN05/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN06/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN07/USD07/USD07.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN08/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN09/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN10/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD01/USD01.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN11/USD06/USD06.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/USD02/USD02.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/USD03/USD03.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/USD04/USD04.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/USD05/USD05.xml create mode 100644 Noto/Configuration/CDB/alma/AS/SECTOR04/LAN12/USD06/USD06.xml create mode 100755 Noto/Configuration/CDB/alma/AS/SECTOR04/set_calibrate.py create mode 100644 Noto/Configuration/CDB/alma/AS/act_Noto_rev01.txt create mode 100644 Noto/Configuration/CDB/alma/AS/act_Noto_rev02.txt create mode 100644 Noto/Configuration/CDB/alma/AS/act_new_lut.txt create mode 100644 Noto/Configuration/CDB/alma/AS/act_rev02.txt create mode 100644 Noto/Configuration/CDB/alma/AS/actuatorsCorrections.txt create mode 100644 Noto/Configuration/CDB/alma/AS/actuatorsCorrections_FEM.txt create mode 100644 Noto/Configuration/CDB/alma/AS/actuatorsCorrections_FEM_Initial.txt create mode 100644 Noto/Configuration/CDB/alma/AS/default_lut.txt create mode 100755 Noto/Configuration/CDB/alma/AS/make_lan.py create mode 100644 Noto/Configuration/CDB/alma/AS/new_lut.txt create mode 100755 Noto/Configuration/CDB/alma/AS/set_calibrate.py create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD.txt create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD.txt.Circles create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD.txt.Sectors create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD.txt.orig create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD_S1.txt create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD_S2.txt create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD_S3.txt create mode 100644 Noto/Configuration/CDB/alma/AS/tab_convUSD_S4.txt create mode 100644 Noto/Configuration/CDB/alma/AS/usd_pos.txt diff --git a/Common/Servers/ActiveSurfaceLan/src/.lanImpl.cpp.swo b/Common/Servers/ActiveSurfaceLan/src/.lanImpl.cpp.swo new file mode 100644 index 0000000000000000000000000000000000000000..b0168aaf16d292964df33b58f1e854804813340b GIT binary patch literal 16384 zcmYc?2=nw+FxN9-U|?VnU|?9#kdZq5GdGJ02NOd|W^r<UF-QVG&d$q8HY_&O%gZmx z*UKzQ)XU6EOw-FOLDy9WF;G7_HLoPUINm%yIX|}`u_QAoGbgj8Qr|g0H#a{|KRC6h zEVZau-!Zu)vn(~Zv?whxIn^gIPrtY*SwAN+&oj3mM=!ac0NwOa{%8n{h5-H$;AJp2 zGBg0GQC3n^5EcprF-P%e2#kinXb6mkz-S1JhQMeDjE2By2#kin2nm6b0w#uf1_lNu zsDHDdG$R_#4CO~a>1-$sQwQaaQllX-8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71* zAut*OgD?aVQy3V685kJEK?48+3=FXT|7(5*hEx0u3@7;+7%KP~7|Qq=7>xND7!3It z7{vG)7%uWLFs$NZU|7z_z_5&ufkA?gf#C)(1H(*S28J2D3=GqF85p8?85kmX85qKO z85rbv85pE_85mykFfhF2VPLq;!@zKohk;=?4+Fz`9tMWBJPZu0c^DYdco-Ozco-Oj zc^DY@c^DX2c^DYhaWgP@b2Biwax*YEaWgRd<YHjB%f-O3my3a6BNqch6c+;n6Bh%+ zB2ET|`J4<4QJf468k`IaUpN>TK5;NGeB@wY*v-Mfu!Dnvp__w&p_7Awp@V~gp@4&d zA&-NBA%=s2!Igu7L63uhL4$*VL5+ifL6w7nfrEpAfsKQK;R`zh!(Da;hGXmu3<ua5 z81}I<FzjV#U|7k{z_6U1fuV(+fx(`gfx(uYfx(8Ifx()cfngOJ1H%e728Kp928J>= z28MVx28K8`1_os|1_lK-28J)J3=E%H85j<;GBC8UGBAX&GBEsNVPLq#!oX0@!oc9e z!ocv6nSo&&GXp~$GXsMGGXukACI*I0ObiT(ObiSjOprJe1H~Kl(-kKtCunhoZC+}* zf`X%Suxn9KNM%8)zqgeYgy-+=oS$2elUkCQpQoW|&A`c7tB{&goT`wSrcsnyTwrVK z=<KbjP|bj963C$ZqGBs6zr<`L1LEV|Jbhf_<8|WWeLVd@3?(Zo=vogetK!tWl+a)o z=iC$}tTy>Mf^1Sy;MCXmbM(e#qi0@OVoqjCP-<~OeqM1Z)oj-_(Nw5bP~ha$*U!uY z1zJvONvc9oYC%pVE~f<NCugUYxFu%hP|p>{a95P(6{RNUm!%dZCgr3m6oc(jC@9KL z%1O;FX5i#hP*6|+xf2?>@F;<}D#X9EgnF(r0=r6qQ$b%J=8}^9(h@wb2n}`#$;?g7 zr=}|mkz5fP?4kg50wjqmfYP`lS||jiCg<nnksS`1X$sI>V4wiDn^Rw30c*UZ78T_e zF>rD^ItRzQxH^Tp#|JnDIr?f~PyZU4N;*oQ>}92zqND?2fHMS$p<t^}0E%l}J5Y9U z&P~xs&P~xtOi3xyDM&0z%+<+rsw_z@*0g3|-~>4jsyH{kI6t@~u|&bvRv{-b50VC~ ztb$w}T_Pdbmx0qcI5pX^C^a!CwK%`DC^<E}D6ya*wa5mp-VS25f~^9`xa4eIJNMKQ zP^rMci3mc_x-Bhm!n0=J%*-oM0J++l0qpaTAV+6c+<w-yW~gR>lsi^d2otpwKu!jk zi(E!%IQs`VIa*oy<maU;fWiQo4-OAx0Z7;&i$KFkK|!G;qbR>z0cKusWpPPru4_ed zY5}Ow(_~;^sD-#5SG?6hOE4uJ1tpi%;*z5L%FMiU1=V6bJv}8Ig}lVvR1Hl~1cD+T zGYH_?!QO|OWn~2u*3bkw0F;?)89*cmLxNwyR>3dS$Hy8joRSJIlOVDXVNeo)@IkR$ z%}|z~nSuz-#H9Svl8}7Ir2L{1TH2GGlbV<pS^%*EM@oQsTp_h0HMz7TRYMb03siHW zIT<bsi#Aw#adZw&N-R!wtpFtyaF}sIJg#f!nU`6jksA-r3YylSJerx8S(2HUlUbFj zP?C`fDm6<|lS}f8z(EPoreF&$F+iE3v?vvnFOV_<!Zf6$fs(MH-ciy~0+l<U9GhCA zkYA9RmztuGn3tjeDtA(oOHxx5LEhx7W#Ht5q{GDIVrVVwlbM$4T$!AcYGnmyLcFJu z3ihQAmiiQGuay<Ti;$4y<U|yHKAA~HiA9x=Qot2dG(pT&fS9X6qPfn&@xdPcK_T%z z{_YwYKECm;K|%gOI!a)Z!JY=?2Ur;7DX11J6yz6`D1Zt#jpY2i;u3}AjKm@>P0s)w zkOVlhfKqO1Q4uKFa;6p)feRgQ3_|16Ge8Gy3MgYi;}#la@bU^&G=WnauAB=EEF~Q! z&j1C-l$4^>;$kZW)nX+bG-rV<sbv6HsSuLJaRtici0E>5adJ#fPAvu{jQk=Bq6*q} z1GUyb362vK*tRJpsksH9mK`X>ojrpbL-O-;imj~DQ%hW&!V+^zQ#I04OPurbN)j{k zQj0+Ab~BSxi#0TLltB8Gbif8^f+LD_BRm73;jX0P82~YaffG`3q!ty~8dx)MhWiJ( zfTJ4B^9*vdvT_bCDFUS_&j4!%P8YBOuq&)Vda)O?(73izK+hN$MGUe6B1#zo)`8P^ zQ7Nc&v33TfbqE`r?W-9WKvii;Vo7Ond~tyWsHh0?&&khA*N6vI8`?@%#b8M#9R+Y4 z<QC-TrRJ4rXlm+|WMmd=g0!ck<|J0ab%&?qmnP+;!u5k?acS3KfQ1UI6%I}Jj?S*} z&@fh006Rq|H!(RAR4bz;15j0uCZwrgrQn>ASd^Gtl3J8mT#}g#s>{I+2bIkbr|Bf4 zCn!xF1_mvC1}z15UtduAS5Q#MD$P+aGB7X&wPcG@6G8PcCnvaN%b=y83k3>TSWqbf z6oZyRc}70euJVl3JP5NqBe8@*i$P04$w5O|Q$fWu#R^tsf)=FflqneM87deV7#ivt z80#9DC>U5;8Jby{7%3#{<z}Ym=VdCmRum|xC^2X;=xb3IFfi!rD`(~<=ai<TD%gPH z1fDTLVXK#6$AFNAMlMJY)c>Ex$iN`P3|apVo8O<q&%iK~pMjx-pMgPwpMgP?pMl{s z9|OZjJ_d#ld<+cHd<+bcd<+c6d<+bR(EdLI9|OZTUIvD*ybKIGc^MeC@G>xT@G>y8 z@-i?a@iH(Z@G>xH^D;1;;$dJ|%)`Lo$iu)O!Nb6?jhlg?hMR#wmYad$6Bh$R9~T2d zAr}LKBo_k%0~Z6sA5I2_i<}G$`#2dGVmKKX961>n9&#`+9OGbMNaJ8&@aAA(c+Jkh zaDknHp@5x%A%&fR!G)cH;X4}x!v{77hI4ET4Ebyf4B2c942f(E4F6df82*6z+pG)> zKUo<Vey}nyY-43$*viVlP|V7}P{_)_;K0hj@ScT%;U)_M!*v!0hHESg3|Cng7_P7| zFid7)V3^3lz>vtoz#z=R!0?xuf#EkZ1H&(728N%^3=Er@85sJQ85pvd85mTU85oqA z85oq985l&E85o3_Az>{D3UBK7+eb~LLI~(<#mC3z`{&2U$7|^`FfiyN$`k?x2To}% zeFk4gXU}*SAD{T((0~9?qsT4P&pE`?-!E7LnjbZhvM4AAJ30r$3rLsLw9LHJVo;XF zbdEx_0?2d)7at#m;?e?8?W>ShnwJbJ7mF2Q;pHIQd0=nVGH@29mXsFdfttAmdhtc6 zC6J*UN9SNGD@b({UzS(|mbOI_w6coNODrnNFW1P8hg3uH#Ra-{po$38^$JQ&OD#&x zONMrCGSiTi+1eUtDnPA8Gcq#=)Gh;e^x)PPloY{=SSx6ir=ba}d!fBHEFCjY&kSlw zK~X-Y-=LKty6>RE$o>OYlLWm7Q-$d}BqLG%2bG9N@gdk8B0Pwh1RznX5Ul_X6oulF z(zG;eF%MP;i+*s+723T(v??L3f4}^app;5Tn-W{QA8CB9C^b1W*d-vbNJ&#KJ+%a8 zl4}JhK4Ig6@U|tSg$z>!>A5@SrnnYC8?Y2v2Dc4TV}pjB{2aX%@{1JmOEOZ6K*L|0 zwF(NLfjQ2!{2~p|I7Fr`q|2{uXswW`V5eYcovEv<si0L*25RGKYuhH3rlmz^##)0+ zD@p}zPJ{Fg!DD<-!<-^RT(uM+T5L7IJWVz5-~y-x4R;pUV)PL3gby21A-K^8VnG8t z;2}z^Rzu<%G!jWGt3l(Ec&rZbFD;>!)u6#gtX3n&7-?lSXv7h#)sO&(3@=i}a_D$F zD4GqxT`f*d(7+mEIIt)+IW@B^)u}WsEwxAkl$Ldha#Hg^Jy%XnyyN!h>C`VVn;K4r zb~d37x3z^2--BF(Q5vBQ+tb1U;Oqe#!A~s9%t=8E-=l{CB>t$CVbFs@7nEBRK;;b9 z!D6&QeC%$cR*u4O8z?&|fE@=Nv4IYwgNj;or%*SCVK@bpy+GFL>nk9S=cBs<5?R#C zY|tdDU~3B<)&~a%G&Eq5qo)9xe#y%N58{D_9nkV4`tUqBBa$>G5Arz$qw<^#44mMa z2|R29s;U$~r9!k*sGFN>P_So|Yb??TJ-D!d)sV(`#!=v{0LZW+`j9e08r(u5c6=UE zHR~YhQBwdrUK2V#k7IaVM*-2ofU#UFAj7}VmLX^kOxF&=0kyM{CNseeBL(ne1@>7o zNb3km7nYGxq!tn=&XHy?q3O9A6p<jTude``9m~rvDN0RD0Zknu%4Vz%K`R)^bPE7K C2<ROE literal 0 HcmV?d00001 diff --git a/Common/Servers/ActiveSurfaceLan/src/lanSocket.cpp b/Common/Servers/ActiveSurfaceLan/src/lanSocket.cpp index b6b69fe73..4f1b57fee 100644 --- a/Common/Servers/ActiveSurfaceLan/src/lanSocket.cpp +++ b/Common/Servers/ActiveSurfaceLan/src/lanSocket.cpp @@ -101,7 +101,7 @@ int lanSocket::sendCmd(BYTE cmd,BYTE addr,long par,BYTE nbytes) } res=receiveBuffer(&resp,1); - + if(res != 1) { // USD timeout or error ACS_DEBUG("::lanSocket::lanSocket","problems on usd reply!"); return res; diff --git a/Common/Servers/ActiveSurfaceUSD/src/ActiveSurfaceUSDImpl.cpp b/Common/Servers/ActiveSurfaceUSD/src/ActiveSurfaceUSDImpl.cpp index d26e55c9e..d9d23a795 100644 --- a/Common/Servers/ActiveSurfaceUSD/src/ActiveSurfaceUSDImpl.cpp +++ b/Common/Servers/ActiveSurfaceUSD/src/ActiveSurfaceUSDImpl.cpp @@ -321,7 +321,7 @@ void USDImpl::reset() throw (CORBA::SystemException,ASErrors::ASErrorsEx) try { - _SET_CDB(calibrate, m_calibrate, "::USDImpl::reset()") + //_SET_CDB(calibrate, m_calibrate, "::USDImpl::reset()") action(RESET); //* restore defaults *// @@ -589,7 +589,7 @@ void USDImpl::update(CORBA::Double elevation) throw (CORBA::SystemException, ASE updatePos = std::min(updatePos, m_top); if(updatePos == m_lastCmdStep) return; - _GET_PROP(status, m_status, "usdImpl::calibrate()") + _GET_PROP(status, m_status, "usdImpl::update()") bool running = m_status&MRUN; if(running) return; diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml index 8fec8b7cb..2c7522f8b 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN01/LAN01.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml index 4b3522963..050e8e306 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN02/LAN02.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml index a3932fb0f..7cdb94929 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN03/LAN03.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml index c9a433cf6..dcbbe593d 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN04/LAN04.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml index d74ed9e86..dc5602949 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN05/LAN05.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml index 993fa350a..652a3c061 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN06/LAN06.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml index 3a1c154f3..35c89cbb4 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN07/LAN07.xml @@ -4,12 +4,12 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml index 0324beead..392fc44f2 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN08/LAN08.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml index e8bf90c0a..b7f32fe60 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN09/LAN09.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml index 3431d017a..5a59ce0fc 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN10/LAN10.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml index 69e644c5e..0be50246b 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN11/LAN11.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml index a6c92eccb..dfe371f22 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR01/LAN12/LAN12.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer01" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml index cf23890bc..8df995439 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN01/LAN01.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml index 89ad64b72..f26f17573 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN02/LAN02.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml index a54a36e50..dc8f7877a 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN03/LAN03.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml index ae52cdb6f..c4dbba796 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN04/LAN04.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml index 6189e0314..ab8433fc2 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN05/LAN05.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml index b045adcb8..735eb4dd9 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN06/LAN06.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml index c4d533abb..c74135584 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN07/LAN07.xml @@ -4,12 +4,12 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml index 562c49a0c..987b353b0 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN08/LAN08.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml index d4d2218ad..5e3dd19e8 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN09/LAN09.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml index 55b2ca192..2d4b33798 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN10/LAN10.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml index 8dd92a804..6486358ab 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN11/LAN11.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml index 1191c5290..576db0031 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR02/LAN12/LAN12.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer02" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml index 51df6da54..770f2d052 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN01/LAN01.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml index c65f8e2fc..08d3df69d 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN02/LAN02.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml index 63553faec..dec3ad7f5 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN03/LAN03.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml index 76556b57d..8d93e132c 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN04/LAN04.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml index 92fbd9c0f..796706d57 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN05/LAN05.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml index f32fd14c7..d03322121 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN06/LAN06.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml index 4851ddb06..5770ce189 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN07/LAN07.xml @@ -4,12 +4,12 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml index ab77560a7..6f5f95a7a 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN08/LAN08.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml index bf4571f66..62a2e5acd 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN09/LAN09.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml index 553d4f875..fe5ec5d7f 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN10/LAN10.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml index 4bee18c9e..75ce4fbf2 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN11/LAN11.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml index cc2912b0f..d24d7d837 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR03/LAN12/LAN12.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer03" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml index e127e03f2..0a5287093 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN01/LAN01.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN01" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml index e4721cfea..4b4a8bdf9 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN02/LAN02.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN02" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml index fd2b65796..0f0526838 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN03/LAN03.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN03" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml index adccb6705..4ec04d4fc 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN04/LAN04.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN04" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml index 2cba33a2c..79f0b6b69 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN05/LAN05.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN05" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml index dda36e18f..0d1a086be 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN06/LAN06.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN06" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml index 7ca66d0a7..28eb5bddc 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN07/LAN07.xml @@ -4,12 +4,12 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN07" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD07" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml index 3d8a12d9c..09308e304 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN08/LAN08.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN08" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml index 800bd5580..9b1ea6108 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN09/LAN09.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN09" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml index fe8b561ec..b76305566 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN10/LAN10.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN10" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml index 283a5148a..52c2bca08 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN11/LAN11.xml @@ -4,11 +4,11 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN11" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD01" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml index 9fad44b79..b888dceb6 100644 --- a/Noto/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml +++ b/Noto/CDB/MACI/Components/AS/SECTOR04/LAN12/LAN12.xml @@ -4,10 +4,10 @@ xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="LAN12" Code="lanImpl" Type="IDL:alma/ActiveSurface/lan:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"> - <_ Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> - <_ Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD02" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD03" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD04" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD05" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> + <e Name="USD06" Code="ActiveSurfaceUSDImpl" Type="IDL:alma/ActiveSurface/USD:1.0" Container="NotoActiveSurfaceContainer04" ImplLang="cpp"/> </HierarchicalComponent> diff --git a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer01/NotoActiveSurfaceContainer01.xml b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer01/NotoActiveSurfaceContainer01.xml index 62ca03e37..9fecba35d 100644 --- a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer01/NotoActiveSurfaceContainer01.xml +++ b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer01/NotoActiveSurfaceContainer01.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer02/NotoActiveSurfaceContainer02.xml b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer02/NotoActiveSurfaceContainer02.xml index 8b5644f5b..f994d42ca 100644 --- a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer02/NotoActiveSurfaceContainer02.xml +++ b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer02/NotoActiveSurfaceContainer02.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer03/NotoActiveSurfaceContainer03.xml b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer03/NotoActiveSurfaceContainer03.xml index 8b5644f5b..f994d42ca 100644 --- a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer03/NotoActiveSurfaceContainer03.xml +++ b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer03/NotoActiveSurfaceContainer03.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer04/NotoActiveSurfaceContainer04.xml b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer04/NotoActiveSurfaceContainer04.xml index 8b5644f5b..f994d42ca 100644 --- a/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer04/NotoActiveSurfaceContainer04.xml +++ b/Noto/CDB/MACI/Containers/NotoActiveSurfaceContainer04/NotoActiveSurfaceContainer04.xml @@ -11,7 +11,7 @@ ImplLang="cpp"> <Autoload> - <cdb:_ string="baci" /> + <cdb:e string="baci" /> </Autoload> <LoggingConfig diff --git a/Noto/CDB/MACI/Managers/Manager/Manager.xml b/Noto/CDB/MACI/Managers/Manager/Manager.xml index db7927c94..ba99a3242 100644 --- a/Noto/CDB/MACI/Managers/Manager/Manager.xml +++ b/Noto/CDB/MACI/Managers/Manager/Manager.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<Manager xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" - xmlns="urn:schemas-cosylab-com:Manager:1.0" - xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<Manager xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns="urn:schemas-cosylab-com:Manager:1.0" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Timeout="50.0" ClientPingInterval="30.0" AdministratorPingInterval="45.0" diff --git a/Noto/CDB/alma/AS/Boss/Boss.xml b/Noto/CDB/alma/AS/Boss/Boss.xml index cc987e941..95cea922f 100644 --- a/Noto/CDB/alma/AS/Boss/Boss.xml +++ b/Noto/CDB/alma/AS/Boss/Boss.xml @@ -21,10 +21,25 @@ - Mon Dec 21 15:28:09 UTC 2020 modified by jDAL - Wed Mar 17 13:51:15 UTC 2021 modified by jDAL - Wed Mar 17 13:52:12 UTC 2021 modified by jDAL + - Mon Apr 15 09:43:35 UTC 2024 modified by jDAL + - Mon Apr 15 11:43:55 UTC 2024 modified by jDAL + - Mon Apr 15 13:28:18 UTC 2024 modified by jDAL + - Tue Apr 16 07:01:19 UTC 2024 modified by jDAL + - Tue Apr 16 07:20:22 UTC 2024 modified by jDAL + - Tue Apr 16 07:41:04 UTC 2024 modified by jDAL + - Tue Apr 16 07:46:44 UTC 2024 modified by jDAL + - Tue Apr 16 08:11:51 UTC 2024 modified by jDAL + - Tue Apr 16 08:26:34 UTC 2024 modified by jDAL + - Tue Apr 16 08:26:59 UTC 2024 modified by jDAL + - Tue Apr 16 09:29:28 UTC 2024 modified by jDAL + - Wed Apr 17 07:07:09 UTC 2024 modified by jDAL + - Wed Apr 17 07:09:14 UTC 2024 modified by jDAL + - Wed Apr 17 07:25:11 UTC 2024 modified by jDAL + - Wed Apr 17 07:36:50 UTC 2024 modified by jDAL --> -<NotoActiveSurfaceBoss xmlns="urn:schemas-cosylab-com:NotoActiveSurfaceBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" WatchingThreadTime="200000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" profile="2"> +<NotoActiveSurfaceBoss xmlns="urn:schemas-cosylab-com:NotoActiveSurfaceBoss:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" WatchingThreadTime="200000" WorkingThreadTime="500000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" profile="4"> <status /> <enabled /> <pprofile /> <tracking /> -</NotoActiveSurfaceBoss> +</NotoActiveSurfaceBoss> \ No newline at end of file diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml b/Noto/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml index b6fbe43e5..a354d4a3c 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN01/LAN01.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11000"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4001"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml b/Noto/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml index 1b334a0fa..73d025de4 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN02/LAN02.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11001"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4002"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml b/Noto/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml index 91cdfe7d5..28d947e10 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN03/LAN03.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11002"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4003"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml b/Noto/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml index efb60ef7f..57ae9510d 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN04/LAN04.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11003"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4004"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml b/Noto/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml index 1a8419940..c34ec41d4 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN05/LAN05.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11004"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4005"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml b/Noto/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml index bcb69e43f..c6448ad13 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN06/LAN06.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11005"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4006"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml b/Noto/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml index d968e82a9..1e978e459 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN07/LAN07.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11006"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4007"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml b/Noto/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml index ff0db82c6..f29a4c334 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN08/LAN08.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11007"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4008"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml b/Noto/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml index 31ffa7f95..03f1e2ae4 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN09/LAN09.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11008"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4009"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml b/Noto/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml index a19bbe92b..677e6cd1b 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN10/LAN10.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11009"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4010"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml b/Noto/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml index 8636caa7c..79b661ddc 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN11/LAN11.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11010"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4011"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml b/Noto/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml index 8fa8b7b4b..a62a80c7a 100644 --- a/Noto/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml +++ b/Noto/CDB/alma/AS/SECTOR01/LAN12/LAN12.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11011"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4012"> <delay units="mSec" description="response delay"/> <status description="converter status"/> -</lan> \ No newline at end of file +</lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml b/Noto/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml index f7a54191a..9a7000514 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN01/LAN01.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11012"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4013"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml b/Noto/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml index f9645aa41..49a1274e9 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN02/LAN02.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11013"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4014"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml b/Noto/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml index e5ee2228b..0cf6161f1 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN03/LAN03.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11014"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4015"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml b/Noto/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml index 9f91f3325..2f253082d 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN04/LAN04.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11015"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.160" port="4016"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml b/Noto/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml index 7ed468cd1..e7a7e499b 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN05/LAN05.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11016"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4001"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml b/Noto/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml index 6e00158e1..8fb681373 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN06/LAN06.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11017"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4002"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml b/Noto/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml index 8cbd935f7..fd124292c 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN07/LAN07.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11018"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4003"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml b/Noto/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml index c3a35ad08..6c9232eae 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN08/LAN08.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11019"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4004"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml b/Noto/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml index b3e85d087..3a107a429 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN09/LAN09.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11020"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4005"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml b/Noto/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml index cf75c96c4..0446f8f7e 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN10/LAN10.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11021"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4006"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml b/Noto/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml index 24a3e7c80..098500d9f 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN11/LAN11.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11022"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4007"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml b/Noto/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml index a24d765b9..decc024bc 100644 --- a/Noto/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml +++ b/Noto/CDB/alma/AS/SECTOR02/LAN12/LAN12.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11023"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4008"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml b/Noto/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml index ae9ab42e8..6634b168f 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN01/LAN01.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11024"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4009"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml b/Noto/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml index a67ec98c6..ad7363dae 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN02/LAN02.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11025"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4010"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml b/Noto/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml index 927e02d61..ccbadf57e 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN03/LAN03.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11026"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4011"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml b/Noto/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml index 56eed4404..0b19775c0 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN04/LAN04.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11027"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4012"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml b/Noto/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml index d5de759f2..d41d490b1 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN05/LAN05.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11028"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4013"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml b/Noto/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml index 6d67a1002..a6868d954 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN06/LAN06.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11029"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4014"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml b/Noto/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml index 27b9525d1..8014987fc 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN07/LAN07.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11030"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4015"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml b/Noto/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml index 042417667..9efb9e5a9 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN08/LAN08.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11031"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.161" port="4016"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml b/Noto/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml index 64c31f2a4..9d6d12b40 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN09/LAN09.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11032"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4001"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml b/Noto/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml index e7a2c9a62..1850e83c8 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN10/LAN10.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11033"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4002"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml b/Noto/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml index 8009885a8..32d556537 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN11/LAN11.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11034"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4003"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml b/Noto/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml index b09da450b..6a7b82286 100644 --- a/Noto/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml +++ b/Noto/CDB/alma/AS/SECTOR03/LAN12/LAN12.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11035"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4004"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml b/Noto/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml index 520bb5658..816857770 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN01/LAN01.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11036"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4005"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml b/Noto/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml index 05a88b247..4013ff03b 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN02/LAN02.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11037"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4006"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml b/Noto/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml index 19fa270a2..a7535d0fd 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN03/LAN03.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11038"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4007"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml b/Noto/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml index 29480c555..cbf40b8f1 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN04/LAN04.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11039"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4008"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml b/Noto/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml index 0be38ab8c..86a008a2a 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN05/LAN05.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11040"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4009"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml b/Noto/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml index e6e49a272..5081bc647 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN06/LAN06.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11041"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4010"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml b/Noto/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml index 7c147935a..5c0a8d4d3 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN07/LAN07.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11042"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4011"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml b/Noto/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml index 91d95e217..c61ce2391 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN08/LAN08.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11043"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4012"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml b/Noto/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml index b50fb501a..4d6f09032 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN09/LAN09.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11044"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4013"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml b/Noto/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml index 05e546d7d..08432c4be 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN10/LAN10.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11045"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4014"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml b/Noto/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml index e7222cde7..b73771eb6 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN11/LAN11.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11046"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4015"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml b/Noto/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml index eb5749789..d6151cecf 100644 --- a/Noto/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml +++ b/Noto/CDB/alma/AS/SECTOR04/LAN12/LAN12.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="127.0.0.1" port="11047"> +<lan xmlns="urn:schemas-cosylab-com:lan:1.0" IPAddress="192.167.187.162" port="4016"> <delay units="mSec" description="response delay"/> <status description="converter status"/> </lan> diff --git a/Noto/CDB/alma/AS/act_Noto_rev01.txt b/Noto/CDB/alma/AS/act_Noto_rev01.txt new file mode 100644 index 000000000..9dc044a0b --- /dev/null +++ b/Noto/CDB/alma/AS/act_Noto_rev01.txt @@ -0,0 +1,268 @@ +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.000 0.000 0.000 0.000 0.000 0.000 0.000 +0.104 0.003 -0.309 -0.422 -0.567 -0.696 0.000 +0.110 -0.150 -0.506 -0.652 -0.876 -1.127 0.000 +0.171 0.108 -0.152 -0.367 -0.466 -0.738 0.000 +0.101 -0.122 -0.252 -0.492 -0.660 -0.900 0.000 +0.008 0.027 -0.075 -0.154 -0.300 -0.523 0.000 +-0.193 -0.267 -0.042 -0.085 -0.184 -0.295 0.000 +-0.154 -0.152 -0.063 -0.055 -0.071 -0.146 0.000 +-0.145 -0.084 0.043 0.055 0.035 0.081 0.000 +-0.399 -0.239 0.056 0.192 0.314 0.411 0.000 +-0.424 -0.403 -0.218 -0.062 0.208 0.154 0.000 +-0.242 -0.074 -0.091 0.133 0.347 0.522 0.000 +-0.200 -0.210 0.110 0.290 0.485 0.560 0.000 +-0.225 -0.179 -0.052 0.172 0.345 0.492 0.000 +-0.253 -0.237 -0.032 0.157 0.271 0.305 0.000 +-0.011 0.009 0.016 0.040 0.170 0.196 0.000 +0.091 0.066 0.067 0.183 0.142 0.145 0.000 +0.425 0.341 -0.143 -0.195 -0.323 -0.505 0.000 +0.382 0.423 0.161 0.045 -0.082 -0.240 0.000 +0.509 0.493 -0.093 -0.290 -0.437 -0.570 0.000 +0.406 0.449 0.269 0.062 -0.029 -0.136 0.000 +0.253 0.244 -0.130 -0.368 -0.493 -0.663 0.000 +0.225 0.360 0.184 0.123 0.016 -0.107 0.000 +0.049 0.088 -0.250 -0.340 -0.467 -0.659 0.000 +0.375 0.468 0.409 0.365 0.356 0.112 0.000 +0.218 0.175 -0.024 -0.233 -0.346 -0.433 0.000 +0.391 0.507 0.362 0.267 0.175 0.104 0.000 +0.249 0.237 -0.059 -0.170 -0.392 -0.439 0.000 +0.440 0.652 0.203 0.205 0.053 -0.131 0.000 +0.289 0.366 -0.157 -0.329 -0.560 -0.740 0.000 +0.747 0.525 0.482 0.424 0.128 -0.041 0.000 +0.481 0.365 0.118 0.031 -0.273 -0.455 0.000 +0.850 0.878 0.675 0.466 0.258 0.095 0.000 +0.391 0.202 0.055 -0.108 -0.214 -0.398 0.000 +0.412 0.402 0.388 0.455 0.460 0.418 0.000 +0.020 0.000 -0.123 0.047 0.014 0.077 0.000 +0.033 0.126 0.165 0.327 0.579 0.612 0.000 +-0.219 -0.308 -0.278 -0.035 0.258 0.339 0.000 +-0.026 0.133 0.036 0.248 0.526 0.585 0.000 +-0.039 -0.069 -0.125 0.060 0.303 0.443 0.000 +-0.097 -0.062 -0.076 0.117 0.291 0.386 0.000 +-0.320 -0.233 -0.182 0.098 0.277 0.288 0.000 +-0.288 -0.107 -0.064 -0.013 -0.148 -0.089 0.000 +-0.258 -0.162 -0.328 -0.167 -0.153 -0.196 0.000 +0.044 0.048 -0.176 -0.224 -0.227 -0.303 0.000 +0.162 0.101 -0.005 -0.132 -0.305 -0.317 0.000 +0.220 0.104 -0.209 -0.331 -0.528 -0.691 0.000 +0.219 0.113 -0.115 -0.269 -0.471 -0.550 0.000 +0.213 0.097 -0.195 -0.383 -0.610 -0.744 0.000 +0.692 0.475 -0.020 -0.365 -0.704 -1.251 0.000 +0.339 0.261 -0.274 -0.604 -0.969 -1.409 0.000 +0.605 0.363 0.037 -0.364 -0.725 -1.105 0.000 +0.382 0.203 -0.041 -0.350 -0.665 -0.989 0.000 +0.543 0.293 0.170 -0.222 -0.517 -0.811 0.000 +0.023 0.039 0.019 -0.109 -0.290 -0.530 0.000 +0.182 0.191 0.239 0.034 -0.121 -0.352 0.000 +-0.524 -0.250 0.228 0.368 0.513 0.435 0.000 +-0.560 -0.340 0.193 0.347 0.495 0.509 0.000 +-0.983 -0.575 -0.008 0.405 0.660 0.767 0.000 +-0.635 -0.455 0.184 0.456 0.605 0.600 0.000 +-0.861 -0.533 -0.298 -0.063 0.025 0.109 0.000 +-0.152 -0.166 0.075 0.223 0.205 0.170 0.000 +0.102 0.054 0.020 0.065 -0.014 -0.180 0.000 +0.687 0.405 0.252 0.182 -0.014 -0.159 0.000 +0.636 0.426 -0.043 -0.173 -0.414 -0.534 0.000 +0.616 0.444 0.118 -0.067 -0.454 -0.689 0.000 +0.762 0.550 -0.121 -0.357 -0.730 -0.904 0.000 +0.486 0.137 0.092 -0.048 -0.425 -0.670 0.000 +0.333 0.041 0.035 -0.123 -0.502 -0.768 0.000 +0.055 -0.270 0.034 -0.051 -0.336 -0.485 0.000 +-0.026 -0.061 -0.050 -0.162 -0.411 -0.660 0.000 +-0.215 -0.477 -0.198 -0.269 -0.463 -0.643 0.000 +-0.218 -0.558 -0.146 -0.266 -0.476 -0.676 0.000 +-0.200 -0.528 -0.048 -0.170 -0.257 -0.451 0.000 +-0.068 -0.201 -0.137 -0.269 -0.453 -0.667 0.000 +-0.039 -0.379 0.004 -0.156 -0.330 -0.535 0.000 +0.097 -0.248 0.010 -0.105 -0.348 -0.622 0.000 +0.189 -0.340 0.057 -0.121 -0.452 -0.781 0.000 +0.433 -0.014 -0.160 -0.367 -0.656 -0.929 0.000 +0.599 0.078 0.057 -0.264 -0.602 -0.916 0.000 +0.856 0.527 0.059 -0.260 -0.512 -0.874 0.000 +0.952 0.515 0.140 -0.150 -0.474 -0.700 0.000 +1.149 0.552 0.300 0.072 -0.196 -0.400 0.000 +0.951 0.744 0.270 0.122 -0.036 -0.295 0.000 +0.601 0.562 0.255 0.300 0.253 0.153 0.000 +0.076 -0.065 -0.015 0.071 0.059 0.097 0.000 +-0.240 -0.331 0.148 0.273 0.452 0.542 0.000 +-0.239 -0.239 0.143 0.385 0.484 0.511 0.000 +-0.606 -0.385 0.272 0.612 0.761 0.971 0.000 +-0.393 -0.234 -0.020 0.246 0.324 0.356 0.000 +-0.374 -0.128 0.008 0.343 0.456 0.444 0.000 +0.310 0.322 0.184 0.162 -0.074 -0.335 0.000 +0.125 0.010 -0.042 -0.121 -0.298 -0.489 0.000 +0.680 0.467 0.156 -0.139 -0.455 -0.730 0.000 +0.506 0.383 0.048 -0.203 -0.588 -0.772 0.000 +0.683 0.436 0.019 -0.352 -0.786 -1.028 0.000 +0.453 0.305 -0.112 -0.401 -0.839 -0.976 0.000 +1.230 0.691 0.067 -0.662 -1.261 -1.565 0.000 +1.001 0.581 -0.047 -0.790 -1.392 -1.758 0.000 +1.447 0.962 0.390 -0.423 -1.121 -1.389 0.000 +1.107 0.673 0.261 -0.499 -1.260 -1.575 0.000 +1.332 0.876 0.559 -0.236 -0.898 -1.356 0.000 +1.166 0.860 0.518 -0.144 -0.756 -1.308 0.000 +1.378 1.355 1.026 0.336 -0.379 -1.015 0.000 +0.634 0.459 0.561 0.310 -0.130 -0.495 0.000 +0.348 0.292 0.837 0.771 0.525 0.312 0.000 +0.065 0.125 0.677 0.779 0.743 0.559 0.000 +-0.029 0.088 0.635 0.829 0.815 0.649 0.000 +0.104 0.349 0.660 0.707 0.723 0.460 0.000 +0.346 0.290 0.461 0.499 0.424 0.162 0.000 +0.348 0.493 0.317 0.305 0.185 -0.154 0.000 +0.346 0.347 0.034 -0.089 -0.400 -0.613 0.000 +0.697 0.523 0.041 -0.140 -0.496 -0.904 0.000 +0.298 0.217 -0.109 -0.311 -0.646 -1.095 0.000 +0.204 0.174 -0.195 -0.396 -0.845 -1.333 0.000 +-0.138 0.669 -0.304 -0.382 -1.005 -1.558 0.000 +-0.258 -0.097 -0.325 -0.367 -0.924 -1.437 0.000 +-0.508 -0.364 -0.276 -0.277 -0.681 -1.088 0.000 +-0.257 -0.102 -0.065 -0.110 -0.382 -0.649 0.000 +-0.667 -0.262 -0.342 -0.242 -0.431 -0.614 0.000 +-0.323 -0.234 0.029 -0.033 -0.161 -0.368 0.000 +-0.868 -0.519 -0.444 -0.347 -0.417 -0.530 0.000 +-0.643 -0.478 -0.395 -0.387 -0.525 -0.863 0.000 +-1.074 -0.475 -0.635 -0.494 -0.624 -0.917 0.000 +-0.385 0.037 -0.177 -0.234 -0.464 -0.848 0.000 +-1.022 -0.506 -0.888 -0.995 -1.245 -1.738 0.000 +0.253 0.366 -0.249 -0.300 -0.684 -1.176 0.000 +0.586 0.692 0.154 -0.174 -0.561 -1.244 0.000 +0.708 0.606 0.131 -0.234 -0.554 -1.210 0.000 +0.541 0.504 -0.191 -0.470 -0.822 -1.268 0.000 +0.965 0.946 0.033 -0.175 -0.506 -0.896 0.000 +0.764 0.528 -0.009 -0.172 -0.373 -0.700 0.000 +0.563 0.546 0.203 0.051 -0.084 -0.344 0.000 +0.418 0.383 0.288 0.323 0.289 -0.020 0.000 +0.365 0.475 0.620 0.647 0.542 0.493 0.000 +0.021 0.216 0.534 0.614 0.613 0.559 0.000 +0.031 0.193 0.294 0.377 0.360 0.166 0.000 +0.421 0.255 0.597 0.527 0.389 0.204 0.000 +0.811 0.785 0.757 0.544 0.254 -0.171 0.000 +1.070 1.132 0.259 -0.354 -0.972 -1.494 0.000 +1.097 0.908 0.331 -0.146 -0.787 -1.249 0.000 +1.655 1.243 0.523 -0.181 -0.939 -1.281 0.000 +1.081 0.903 0.249 -0.537 -1.187 -1.551 0.000 +1.359 1.008 0.315 -0.417 -1.101 -1.362 0.000 +1.418 0.976 0.322 -0.392 -1.055 -1.362 0.000 +1.989 1.250 0.166 -0.794 -1.640 -1.989 0.000 +2.044 1.176 0.135 -0.863 -1.707 -2.253 0.000 +2.011 1.165 0.029 -0.910 -1.801 -2.322 0.000 +1.921 1.211 0.154 -0.966 -1.913 -2.665 0.000 +2.389 1.721 0.566 -0.605 -1.547 -2.401 0.000 +2.181 1.477 0.379 -0.871 -2.011 -3.160 0.000 +2.476 1.750 1.421 0.020 -1.232 -2.509 0.000 +3.019 2.057 0.319 -1.077 -2.334 -3.610 0.000 +2.062 1.480 1.172 0.335 -0.601 -1.545 0.000 +1.476 0.857 1.103 0.808 0.459 -0.213 0.000 +1.057 0.850 1.199 1.120 0.940 0.443 0.000 +0.720 0.594 1.017 1.186 1.215 0.886 0.000 +0.849 0.801 0.990 0.838 0.783 0.485 0.000 +0.906 0.592 0.715 0.660 0.641 0.331 0.000 +0.637 0.590 0.559 0.372 0.158 -0.220 0.000 +0.655 0.596 0.519 0.382 0.100 -0.229 0.000 +0.744 0.718 0.356 0.106 -0.386 -0.879 0.000 +0.339 0.391 -0.050 -0.132 -0.619 -1.176 0.000 +0.132 0.506 0.033 -0.148 -0.726 -1.518 0.000 +-0.251 -0.142 -0.401 -0.510 -0.776 -1.664 0.000 +-0.504 0.135 0.909 0.820 0.534 -0.354 0.000 +-0.823 -0.352 -0.536 -0.663 -1.251 -2.077 0.000 +-1.532 -0.899 -0.656 -0.548 -0.890 -1.311 0.000 +-1.096 -0.706 -0.271 -0.159 -0.491 -0.845 0.000 +-1.665 -1.114 -0.535 -0.296 -0.352 -0.475 0.000 +-1.132 -0.782 -0.099 0.040 -0.013 -0.200 0.000 +-1.531 -0.317 -0.395 -0.110 -0.003 0.023 0.000 +-0.881 -0.596 0.228 0.400 0.397 0.131 0.000 +-1.094 -0.641 0.036 0.248 0.304 0.106 0.000 +-0.433 0.276 0.414 0.404 0.233 -0.286 0.000 +-0.585 0.229 0.181 0.227 -0.032 -0.488 0.000 +0.186 0.739 0.536 0.330 -0.238 -0.944 0.000 +-0.525 -0.820 -1.162 -1.250 -1.535 -2.422 0.000 +-0.519 0.408 -0.158 -0.247 -0.531 -1.422 0.000 +0.661 1.412 0.706 0.354 -0.112 -1.060 0.000 +0.720 1.131 0.341 0.144 -0.248 -0.913 0.000 +1.123 1.203 0.416 0.185 -0.184 -0.822 0.000 +1.022 0.751 0.455 0.390 0.087 -0.276 0.000 +1.089 0.798 0.712 0.598 0.247 -0.106 0.000 +0.716 0.448 0.587 0.562 0.358 0.076 0.000 +0.987 0.894 1.129 1.026 0.888 0.562 0.000 +0.476 0.490 1.006 0.977 0.956 0.632 0.000 +1.059 0.831 1.252 1.069 0.863 0.345 0.000 +1.348 0.935 1.130 0.736 0.338 -0.230 0.000 +1.924 1.354 0.745 -0.048 -0.881 -1.834 0.000 +2.411 1.758 1.231 -0.010 -1.191 -2.367 0.000 +2.759 1.528 0.107 -1.116 -2.308 -3.475 0.000 +2.609 1.991 0.603 -0.472 -1.557 -2.600 0.000 +2.640 1.887 0.660 -0.333 -1.296 -2.021 0.000 +2.355 1.724 0.377 -0.600 -1.635 -2.167 0.000 +2.252 1.392 0.166 -0.810 -1.676 -2.097 0.000 +2.057 1.383 0.114 -0.884 -1.734 -2.233 0.000 +3.646 2.585 0.837 -0.478 -1.338 -1.788 0.000 +3.574 2.528 0.830 -0.666 -1.725 -2.450 0.000 +3.779 2.629 0.775 -0.554 -1.544 -2.149 0.000 +3.859 2.781 1.135 -0.484 -1.720 -2.766 0.000 +4.301 3.063 1.424 -0.242 -1.543 -2.725 0.000 +4.613 3.443 1.665 -0.307 -1.747 -3.279 0.000 +3.508 2.758 0.583 -1.196 -2.546 -4.081 0.000 +3.052 2.282 1.264 -0.128 -1.174 -2.530 0.000 +2.232 1.848 1.375 0.841 0.325 -0.534 0.000 +1.908 1.531 1.603 1.215 0.881 0.206 0.000 +1.120 0.968 1.195 1.184 1.164 0.972 0.000 +1.405 1.237 1.121 1.017 0.923 0.469 0.000 +0.996 1.091 0.761 0.665 0.642 0.244 0.000 +1.065 0.969 0.528 0.304 0.139 -0.491 0.000 +0.738 0.767 0.120 -0.012 -0.138 -0.720 0.000 +0.625 0.689 0.389 -0.047 -0.462 -1.232 0.000 +-0.102 0.280 -0.477 -0.551 -1.021 -1.780 0.000 +-0.360 0.282 -0.474 -0.649 -1.557 -2.346 0.000 +-1.433 -0.818 -0.956 -1.049 -1.911 -2.745 0.000 +-1.492 -0.718 -0.624 -0.811 -1.481 -2.425 0.000 +-2.124 -1.293 -0.943 -0.771 -0.979 -1.509 0.000 +-2.457 -1.707 -0.538 -0.515 -0.885 -1.221 0.000 +-3.017 -2.083 -1.229 -0.822 -0.822 -1.501 0.000 +-2.700 -2.115 -0.791 -0.598 -0.547 -0.515 0.000 +-3.643 -2.160 -1.655 -1.206 -0.933 -0.720 0.000 +-2.817 -2.032 -0.684 -0.577 -0.530 -0.792 0.000 +-2.905 -2.133 -1.145 -0.890 -0.725 -0.914 0.000 +-2.337 -1.194 -0.533 -0.530 -0.616 -0.936 0.000 +-2.281 -0.955 -0.945 -0.809 -0.947 -0.941 0.000 +-1.452 -0.496 -0.653 -0.858 -1.430 -2.387 0.000 +-1.783 -0.720 -1.329 -1.483 -2.099 -3.165 0.000 +-0.954 -0.244 -0.436 -0.710 -1.414 -2.624 0.000 +-0.305 0.157 -0.554 -0.656 -1.051 -1.900 0.000 +0.219 0.420 -0.298 -0.526 -0.907 -1.728 0.000 +0.614 0.523 -0.037 0.031 -0.213 -0.773 0.000 +0.839 0.457 0.519 0.456 0.180 -0.466 0.000 +0.778 0.486 0.464 0.548 0.328 0.027 0.000 +1.120 0.889 1.030 0.880 0.615 0.131 0.000 +1.020 0.737 1.214 1.258 1.170 0.840 0.000 +1.586 1.257 1.436 0.954 0.534 -0.117 0.000 +2.082 1.604 1.412 0.715 0.060 -0.610 0.000 +3.359 2.411 1.453 0.163 -1.026 -2.266 0.000 +3.441 2.429 0.289 -1.277 -2.725 -4.154 0.000 +4.110 2.790 0.950 -0.764 -2.411 -3.781 0.000 +4.224 3.070 1.173 -0.272 -1.597 -2.532 0.000 +3.943 2.720 1.065 -0.507 -1.791 -2.544 0.000 +3.239 2.770 1.913 0.660 -0.295 -0.786 0.000 +3.585 2.488 0.730 -0.688 -1.660 -2.319 0.000 diff --git a/Noto/CDB/alma/AS/act_Noto_rev02.txt b/Noto/CDB/alma/AS/act_Noto_rev02.txt new file mode 100644 index 000000000..6367ed04e --- /dev/null +++ b/Noto/CDB/alma/AS/act_Noto_rev02.txt @@ -0,0 +1,244 @@ +-0.696 -0.567 -0.422 -0.309 0.003 0.104 0.000 +-1.127 -0.876 -0.652 -0.506 -0.150 0.110 0.000 +-0.738 -0.466 -0.367 -0.152 0.108 0.171 0.000 +-0.900 -0.660 -0.492 -0.252 -0.122 0.101 0.000 +-0.523 -0.300 -0.154 -0.075 0.027 0.008 0.000 +-0.295 -0.184 -0.085 -0.042 -0.267 -0.193 0.000 +-0.146 -0.071 -0.055 -0.063 -0.152 -0.154 0.000 +0.081 0.035 0.055 0.043 -0.084 -0.145 0.000 +0.411 0.314 0.192 0.056 -0.239 -0.399 0.000 +0.154 0.208 -0.062 -0.218 -0.403 -0.424 0.000 +0.522 0.347 0.133 -0.091 -0.074 -0.242 0.000 +0.560 0.485 0.290 0.110 -0.210 -0.200 0.000 +0.492 0.345 0.172 -0.052 -0.179 -0.225 0.000 +0.305 0.271 0.157 -0.032 -0.237 -0.253 0.000 +0.196 0.170 0.040 0.016 0.009 -0.011 0.000 +0.145 0.142 0.183 0.067 0.066 0.091 0.000 +-0.505 -0.323 -0.195 -0.143 0.341 0.425 0.000 +-0.240 -0.082 0.045 0.161 0.423 0.382 0.000 +-0.570 -0.437 -0.290 -0.093 0.493 0.509 0.000 +-0.136 -0.029 0.062 0.269 0.449 0.406 0.000 +-0.663 -0.493 -0.368 -0.130 0.244 0.253 0.000 +-0.107 0.016 0.123 0.184 0.360 0.225 0.000 +-0.659 -0.467 -0.340 -0.250 0.088 0.049 0.000 +0.112 0.356 0.365 0.409 0.468 0.375 0.000 +-0.433 -0.346 -0.233 -0.024 0.175 0.218 0.000 +0.104 0.175 0.267 0.362 0.507 0.391 0.000 +-0.439 -0.392 -0.170 -0.059 0.237 0.249 0.000 +-0.131 0.053 0.205 0.203 0.652 0.440 0.000 +-0.740 -0.560 -0.329 -0.157 0.366 0.289 0.000 +-0.041 0.128 0.424 0.482 0.525 0.747 0.000 +-0.455 -0.273 0.031 0.118 0.365 0.481 0.000 +0.095 0.258 0.466 0.675 0.878 0.850 0.000 +-0.398 -0.214 -0.108 0.055 0.202 0.391 0.000 +0.418 0.460 0.455 0.388 0.402 0.412 0.000 +0.077 0.014 0.047 -0.123 0.000 0.020 0.000 +0.612 0.579 0.327 0.165 0.126 0.033 0.000 +0.339 0.258 -0.035 -0.278 -0.308 -0.219 0.000 +0.585 0.526 0.248 0.036 0.133 -0.026 0.000 +0.443 0.303 0.060 -0.125 -0.069 -0.039 0.000 +0.386 0.291 0.117 -0.076 -0.062 -0.097 0.000 +0.288 0.277 0.098 -0.182 -0.233 -0.320 0.000 +-0.089 -0.148 -0.013 -0.064 -0.107 -0.288 0.000 +-0.196 -0.153 -0.167 -0.328 -0.162 -0.258 0.000 +-0.303 -0.227 -0.224 -0.176 0.048 0.044 0.000 +-0.317 -0.305 -0.132 -0.005 0.101 0.162 0.000 +-0.691 -0.528 -0.331 -0.209 0.104 0.220 0.000 +-0.550 -0.471 -0.269 -0.115 0.113 0.219 0.000 +-0.744 -0.610 -0.383 -0.195 0.097 0.213 0.000 +-1.251 -0.704 -0.365 -0.020 0.475 0.692 0.000 +-1.409 -0.969 -0.604 -0.274 0.261 0.339 0.000 +-1.105 -0.725 -0.364 0.037 0.363 0.605 0.000 +-0.989 -0.665 -0.350 -0.041 0.203 0.382 0.000 +-0.811 -0.517 -0.222 0.170 0.293 0.543 0.000 +-0.530 -0.290 -0.109 0.019 0.039 0.023 0.000 +-0.352 -0.121 0.034 0.239 0.191 0.182 0.000 +0.435 0.513 0.368 0.228 -0.250 -0.524 0.000 +0.509 0.495 0.347 0.193 -0.340 -0.560 0.000 +0.767 0.660 0.405 -0.008 -0.575 -0.983 0.000 +0.600 0.605 0.456 0.184 -0.455 -0.635 0.000 +0.109 0.025 -0.063 -0.298 -0.533 -0.861 0.000 +0.170 0.205 0.223 0.075 -0.166 -0.152 0.000 +-0.180 -0.014 0.065 0.020 0.054 0.102 0.000 +-0.159 -0.014 0.182 0.252 0.405 0.687 0.000 +-0.534 -0.414 -0.173 -0.043 0.426 0.636 0.000 +-0.689 -0.454 -0.067 0.118 0.444 0.616 0.000 +-0.904 -0.730 -0.357 -0.121 0.550 0.762 0.000 +-0.670 -0.425 -0.048 0.092 0.137 0.486 0.000 +-0.768 -0.502 -0.123 0.035 0.041 0.333 0.000 +-0.485 -0.336 -0.051 0.034 -0.270 0.055 0.000 +-0.660 -0.411 -0.162 -0.050 -0.061 -0.026 0.000 +-0.643 -0.463 -0.269 -0.198 -0.477 -0.215 0.000 +-0.676 -0.476 -0.266 -0.146 -0.558 -0.218 0.000 +-0.451 -0.257 -0.170 -0.048 -0.528 -0.200 0.000 +-0.667 -0.453 -0.269 -0.137 -0.201 -0.068 0.000 +-0.535 -0.330 -0.156 0.004 -0.379 -0.039 0.000 +-0.622 -0.348 -0.105 0.010 -0.248 0.097 0.000 +-0.781 -0.452 -0.121 0.057 -0.340 0.189 0.000 +-0.929 -0.656 -0.367 -0.160 -0.014 0.433 0.000 +-0.916 -0.602 -0.264 0.057 0.078 0.599 0.000 +-0.874 -0.512 -0.260 0.059 0.527 0.856 0.000 +-0.700 -0.474 -0.150 0.140 0.515 0.952 0.000 +-0.400 -0.196 0.072 0.300 0.552 1.149 0.000 +-0.295 -0.036 0.122 0.270 0.744 0.951 0.000 +0.153 0.253 0.300 0.255 0.562 0.601 0.000 +0.097 0.059 0.071 -0.015 -0.065 0.076 0.000 +0.542 0.452 0.273 0.148 -0.331 -0.240 0.000 +0.511 0.484 0.385 0.143 -0.239 -0.239 0.000 +0.971 0.761 0.612 0.272 -0.385 -0.606 0.000 +0.356 0.324 0.246 -0.020 -0.234 -0.393 0.000 +0.444 0.456 0.343 0.008 -0.128 -0.374 0.000 +-0.335 -0.074 0.162 0.184 0.322 0.310 0.000 +-0.489 -0.298 -0.121 -0.042 0.010 0.125 0.000 +-0.730 -0.455 -0.139 0.156 0.467 0.680 0.000 +-0.772 -0.588 -0.203 0.048 0.383 0.506 0.000 +-1.028 -0.786 -0.352 0.019 0.436 0.683 0.000 +-0.976 -0.839 -0.401 -0.112 0.305 0.453 0.000 +-1.565 -1.261 -0.662 0.067 0.691 1.230 0.000 +-1.758 -1.392 -0.790 -0.047 0.581 1.001 0.000 +-1.389 -1.121 -0.423 0.390 0.962 1.447 0.000 +-1.575 -1.260 -0.499 0.261 0.673 1.107 0.000 +-1.356 -0.898 -0.236 0.559 0.876 1.332 0.000 +-1.308 -0.756 -0.144 0.518 0.860 1.166 0.000 +-1.015 -0.379 0.336 1.026 1.355 1.378 0.000 +-0.495 -0.130 0.310 0.561 0.459 0.634 0.000 +0.312 0.525 0.771 0.837 0.292 0.348 0.000 +0.559 0.743 0.779 0.677 0.125 0.065 0.000 +0.649 0.815 0.829 0.635 0.088 -0.029 0.000 +0.460 0.723 0.707 0.660 0.349 0.104 0.000 +0.162 0.424 0.499 0.461 0.290 0.346 0.000 +-0.154 0.185 0.305 0.317 0.493 0.348 0.000 +-0.613 -0.400 -0.089 0.034 0.347 0.346 0.000 +-0.904 -0.496 -0.140 0.041 0.523 0.697 0.000 +-1.095 -0.646 -0.311 -0.109 0.217 0.298 0.000 +-1.333 -0.845 -0.396 -0.195 0.174 0.204 0.000 +-1.558 -1.005 -0.382 -0.304 0.669 -0.138 0.000 +-1.437 -0.924 -0.367 -0.325 -0.097 -0.258 0.000 +-1.088 -0.681 -0.277 -0.276 -0.364 -0.508 0.000 +-0.649 -0.382 -0.110 -0.065 -0.102 -0.257 0.000 +-0.614 -0.431 -0.242 -0.342 -0.262 -0.667 0.000 +-0.368 -0.161 -0.033 0.029 -0.234 -0.323 0.000 +-0.530 -0.417 -0.347 -0.444 -0.519 -0.868 0.000 +-0.863 -0.525 -0.387 -0.395 -0.478 -0.643 0.000 +-0.917 -0.624 -0.494 -0.635 -0.475 -1.074 0.000 +-0.848 -0.464 -0.234 -0.177 0.037 -0.385 0.000 +-1.738 -1.245 -0.995 -0.888 -0.506 -1.022 0.000 +-1.176 -0.684 -0.300 -0.249 0.366 0.253 0.000 +-1.244 -0.561 -0.174 0.154 0.692 0.586 0.000 +-1.210 -0.554 -0.234 0.131 0.606 0.708 0.000 +-1.268 -0.822 -0.470 -0.191 0.504 0.541 0.000 +-0.896 -0.506 -0.175 0.033 0.946 0.965 0.000 +-0.700 -0.373 -0.172 -0.009 0.528 0.764 0.000 +-0.344 -0.084 0.051 0.203 0.546 0.563 0.000 +-0.020 0.289 0.323 0.288 0.383 0.418 0.000 +0.493 0.542 0.647 0.620 0.475 0.365 0.000 +0.559 0.613 0.614 0.534 0.216 0.021 0.000 +0.166 0.360 0.377 0.294 0.193 0.031 0.000 +0.204 0.389 0.527 0.597 0.255 0.421 0.000 +-0.171 0.254 0.544 0.757 0.785 0.811 0.000 +-1.494 -0.972 -0.354 0.259 1.132 1.070 0.000 +-1.249 -0.787 -0.146 0.331 0.908 1.097 0.000 +-1.281 -0.939 -0.181 0.523 1.243 1.655 0.000 +-1.551 -1.187 -0.537 0.249 0.903 1.081 0.000 +-1.362 -1.101 -0.417 0.315 1.008 1.359 0.000 +-1.362 -1.055 -0.392 0.322 0.976 1.418 0.000 +-1.989 -1.640 -0.794 0.166 1.250 1.989 0.000 +-2.253 -1.707 -0.863 0.135 1.176 2.044 0.000 +-2.322 -1.801 -0.910 0.029 1.165 2.011 0.000 +-2.665 -1.913 -0.966 0.154 1.211 1.921 0.000 +-2.401 -1.547 -0.605 0.566 1.721 2.389 0.000 +-3.160 -2.011 -0.871 0.379 1.477 2.181 0.000 +-2.509 -1.232 0.020 1.421 1.750 2.476 0.000 +-1.545 -0.601 0.335 1.172 1.480 2.062 0.000 +-0.213 0.459 0.808 1.103 0.857 1.476 0.000 +0.443 0.940 1.120 1.199 0.850 1.057 0.000 +0.886 1.215 1.186 1.017 0.594 0.720 0.000 +0.485 0.783 0.838 0.990 0.801 0.849 0.000 +0.331 0.641 0.660 0.715 0.592 0.906 0.000 +-0.220 0.158 0.372 0.559 0.590 0.637 0.000 +-0.229 0.100 0.382 0.519 0.596 0.655 0.000 +-0.879 -0.386 0.106 0.356 0.718 0.744 0.000 +-1.176 -0.619 -0.132 -0.050 0.391 0.339 0.000 +-1.518 -0.726 -0.148 0.033 0.506 0.132 0.000 +-1.664 -0.776 -0.510 -0.401 -0.142 -0.251 0.000 +-2.077 -1.251 -0.663 -0.536 -0.352 -0.823 0.000 +-1.311 -0.890 -0.548 -0.656 -0.899 -1.532 0.000 +-0.845 -0.491 -0.159 -0.271 -0.706 -1.096 0.000 +-0.475 -0.352 -0.296 -0.535 -1.114 -1.665 0.000 +-0.200 -0.013 0.040 -0.099 -0.782 -1.132 0.000 +0.023 -0.003 -0.110 -0.395 -0.317 -1.531 0.000 +0.131 0.397 0.400 0.228 -0.596 -0.881 0.000 +0.106 0.304 0.248 0.036 -0.641 -1.094 0.000 +-0.286 0.233 0.404 0.414 0.276 -0.433 0.000 +-0.488 -0.032 0.227 0.181 0.229 -0.585 0.000 +-0.944 -0.238 0.330 0.536 0.739 0.186 0.000 +-2.422 -1.535 -1.250 -1.162 -0.820 -0.525 0.000 +-1.060 -0.112 0.354 0.706 1.412 0.661 0.000 +-0.913 -0.248 0.144 0.341 1.131 0.720 0.000 +-0.822 -0.184 0.185 0.416 1.203 1.123 0.000 +-0.276 0.087 0.390 0.455 0.751 1.022 0.000 +-0.106 0.247 0.598 0.712 0.798 1.089 0.000 +0.076 0.358 0.562 0.587 0.448 0.716 0.000 +0.562 0.888 1.026 1.129 0.894 0.987 0.000 +0.632 0.956 0.977 1.006 0.490 0.476 0.000 +0.345 0.863 1.069 1.252 0.831 1.059 0.000 +-0.230 0.338 0.736 1.130 0.935 1.348 0.000 +-1.834 -0.881 -0.048 0.745 1.354 1.924 0.000 +-2.367 -1.191 -0.010 1.231 1.758 2.411 0.000 +-2.600 -1.557 -0.472 0.603 1.991 2.609 0.000 +-2.021 -1.296 -0.333 0.660 1.887 2.640 0.000 +-2.167 -1.635 -0.600 0.377 1.724 2.355 0.000 +-2.097 -1.676 -0.810 0.166 1.392 2.252 0.000 +-2.233 -1.734 -0.884 0.114 1.383 2.057 0.000 +-1.788 -1.338 -0.478 0.837 2.585 3.646 0.000 +-2.450 -1.725 -0.666 0.830 2.528 3.574 0.000 +-2.149 -1.544 -0.554 0.775 2.629 3.779 0.000 +-2.766 -1.720 -0.484 1.135 2.781 3.859 0.000 +-2.725 -1.543 -0.242 1.424 3.063 4.301 0.000 +-3.279 -1.747 -0.307 1.665 3.443 4.613 0.000 +-4.081 -2.546 -1.196 0.583 2.758 3.508 0.000 +-2.530 -1.174 -0.128 1.264 2.282 3.052 0.000 +-0.534 0.325 0.841 1.375 1.848 2.232 0.000 +0.206 0.881 1.215 1.603 1.531 1.908 0.000 +0.972 1.164 1.184 1.195 0.968 1.120 0.000 +0.469 0.923 1.017 1.121 1.237 1.405 0.000 +0.244 0.642 0.665 0.761 1.091 0.996 0.000 +-0.491 0.139 0.304 0.528 0.969 1.065 0.000 +-0.720 -0.138 -0.012 0.120 0.767 0.738 0.000 +-1.232 -0.462 -0.047 0.389 0.689 0.625 0.000 +-1.780 -1.021 -0.551 -0.477 0.280 -0.102 0.000 +-2.346 -1.557 -0.649 -0.474 0.282 -0.360 0.000 +-2.745 -1.911 -1.049 -0.956 -0.818 -1.433 0.000 +-2.425 -1.481 -0.811 -0.624 -0.718 -1.492 0.000 +-1.509 -0.979 -0.771 -0.943 -1.293 -2.124 0.000 +-1.221 -0.885 -0.515 -0.538 -1.707 -2.457 0.000 +-1.501 -0.822 -0.822 -1.229 -2.083 -3.017 0.000 +-0.515 -0.547 -0.598 -0.791 -2.115 -2.700 0.000 +-0.720 -0.933 -1.206 -1.655 -2.160 -3.643 0.000 +-0.792 -0.530 -0.577 -0.684 -2.032 -2.817 0.000 +-0.914 -0.725 -0.890 -1.145 -2.133 -2.905 0.000 +-0.936 -0.616 -0.530 -0.533 -1.194 -2.337 0.000 +-0.941 -0.947 -0.809 -0.945 -0.955 -2.281 0.000 +-2.387 -1.430 -0.858 -0.653 -0.496 -1.452 0.000 +-3.165 -2.099 -1.483 -1.329 -0.720 -1.783 0.000 +-2.624 -1.414 -0.710 -0.436 -0.244 -0.954 0.000 +-1.900 -1.051 -0.656 -0.554 0.157 -0.305 0.000 +-1.728 -0.907 -0.526 -0.298 0.420 0.219 0.000 +-0.773 -0.213 0.031 -0.037 0.523 0.614 0.000 +-0.466 0.180 0.456 0.519 0.457 0.839 0.000 +0.027 0.328 0.548 0.464 0.486 0.778 0.000 +0.131 0.615 0.880 1.030 0.889 1.120 0.000 +0.840 1.170 1.258 1.214 0.737 1.020 0.000 +-0.117 0.534 0.954 1.436 1.257 1.586 0.000 +-0.610 0.060 0.715 1.412 1.604 2.082 0.000 +-2.266 -1.026 0.163 1.453 2.411 3.359 0.000 +-4.154 -2.725 -1.277 0.289 2.429 3.441 0.000 +-3.781 -2.411 -0.764 0.950 2.790 4.110 0.000 +-2.532 -1.597 -0.272 1.173 3.070 4.224 0.000 +-2.544 -1.791 -0.507 1.065 2.720 3.943 0.000 +-0.786 -0.295 0.660 1.913 2.770 3.239 0.000 +-2.319 -1.660 -0.688 0.730 2.488 3.585 0.000 +-3.610 -2.334 -1.077 0.319 2.057 3.019 0.000 +-0.354 0.534 0.820 0.909 0.135 -0.504 0.000 +-1.422 -0.531 -0.247 -0.158 0.408 -0.519 0.000 +-3.475 -2.308 -1.116 0.107 1.528 2.759 0.000 diff --git a/Noto/CDB/alma/AS/set_calibrate.py b/Noto/CDB/alma/AS/set_calibrate.py old mode 100644 new mode 100755 diff --git a/Noto/CDB/alma/AS/tab_convUSD.txt b/Noto/CDB/alma/AS/tab_convUSD.txt index f2943296e..e6a99e17c 100644 --- a/Noto/CDB/alma/AS/tab_convUSD.txt +++ b/Noto/CDB/alma/AS/tab_convUSD.txt @@ -1,4 +1,3 @@ -1 1 1 AS/SECTOR01/LAN01/USD01 "1,1" 0101 1 2 1 AS/SECTOR01/LAN01/USD02 "2,1" 0201 1 3 1 AS/SECTOR01/LAN01/USD03 "3,1" 0301 1 4 1 AS/SECTOR01/LAN01/USD04 "4,1" 0401 @@ -9,7 +8,6 @@ 2 4 2 AS/SECTOR01/LAN02/USD04 "4,2" 0402 2 5 2 AS/SECTOR01/LAN02/USD05 "5,2" 0502 2 6 2 AS/SECTOR01/LAN02/USD06 "6,2" 0602 -3 1 2 AS/SECTOR01/LAN03/USD01 "1,2" 0102 3 2 3 AS/SECTOR01/LAN03/USD02 "2,3" 0203 3 3 3 AS/SECTOR01/LAN03/USD03 "3,3" 0303 3 4 3 AS/SECTOR01/LAN03/USD04 "4,3" 0403 @@ -20,7 +18,6 @@ 4 4 4 AS/SECTOR01/LAN04/USD04 "4,4" 0404 4 5 4 AS/SECTOR01/LAN04/USD05 "5,4" 0504 4 6 4 AS/SECTOR01/LAN04/USD06 "6,4" 0604 -5 1 3 AS/SECTOR01/LAN05/USD01 "1,3" 0103 5 2 5 AS/SECTOR01/LAN05/USD02 "2,5" 0205 5 3 5 AS/SECTOR01/LAN05/USD03 "3,5" 0305 5 4 5 AS/SECTOR01/LAN05/USD04 "4,5" 0405 @@ -31,7 +28,6 @@ 6 4 6 AS/SECTOR01/LAN06/USD04 "4,6" 0406 6 5 6 AS/SECTOR01/LAN06/USD05 "5,6" 0506 6 6 6 AS/SECTOR01/LAN06/USD06 "6,6" 0606 -7 1 4 AS/SECTOR01/LAN07/USD01 "1,4" 0104 7 2 7 AS/SECTOR01/LAN07/USD02 "2,7" 0207 7 3 7 AS/SECTOR01/LAN07/USD03 "3,7" 0307 7 4 7 AS/SECTOR01/LAN07/USD04 "4,7" 0407 @@ -43,7 +39,6 @@ 8 4 8 AS/SECTOR01/LAN08/USD04 "4,8" 0408 8 5 8 AS/SECTOR01/LAN08/USD05 "5,8" 0508 8 6 8 AS/SECTOR01/LAN08/USD06 "6,8" 0608 -9 1 5 AS/SECTOR01/LAN09/USD01 "1,5" 0105 9 2 9 AS/SECTOR01/LAN09/USD02 "2,9" 0209 9 3 9 AS/SECTOR01/LAN09/USD03 "3,9" 0309 9 4 9 AS/SECTOR01/LAN09/USD04 "4,9" 0409 @@ -54,7 +49,6 @@ 10 4 10 AS/SECTOR01/LAN10/USD04 "4,10" 0410 10 5 10 AS/SECTOR01/LAN10/USD05 "5,10" 0510 10 6 10 AS/SECTOR01/LAN10/USD06 "6,10" 0610 -11 1 6 AS/SECTOR01/LAN11/USD01 "1,6" 0106 11 2 11 AS/SECTOR01/LAN11/USD02 "2,11" 0211 11 3 11 AS/SECTOR01/LAN11/USD03 "3,11" 0311 11 4 11 AS/SECTOR01/LAN11/USD04 "4,11" 0411 @@ -65,7 +59,6 @@ 12 4 12 AS/SECTOR01/LAN12/USD04 "4,12" 0412 12 5 12 AS/SECTOR01/LAN12/USD05 "5,12" 0512 12 6 12 AS/SECTOR01/LAN12/USD06 "6,12" 0612 -13 1 7 AS/SECTOR02/LAN01/USD01 "1,7" 0107 13 2 13 AS/SECTOR02/LAN01/USD02 "2,13" 0213 13 3 13 AS/SECTOR02/LAN01/USD03 "3,13" 0313 13 4 13 AS/SECTOR02/LAN01/USD04 "4,13" 0413 @@ -76,7 +69,6 @@ 14 4 14 AS/SECTOR02/LAN02/USD04 "4,14" 0414 14 5 14 AS/SECTOR02/LAN02/USD05 "5,14" 0514 14 6 14 AS/SECTOR02/LAN02/USD06 "6,14" 0614 -15 1 8 AS/SECTOR02/LAN03/USD01 "1,8" 0108 15 2 15 AS/SECTOR02/LAN03/USD02 "2,15" 0215 15 3 15 AS/SECTOR02/LAN03/USD03 "3,15" 0315 15 4 15 AS/SECTOR02/LAN03/USD04 "4,15" 0415 @@ -87,7 +79,6 @@ 16 4 16 AS/SECTOR02/LAN04/USD04 "4,16" 0416 16 5 16 AS/SECTOR02/LAN04/USD05 "5,16" 0516 16 6 16 AS/SECTOR02/LAN04/USD06 "6,16" 0616 -17 1 9 AS/SECTOR02/LAN05/USD01 "1,9" 0109 17 2 17 AS/SECTOR02/LAN05/USD02 "2,17" 0217 17 3 17 AS/SECTOR02/LAN05/USD03 "3,17" 0317 17 4 17 AS/SECTOR02/LAN05/USD04 "4,17" 0417 @@ -98,7 +89,6 @@ 18 4 18 AS/SECTOR02/LAN06/USD04 "4,18" 0418 18 5 18 AS/SECTOR02/LAN06/USD05 "5,18" 0518 18 6 18 AS/SECTOR02/LAN06/USD06 "6,18" 0618 -19 1 10 AS/SECTOR02/LAN07/USD01 "1,10" 0110 19 2 19 AS/SECTOR02/LAN07/USD02 "2,19" 0219 19 3 19 AS/SECTOR02/LAN07/USD03 "3,19" 0319 19 4 19 AS/SECTOR02/LAN07/USD04 "4,19" 0419 @@ -110,7 +100,6 @@ 20 4 20 AS/SECTOR02/LAN08/USD04 "4,20" 0420 20 5 20 AS/SECTOR02/LAN08/USD05 "5,20" 0520 20 6 20 AS/SECTOR02/LAN08/USD06 "6,20" 0620 -21 1 11 AS/SECTOR02/LAN09/USD01 "1,11" 0111 21 2 21 AS/SECTOR02/LAN09/USD02 "2,21" 0221 21 3 21 AS/SECTOR02/LAN09/USD03 "3,21" 0321 21 4 21 AS/SECTOR02/LAN09/USD04 "4,21" 0421 @@ -121,7 +110,6 @@ 22 4 22 AS/SECTOR02/LAN10/USD04 "4,22" 0422 22 5 22 AS/SECTOR02/LAN10/USD05 "5,22" 0522 22 6 22 AS/SECTOR02/LAN10/USD06 "6,22" 0622 -23 1 12 AS/SECTOR02/LAN11/USD01 "1,12" 0112 23 2 23 AS/SECTOR02/LAN11/USD02 "2,23" 0223 23 3 23 AS/SECTOR02/LAN11/USD03 "3,23" 0323 23 4 23 AS/SECTOR02/LAN11/USD04 "4,23" 0423 @@ -132,7 +120,6 @@ 24 4 24 AS/SECTOR02/LAN12/USD04 "4,24" 0424 24 5 24 AS/SECTOR02/LAN12/USD05 "5,24" 0524 24 6 24 AS/SECTOR02/LAN12/USD06 "6,24" 0624 -25 1 13 AS/SECTOR03/LAN01/USD01 "1,13" 0113 25 2 25 AS/SECTOR03/LAN01/USD02 "2,25" 0225 25 3 25 AS/SECTOR03/LAN01/USD03 "3,25" 0325 25 4 25 AS/SECTOR03/LAN01/USD04 "4,25" 0425 @@ -143,7 +130,6 @@ 26 4 26 AS/SECTOR03/LAN02/USD04 "4,26" 0426 26 5 26 AS/SECTOR03/LAN02/USD05 "5,26" 0526 26 6 26 AS/SECTOR03/LAN02/USD06 "6,26" 0626 -27 1 14 AS/SECTOR03/LAN03/USD01 "1,14" 0114 27 2 27 AS/SECTOR03/LAN03/USD02 "2,27" 0227 27 3 27 AS/SECTOR03/LAN03/USD03 "3,27" 0327 27 4 27 AS/SECTOR03/LAN03/USD04 "4,27" 0427 @@ -154,7 +140,6 @@ 28 4 28 AS/SECTOR03/LAN04/USD04 "4,28" 0428 28 5 28 AS/SECTOR03/LAN04/USD05 "5,28" 0528 28 6 28 AS/SECTOR03/LAN04/USD06 "6,28" 0628 -29 1 15 AS/SECTOR03/LAN05/USD01 "1,15" 0115 29 2 29 AS/SECTOR03/LAN05/USD02 "2,29" 0229 29 3 29 AS/SECTOR03/LAN05/USD03 "3,29" 0329 29 4 29 AS/SECTOR03/LAN05/USD04 "4,29" 0429 @@ -165,7 +150,6 @@ 30 4 30 AS/SECTOR03/LAN06/USD04 "4,30" 0430 30 5 30 AS/SECTOR03/LAN06/USD05 "5,30" 0530 30 6 30 AS/SECTOR03/LAN06/USD06 "6,30" 0630 -31 1 16 AS/SECTOR03/LAN07/USD01 "1,16" 0116 31 2 31 AS/SECTOR03/LAN07/USD02 "2,31" 0231 31 3 31 AS/SECTOR03/LAN07/USD03 "3,31" 0331 31 4 31 AS/SECTOR03/LAN07/USD04 "4,31" 0431 @@ -177,7 +161,6 @@ 32 4 32 AS/SECTOR03/LAN08/USD04 "4,32" 0432 32 5 32 AS/SECTOR03/LAN08/USD05 "5,32" 0532 32 6 32 AS/SECTOR03/LAN08/USD06 "6,32" 0632 -33 1 17 AS/SECTOR03/LAN09/USD01 "1,17" 0117 33 2 33 AS/SECTOR03/LAN09/USD02 "2,33" 0233 33 3 33 AS/SECTOR03/LAN09/USD03 "3,33" 0333 33 4 33 AS/SECTOR03/LAN09/USD04 "4,33" 0433 @@ -188,7 +171,6 @@ 34 4 34 AS/SECTOR03/LAN10/USD04 "4,34" 0434 34 5 34 AS/SECTOR03/LAN10/USD05 "5,34" 0534 34 6 34 AS/SECTOR03/LAN10/USD06 "6,34" 0634 -35 1 18 AS/SECTOR03/LAN11/USD01 "1,18" 0118 35 2 35 AS/SECTOR03/LAN11/USD02 "2,35" 0235 35 3 35 AS/SECTOR03/LAN11/USD03 "3,35" 0335 35 4 35 AS/SECTOR03/LAN11/USD04 "4,35" 0435 @@ -199,7 +181,6 @@ 36 4 36 AS/SECTOR03/LAN12/USD04 "4,36" 0436 36 5 36 AS/SECTOR03/LAN12/USD05 "5,36" 0536 36 6 36 AS/SECTOR03/LAN12/USD06 "6,36" 0636 -37 1 19 AS/SECTOR04/LAN01/USD01 "1,19" 0119 37 2 37 AS/SECTOR04/LAN01/USD02 "2,37" 0237 37 3 37 AS/SECTOR04/LAN01/USD03 "3,37" 0337 37 4 37 AS/SECTOR04/LAN01/USD04 "4,37" 0437 @@ -210,7 +191,6 @@ 38 4 38 AS/SECTOR04/LAN02/USD04 "4,38" 0438 38 5 38 AS/SECTOR04/LAN02/USD05 "5,38" 0538 38 6 38 AS/SECTOR04/LAN02/USD06 "6,38" 0638 -39 1 20 AS/SECTOR04/LAN03/USD01 "1,20" 0120 39 2 39 AS/SECTOR04/LAN03/USD02 "2,39" 0239 39 3 39 AS/SECTOR04/LAN03/USD03 "3,39" 0339 39 4 39 AS/SECTOR04/LAN03/USD04 "4,39" 0439 @@ -221,7 +201,6 @@ 40 4 40 AS/SECTOR04/LAN04/USD04 "4,40" 0440 40 5 40 AS/SECTOR04/LAN04/USD05 "5,40" 0540 40 6 40 AS/SECTOR04/LAN04/USD06 "6,40" 0640 -41 1 21 AS/SECTOR04/LAN05/USD01 "1,21" 0121 41 2 41 AS/SECTOR04/LAN05/USD02 "2,41" 0241 41 3 41 AS/SECTOR04/LAN05/USD03 "3,41" 0341 41 4 41 AS/SECTOR04/LAN05/USD04 "4,41" 0441 @@ -232,7 +211,6 @@ 42 4 42 AS/SECTOR04/LAN06/USD04 "4,42" 0442 42 5 42 AS/SECTOR04/LAN06/USD05 "5,42" 0542 42 6 42 AS/SECTOR04/LAN06/USD06 "6,42" 0642 -43 1 22 AS/SECTOR04/LAN07/USD01 "1,22" 0122 43 2 43 AS/SECTOR04/LAN07/USD02 "2,43" 0243 43 3 43 AS/SECTOR04/LAN07/USD03 "3,43" 0343 43 4 43 AS/SECTOR04/LAN07/USD04 "4,43" 0443 @@ -244,7 +222,6 @@ 44 4 44 AS/SECTOR04/LAN08/USD04 "4,44" 0444 44 5 44 AS/SECTOR04/LAN08/USD05 "5,44" 0544 44 6 44 AS/SECTOR04/LAN08/USD06 "6,44" 0644 -45 1 23 AS/SECTOR04/LAN09/USD01 "1,23" 0123 45 2 45 AS/SECTOR04/LAN09/USD02 "2,45" 0245 45 3 45 AS/SECTOR04/LAN09/USD03 "3,45" 0345 45 4 45 AS/SECTOR04/LAN09/USD04 "4,45" 0445 @@ -255,7 +232,6 @@ 46 4 46 AS/SECTOR04/LAN10/USD04 "4,46" 0446 46 5 46 AS/SECTOR04/LAN10/USD05 "5,46" 0546 46 6 46 AS/SECTOR04/LAN10/USD06 "6,46" 0646 -47 1 24 AS/SECTOR04/LAN11/USD01 "1,24" 0124 47 2 47 AS/SECTOR04/LAN11/USD02 "2,47" 0247 47 3 47 AS/SECTOR04/LAN11/USD03 "3,47" 0347 47 4 47 AS/SECTOR04/LAN11/USD04 "4,47" 0447 diff --git a/Noto/CDB/alma/AS/tab_convUSD.txt.orig b/Noto/CDB/alma/AS/tab_convUSD.txt.orig new file mode 100644 index 000000000..f2943296e --- /dev/null +++ b/Noto/CDB/alma/AS/tab_convUSD.txt.orig @@ -0,0 +1,268 @@ +1 1 1 AS/SECTOR01/LAN01/USD01 "1,1" 0101 +1 2 1 AS/SECTOR01/LAN01/USD02 "2,1" 0201 +1 3 1 AS/SECTOR01/LAN01/USD03 "3,1" 0301 +1 4 1 AS/SECTOR01/LAN01/USD04 "4,1" 0401 +1 5 1 AS/SECTOR01/LAN01/USD05 "5,1" 0501 +1 6 1 AS/SECTOR01/LAN01/USD06 "6,1" 0601 +2 2 2 AS/SECTOR01/LAN02/USD02 "2,2" 0202 +2 3 2 AS/SECTOR01/LAN02/USD03 "3,2" 0302 +2 4 2 AS/SECTOR01/LAN02/USD04 "4,2" 0402 +2 5 2 AS/SECTOR01/LAN02/USD05 "5,2" 0502 +2 6 2 AS/SECTOR01/LAN02/USD06 "6,2" 0602 +3 1 2 AS/SECTOR01/LAN03/USD01 "1,2" 0102 +3 2 3 AS/SECTOR01/LAN03/USD02 "2,3" 0203 +3 3 3 AS/SECTOR01/LAN03/USD03 "3,3" 0303 +3 4 3 AS/SECTOR01/LAN03/USD04 "4,3" 0403 +3 5 3 AS/SECTOR01/LAN03/USD05 "5,3" 0503 +3 6 3 AS/SECTOR01/LAN03/USD06 "6,3" 0603 +4 2 4 AS/SECTOR01/LAN04/USD02 "2,4" 0204 +4 3 4 AS/SECTOR01/LAN04/USD03 "3,4" 0304 +4 4 4 AS/SECTOR01/LAN04/USD04 "4,4" 0404 +4 5 4 AS/SECTOR01/LAN04/USD05 "5,4" 0504 +4 6 4 AS/SECTOR01/LAN04/USD06 "6,4" 0604 +5 1 3 AS/SECTOR01/LAN05/USD01 "1,3" 0103 +5 2 5 AS/SECTOR01/LAN05/USD02 "2,5" 0205 +5 3 5 AS/SECTOR01/LAN05/USD03 "3,5" 0305 +5 4 5 AS/SECTOR01/LAN05/USD04 "4,5" 0405 +5 5 5 AS/SECTOR01/LAN05/USD05 "5,5" 0505 +5 6 5 AS/SECTOR01/LAN05/USD06 "6,5" 0605 +6 2 6 AS/SECTOR01/LAN06/USD02 "2,6" 0206 +6 3 6 AS/SECTOR01/LAN06/USD03 "3,6" 0306 +6 4 6 AS/SECTOR01/LAN06/USD04 "4,6" 0406 +6 5 6 AS/SECTOR01/LAN06/USD05 "5,6" 0506 +6 6 6 AS/SECTOR01/LAN06/USD06 "6,6" 0606 +7 1 4 AS/SECTOR01/LAN07/USD01 "1,4" 0104 +7 2 7 AS/SECTOR01/LAN07/USD02 "2,7" 0207 +7 3 7 AS/SECTOR01/LAN07/USD03 "3,7" 0307 +7 4 7 AS/SECTOR01/LAN07/USD04 "4,7" 0407 +7 5 7 AS/SECTOR01/LAN07/USD05 "5,7" 0507 +7 6 7 AS/SECTOR01/LAN07/USD06 "6,7" 0607 +7 7 7 AS/SECTOR01/LAN07/USD07 "7,1" 0701 +8 2 8 AS/SECTOR01/LAN08/USD02 "2,8" 0208 +8 3 8 AS/SECTOR01/LAN08/USD03 "3,8" 0308 +8 4 8 AS/SECTOR01/LAN08/USD04 "4,8" 0408 +8 5 8 AS/SECTOR01/LAN08/USD05 "5,8" 0508 +8 6 8 AS/SECTOR01/LAN08/USD06 "6,8" 0608 +9 1 5 AS/SECTOR01/LAN09/USD01 "1,5" 0105 +9 2 9 AS/SECTOR01/LAN09/USD02 "2,9" 0209 +9 3 9 AS/SECTOR01/LAN09/USD03 "3,9" 0309 +9 4 9 AS/SECTOR01/LAN09/USD04 "4,9" 0409 +9 5 9 AS/SECTOR01/LAN09/USD05 "5,9" 0509 +9 6 9 AS/SECTOR01/LAN09/USD06 "6,9" 0609 +10 2 10 AS/SECTOR01/LAN10/USD02 "2,10" 0210 +10 3 10 AS/SECTOR01/LAN10/USD03 "3,10" 0310 +10 4 10 AS/SECTOR01/LAN10/USD04 "4,10" 0410 +10 5 10 AS/SECTOR01/LAN10/USD05 "5,10" 0510 +10 6 10 AS/SECTOR01/LAN10/USD06 "6,10" 0610 +11 1 6 AS/SECTOR01/LAN11/USD01 "1,6" 0106 +11 2 11 AS/SECTOR01/LAN11/USD02 "2,11" 0211 +11 3 11 AS/SECTOR01/LAN11/USD03 "3,11" 0311 +11 4 11 AS/SECTOR01/LAN11/USD04 "4,11" 0411 +11 5 11 AS/SECTOR01/LAN11/USD05 "5,11" 0511 +11 6 11 AS/SECTOR01/LAN11/USD06 "6,11" 0611 +12 2 12 AS/SECTOR01/LAN12/USD02 "2,12" 0212 +12 3 12 AS/SECTOR01/LAN12/USD03 "3,12" 0312 +12 4 12 AS/SECTOR01/LAN12/USD04 "4,12" 0412 +12 5 12 AS/SECTOR01/LAN12/USD05 "5,12" 0512 +12 6 12 AS/SECTOR01/LAN12/USD06 "6,12" 0612 +13 1 7 AS/SECTOR02/LAN01/USD01 "1,7" 0107 +13 2 13 AS/SECTOR02/LAN01/USD02 "2,13" 0213 +13 3 13 AS/SECTOR02/LAN01/USD03 "3,13" 0313 +13 4 13 AS/SECTOR02/LAN01/USD04 "4,13" 0413 +13 5 13 AS/SECTOR02/LAN01/USD05 "5,13" 0513 +13 6 13 AS/SECTOR02/LAN01/USD06 "6,13" 0613 +14 2 14 AS/SECTOR02/LAN02/USD02 "2,14" 0214 +14 3 14 AS/SECTOR02/LAN02/USD03 "3,14" 0314 +14 4 14 AS/SECTOR02/LAN02/USD04 "4,14" 0414 +14 5 14 AS/SECTOR02/LAN02/USD05 "5,14" 0514 +14 6 14 AS/SECTOR02/LAN02/USD06 "6,14" 0614 +15 1 8 AS/SECTOR02/LAN03/USD01 "1,8" 0108 +15 2 15 AS/SECTOR02/LAN03/USD02 "2,15" 0215 +15 3 15 AS/SECTOR02/LAN03/USD03 "3,15" 0315 +15 4 15 AS/SECTOR02/LAN03/USD04 "4,15" 0415 +15 5 15 AS/SECTOR02/LAN03/USD05 "5,15" 0515 +15 6 15 AS/SECTOR02/LAN03/USD06 "6,15" 0615 +16 2 16 AS/SECTOR02/LAN04/USD02 "2,16" 0216 +16 3 16 AS/SECTOR02/LAN04/USD03 "3,16" 0316 +16 4 16 AS/SECTOR02/LAN04/USD04 "4,16" 0416 +16 5 16 AS/SECTOR02/LAN04/USD05 "5,16" 0516 +16 6 16 AS/SECTOR02/LAN04/USD06 "6,16" 0616 +17 1 9 AS/SECTOR02/LAN05/USD01 "1,9" 0109 +17 2 17 AS/SECTOR02/LAN05/USD02 "2,17" 0217 +17 3 17 AS/SECTOR02/LAN05/USD03 "3,17" 0317 +17 4 17 AS/SECTOR02/LAN05/USD04 "4,17" 0417 +17 5 17 AS/SECTOR02/LAN05/USD05 "5,17" 0517 +17 6 17 AS/SECTOR02/LAN05/USD06 "6,17" 0617 +18 2 18 AS/SECTOR02/LAN06/USD02 "2,18" 0218 +18 3 18 AS/SECTOR02/LAN06/USD03 "3,18" 0318 +18 4 18 AS/SECTOR02/LAN06/USD04 "4,18" 0418 +18 5 18 AS/SECTOR02/LAN06/USD05 "5,18" 0518 +18 6 18 AS/SECTOR02/LAN06/USD06 "6,18" 0618 +19 1 10 AS/SECTOR02/LAN07/USD01 "1,10" 0110 +19 2 19 AS/SECTOR02/LAN07/USD02 "2,19" 0219 +19 3 19 AS/SECTOR02/LAN07/USD03 "3,19" 0319 +19 4 19 AS/SECTOR02/LAN07/USD04 "4,19" 0419 +19 5 19 AS/SECTOR02/LAN07/USD05 "5,19" 0519 +19 6 19 AS/SECTOR02/LAN07/USD06 "6,19" 0619 +19 7 19 AS/SECTOR02/LAN07/USD07 "7,2" 0702 +20 2 20 AS/SECTOR02/LAN08/USD02 "2,20" 0220 +20 3 20 AS/SECTOR02/LAN08/USD03 "3,20" 0320 +20 4 20 AS/SECTOR02/LAN08/USD04 "4,20" 0420 +20 5 20 AS/SECTOR02/LAN08/USD05 "5,20" 0520 +20 6 20 AS/SECTOR02/LAN08/USD06 "6,20" 0620 +21 1 11 AS/SECTOR02/LAN09/USD01 "1,11" 0111 +21 2 21 AS/SECTOR02/LAN09/USD02 "2,21" 0221 +21 3 21 AS/SECTOR02/LAN09/USD03 "3,21" 0321 +21 4 21 AS/SECTOR02/LAN09/USD04 "4,21" 0421 +21 5 21 AS/SECTOR02/LAN09/USD05 "5,21" 0521 +21 6 21 AS/SECTOR02/LAN09/USD06 "6,21" 0621 +22 2 22 AS/SECTOR02/LAN10/USD02 "2,22" 0222 +22 3 22 AS/SECTOR02/LAN10/USD03 "3,22" 0322 +22 4 22 AS/SECTOR02/LAN10/USD04 "4,22" 0422 +22 5 22 AS/SECTOR02/LAN10/USD05 "5,22" 0522 +22 6 22 AS/SECTOR02/LAN10/USD06 "6,22" 0622 +23 1 12 AS/SECTOR02/LAN11/USD01 "1,12" 0112 +23 2 23 AS/SECTOR02/LAN11/USD02 "2,23" 0223 +23 3 23 AS/SECTOR02/LAN11/USD03 "3,23" 0323 +23 4 23 AS/SECTOR02/LAN11/USD04 "4,23" 0423 +23 5 23 AS/SECTOR02/LAN11/USD05 "5,23" 0523 +23 6 23 AS/SECTOR02/LAN11/USD06 "6,23" 0623 +24 2 24 AS/SECTOR02/LAN12/USD02 "2,24" 0224 +24 3 24 AS/SECTOR02/LAN12/USD03 "3,24" 0324 +24 4 24 AS/SECTOR02/LAN12/USD04 "4,24" 0424 +24 5 24 AS/SECTOR02/LAN12/USD05 "5,24" 0524 +24 6 24 AS/SECTOR02/LAN12/USD06 "6,24" 0624 +25 1 13 AS/SECTOR03/LAN01/USD01 "1,13" 0113 +25 2 25 AS/SECTOR03/LAN01/USD02 "2,25" 0225 +25 3 25 AS/SECTOR03/LAN01/USD03 "3,25" 0325 +25 4 25 AS/SECTOR03/LAN01/USD04 "4,25" 0425 +25 5 25 AS/SECTOR03/LAN01/USD05 "5,25" 0525 +25 6 25 AS/SECTOR03/LAN01/USD06 "6,25" 0625 +26 2 26 AS/SECTOR03/LAN02/USD02 "2,26" 0226 +26 3 26 AS/SECTOR03/LAN02/USD03 "3,26" 0326 +26 4 26 AS/SECTOR03/LAN02/USD04 "4,26" 0426 +26 5 26 AS/SECTOR03/LAN02/USD05 "5,26" 0526 +26 6 26 AS/SECTOR03/LAN02/USD06 "6,26" 0626 +27 1 14 AS/SECTOR03/LAN03/USD01 "1,14" 0114 +27 2 27 AS/SECTOR03/LAN03/USD02 "2,27" 0227 +27 3 27 AS/SECTOR03/LAN03/USD03 "3,27" 0327 +27 4 27 AS/SECTOR03/LAN03/USD04 "4,27" 0427 +27 5 27 AS/SECTOR03/LAN03/USD05 "5,27" 0527 +27 6 27 AS/SECTOR03/LAN03/USD06 "6,27" 0627 +28 2 28 AS/SECTOR03/LAN04/USD02 "2,28" 0228 +28 3 28 AS/SECTOR03/LAN04/USD03 "3,28" 0328 +28 4 28 AS/SECTOR03/LAN04/USD04 "4,28" 0428 +28 5 28 AS/SECTOR03/LAN04/USD05 "5,28" 0528 +28 6 28 AS/SECTOR03/LAN04/USD06 "6,28" 0628 +29 1 15 AS/SECTOR03/LAN05/USD01 "1,15" 0115 +29 2 29 AS/SECTOR03/LAN05/USD02 "2,29" 0229 +29 3 29 AS/SECTOR03/LAN05/USD03 "3,29" 0329 +29 4 29 AS/SECTOR03/LAN05/USD04 "4,29" 0429 +29 5 29 AS/SECTOR03/LAN05/USD05 "5,29" 0529 +29 6 29 AS/SECTOR03/LAN05/USD06 "6,29" 0629 +30 2 30 AS/SECTOR03/LAN06/USD02 "2,30" 0230 +30 3 30 AS/SECTOR03/LAN06/USD03 "3,30" 0330 +30 4 30 AS/SECTOR03/LAN06/USD04 "4,30" 0430 +30 5 30 AS/SECTOR03/LAN06/USD05 "5,30" 0530 +30 6 30 AS/SECTOR03/LAN06/USD06 "6,30" 0630 +31 1 16 AS/SECTOR03/LAN07/USD01 "1,16" 0116 +31 2 31 AS/SECTOR03/LAN07/USD02 "2,31" 0231 +31 3 31 AS/SECTOR03/LAN07/USD03 "3,31" 0331 +31 4 31 AS/SECTOR03/LAN07/USD04 "4,31" 0431 +31 5 31 AS/SECTOR03/LAN07/USD05 "5,31" 0531 +31 6 31 AS/SECTOR03/LAN07/USD06 "6,31" 0631 +31 7 31 AS/SECTOR03/LAN07/USD07 "7,3" 0703 +32 2 32 AS/SECTOR03/LAN08/USD02 "2,32" 0232 +32 3 32 AS/SECTOR03/LAN08/USD03 "3,32" 0332 +32 4 32 AS/SECTOR03/LAN08/USD04 "4,32" 0432 +32 5 32 AS/SECTOR03/LAN08/USD05 "5,32" 0532 +32 6 32 AS/SECTOR03/LAN08/USD06 "6,32" 0632 +33 1 17 AS/SECTOR03/LAN09/USD01 "1,17" 0117 +33 2 33 AS/SECTOR03/LAN09/USD02 "2,33" 0233 +33 3 33 AS/SECTOR03/LAN09/USD03 "3,33" 0333 +33 4 33 AS/SECTOR03/LAN09/USD04 "4,33" 0433 +33 5 33 AS/SECTOR03/LAN09/USD05 "5,33" 0533 +33 6 33 AS/SECTOR03/LAN09/USD06 "6,33" 0633 +34 2 34 AS/SECTOR03/LAN10/USD02 "2,34" 0234 +34 3 34 AS/SECTOR03/LAN10/USD03 "3,34" 0334 +34 4 34 AS/SECTOR03/LAN10/USD04 "4,34" 0434 +34 5 34 AS/SECTOR03/LAN10/USD05 "5,34" 0534 +34 6 34 AS/SECTOR03/LAN10/USD06 "6,34" 0634 +35 1 18 AS/SECTOR03/LAN11/USD01 "1,18" 0118 +35 2 35 AS/SECTOR03/LAN11/USD02 "2,35" 0235 +35 3 35 AS/SECTOR03/LAN11/USD03 "3,35" 0335 +35 4 35 AS/SECTOR03/LAN11/USD04 "4,35" 0435 +35 5 35 AS/SECTOR03/LAN11/USD05 "5,35" 0535 +35 6 35 AS/SECTOR03/LAN11/USD06 "6,35" 0635 +36 2 36 AS/SECTOR03/LAN12/USD02 "2,36" 0236 +36 3 36 AS/SECTOR03/LAN12/USD03 "3,36" 0336 +36 4 36 AS/SECTOR03/LAN12/USD04 "4,36" 0436 +36 5 36 AS/SECTOR03/LAN12/USD05 "5,36" 0536 +36 6 36 AS/SECTOR03/LAN12/USD06 "6,36" 0636 +37 1 19 AS/SECTOR04/LAN01/USD01 "1,19" 0119 +37 2 37 AS/SECTOR04/LAN01/USD02 "2,37" 0237 +37 3 37 AS/SECTOR04/LAN01/USD03 "3,37" 0337 +37 4 37 AS/SECTOR04/LAN01/USD04 "4,37" 0437 +37 5 37 AS/SECTOR04/LAN01/USD05 "5,37" 0537 +37 6 37 AS/SECTOR04/LAN01/USD06 "6,37" 0637 +38 2 38 AS/SECTOR04/LAN02/USD02 "2,38" 0238 +38 3 38 AS/SECTOR04/LAN02/USD03 "3,38" 0338 +38 4 38 AS/SECTOR04/LAN02/USD04 "4,38" 0438 +38 5 38 AS/SECTOR04/LAN02/USD05 "5,38" 0538 +38 6 38 AS/SECTOR04/LAN02/USD06 "6,38" 0638 +39 1 20 AS/SECTOR04/LAN03/USD01 "1,20" 0120 +39 2 39 AS/SECTOR04/LAN03/USD02 "2,39" 0239 +39 3 39 AS/SECTOR04/LAN03/USD03 "3,39" 0339 +39 4 39 AS/SECTOR04/LAN03/USD04 "4,39" 0439 +39 5 39 AS/SECTOR04/LAN03/USD05 "5,39" 0539 +39 6 39 AS/SECTOR04/LAN03/USD06 "6,39" 0639 +40 2 40 AS/SECTOR04/LAN04/USD02 "2,40" 0240 +40 3 40 AS/SECTOR04/LAN04/USD03 "3,40" 0340 +40 4 40 AS/SECTOR04/LAN04/USD04 "4,40" 0440 +40 5 40 AS/SECTOR04/LAN04/USD05 "5,40" 0540 +40 6 40 AS/SECTOR04/LAN04/USD06 "6,40" 0640 +41 1 21 AS/SECTOR04/LAN05/USD01 "1,21" 0121 +41 2 41 AS/SECTOR04/LAN05/USD02 "2,41" 0241 +41 3 41 AS/SECTOR04/LAN05/USD03 "3,41" 0341 +41 4 41 AS/SECTOR04/LAN05/USD04 "4,41" 0441 +41 5 41 AS/SECTOR04/LAN05/USD05 "5,41" 0541 +41 6 41 AS/SECTOR04/LAN05/USD06 "6,41" 0641 +42 2 42 AS/SECTOR04/LAN06/USD02 "2,42" 0242 +42 3 42 AS/SECTOR04/LAN06/USD03 "3,42" 0342 +42 4 42 AS/SECTOR04/LAN06/USD04 "4,42" 0442 +42 5 42 AS/SECTOR04/LAN06/USD05 "5,42" 0542 +42 6 42 AS/SECTOR04/LAN06/USD06 "6,42" 0642 +43 1 22 AS/SECTOR04/LAN07/USD01 "1,22" 0122 +43 2 43 AS/SECTOR04/LAN07/USD02 "2,43" 0243 +43 3 43 AS/SECTOR04/LAN07/USD03 "3,43" 0343 +43 4 43 AS/SECTOR04/LAN07/USD04 "4,43" 0443 +43 5 43 AS/SECTOR04/LAN07/USD05 "5,43" 0543 +43 6 43 AS/SECTOR04/LAN07/USD06 "6,43" 0643 +43 7 43 AS/SECTOR04/LAN07/USD07 "7,4" 0704 +44 2 44 AS/SECTOR04/LAN08/USD02 "2,44" 0244 +44 3 44 AS/SECTOR04/LAN08/USD03 "3,44" 0344 +44 4 44 AS/SECTOR04/LAN08/USD04 "4,44" 0444 +44 5 44 AS/SECTOR04/LAN08/USD05 "5,44" 0544 +44 6 44 AS/SECTOR04/LAN08/USD06 "6,44" 0644 +45 1 23 AS/SECTOR04/LAN09/USD01 "1,23" 0123 +45 2 45 AS/SECTOR04/LAN09/USD02 "2,45" 0245 +45 3 45 AS/SECTOR04/LAN09/USD03 "3,45" 0345 +45 4 45 AS/SECTOR04/LAN09/USD04 "4,45" 0445 +45 5 45 AS/SECTOR04/LAN09/USD05 "5,45" 0545 +45 6 45 AS/SECTOR04/LAN09/USD06 "6,45" 0645 +46 2 46 AS/SECTOR04/LAN10/USD02 "2,46" 0246 +46 3 46 AS/SECTOR04/LAN10/USD03 "3,46" 0346 +46 4 46 AS/SECTOR04/LAN10/USD04 "4,46" 0446 +46 5 46 AS/SECTOR04/LAN10/USD05 "5,46" 0546 +46 6 46 AS/SECTOR04/LAN10/USD06 "6,46" 0646 +47 1 24 AS/SECTOR04/LAN11/USD01 "1,24" 0124 +47 2 47 AS/SECTOR04/LAN11/USD02 "2,47" 0247 +47 3 47 AS/SECTOR04/LAN11/USD03 "3,47" 0347 +47 4 47 AS/SECTOR04/LAN11/USD04 "4,47" 0447 +47 5 47 AS/SECTOR04/LAN11/USD05 "5,47" 0547 +47 6 47 AS/SECTOR04/LAN11/USD06 "6,47" 0647 +48 2 48 AS/SECTOR04/LAN12/USD02 "2,48" 0248 +48 3 48 AS/SECTOR04/LAN12/USD03 "3,48" 0348 +48 4 48 AS/SECTOR04/LAN12/USD04 "4,48" 0448 +48 5 48 AS/SECTOR04/LAN12/USD05 "5,48" 0548 +48 6 48 AS/SECTOR04/LAN12/USD06 "6,48" 0648 diff --git a/Noto/CDB/alma/AS/tab_convUSD_S1.txt b/Noto/CDB/alma/AS/tab_convUSD_S1.txt index 3c30f9a80..181e31f47 100644 --- a/Noto/CDB/alma/AS/tab_convUSD_S1.txt +++ b/Noto/CDB/alma/AS/tab_convUSD_S1.txt @@ -1,4 +1,3 @@ -1 1 1 AS/SECTOR01/LAN01/USD01 "1,1" 0101 1 2 1 AS/SECTOR01/LAN01/USD02 "2,1" 0201 1 3 1 AS/SECTOR01/LAN01/USD03 "3,1" 0301 1 4 1 AS/SECTOR01/LAN01/USD04 "4,1" 0401 @@ -9,7 +8,6 @@ 2 4 2 AS/SECTOR01/LAN02/USD04 "4,2" 0402 2 5 2 AS/SECTOR01/LAN02/USD05 "5,2" 0502 2 6 2 AS/SECTOR01/LAN02/USD06 "6,2" 0602 -3 1 2 AS/SECTOR01/LAN03/USD01 "1,2" 0102 3 2 3 AS/SECTOR01/LAN03/USD02 "2,3" 0203 3 3 3 AS/SECTOR01/LAN03/USD03 "3,3" 0303 3 4 3 AS/SECTOR01/LAN03/USD04 "4,3" 0403 @@ -20,7 +18,6 @@ 4 4 4 AS/SECTOR01/LAN04/USD04 "4,4" 0404 4 5 4 AS/SECTOR01/LAN04/USD05 "5,4" 0504 4 6 4 AS/SECTOR01/LAN04/USD06 "6,4" 0604 -5 1 3 AS/SECTOR01/LAN05/USD01 "1,3" 0103 5 2 5 AS/SECTOR01/LAN05/USD02 "2,5" 0205 5 3 5 AS/SECTOR01/LAN05/USD03 "3,5" 0305 5 4 5 AS/SECTOR01/LAN05/USD04 "4,5" 0405 @@ -31,19 +28,17 @@ 6 4 6 AS/SECTOR01/LAN06/USD04 "4,6" 0406 6 5 6 AS/SECTOR01/LAN06/USD05 "5,6" 0506 6 6 6 AS/SECTOR01/LAN06/USD06 "6,6" 0606 -7 1 4 AS/SECTOR01/LAN07/USD01 "1,4" 0104 7 2 7 AS/SECTOR01/LAN07/USD02 "2,7" 0207 7 3 7 AS/SECTOR01/LAN07/USD03 "3,7" 0307 7 4 7 AS/SECTOR01/LAN07/USD04 "4,7" 0407 7 5 7 AS/SECTOR01/LAN07/USD05 "5,7" 0507 7 6 7 AS/SECTOR01/LAN07/USD06 "6,7" 0607 -7 7 7 AS/SECTOR01/LAN07/USD07 "7,1" 0701 +7 7 1 AS/SECTOR01/LAN07/USD07 "7,1" 0701 8 2 8 AS/SECTOR01/LAN08/USD02 "2,8" 0208 8 3 8 AS/SECTOR01/LAN08/USD03 "3,8" 0308 8 4 8 AS/SECTOR01/LAN08/USD04 "4,8" 0408 8 5 8 AS/SECTOR01/LAN08/USD05 "5,8" 0508 8 6 8 AS/SECTOR01/LAN08/USD06 "6,8" 0608 -9 1 5 AS/SECTOR01/LAN09/USD01 "1,5" 0105 9 2 9 AS/SECTOR01/LAN09/USD02 "2,9" 0209 9 3 9 AS/SECTOR01/LAN09/USD03 "3,9" 0309 9 4 9 AS/SECTOR01/LAN09/USD04 "4,9" 0409 @@ -54,7 +49,6 @@ 10 4 10 AS/SECTOR01/LAN10/USD04 "4,10" 0410 10 5 10 AS/SECTOR01/LAN10/USD05 "5,10" 0510 10 6 10 AS/SECTOR01/LAN10/USD06 "6,10" 0610 -11 1 6 AS/SECTOR01/LAN11/USD01 "1,6" 0106 11 2 11 AS/SECTOR01/LAN11/USD02 "2,11" 0211 11 3 11 AS/SECTOR01/LAN11/USD03 "3,11" 0311 11 4 11 AS/SECTOR01/LAN11/USD04 "4,11" 0411 diff --git a/Noto/CDB/alma/AS/tab_convUSD_S2.txt b/Noto/CDB/alma/AS/tab_convUSD_S2.txt index 593993b05..70811a8ba 100644 --- a/Noto/CDB/alma/AS/tab_convUSD_S2.txt +++ b/Noto/CDB/alma/AS/tab_convUSD_S2.txt @@ -1,4 +1,3 @@ -13 1 7 AS/SECTOR02/LAN01/USD01 "1,7" 0107 13 2 13 AS/SECTOR02/LAN01/USD02 "2,13" 0213 13 3 13 AS/SECTOR02/LAN01/USD03 "3,13" 0313 13 4 13 AS/SECTOR02/LAN01/USD04 "4,13" 0413 @@ -9,7 +8,6 @@ 14 4 14 AS/SECTOR02/LAN02/USD04 "4,14" 0414 14 5 14 AS/SECTOR02/LAN02/USD05 "5,14" 0514 14 6 14 AS/SECTOR02/LAN02/USD06 "6,14" 0614 -15 1 8 AS/SECTOR02/LAN03/USD01 "1,8" 0108 15 2 15 AS/SECTOR02/LAN03/USD02 "2,15" 0215 15 3 15 AS/SECTOR02/LAN03/USD03 "3,15" 0315 15 4 15 AS/SECTOR02/LAN03/USD04 "4,15" 0415 @@ -20,7 +18,6 @@ 16 4 16 AS/SECTOR02/LAN04/USD04 "4,16" 0416 16 5 16 AS/SECTOR02/LAN04/USD05 "5,16" 0516 16 6 16 AS/SECTOR02/LAN04/USD06 "6,16" 0616 -17 1 9 AS/SECTOR02/LAN05/USD01 "1,9" 0109 17 2 17 AS/SECTOR02/LAN05/USD02 "2,17" 0217 17 3 17 AS/SECTOR02/LAN05/USD03 "3,17" 0317 17 4 17 AS/SECTOR02/LAN05/USD04 "4,17" 0417 @@ -31,19 +28,17 @@ 18 4 18 AS/SECTOR02/LAN06/USD04 "4,18" 0418 18 5 18 AS/SECTOR02/LAN06/USD05 "5,18" 0518 18 6 18 AS/SECTOR02/LAN06/USD06 "6,18" 0618 -19 1 10 AS/SECTOR02/LAN07/USD01 "1,10" 0110 19 2 19 AS/SECTOR02/LAN07/USD02 "2,19" 0219 19 3 19 AS/SECTOR02/LAN07/USD03 "3,19" 0319 19 4 19 AS/SECTOR02/LAN07/USD04 "4,19" 0419 19 5 19 AS/SECTOR02/LAN07/USD05 "5,19" 0519 19 6 19 AS/SECTOR02/LAN07/USD06 "6,19" 0619 -19 7 19 AS/SECTOR02/LAN07/USD07 "7,2" 0702 +19 7 2 AS/SECTOR02/LAN07/USD07 "7,2" 0702 20 2 20 AS/SECTOR02/LAN08/USD02 "2,20" 0220 20 3 20 AS/SECTOR02/LAN08/USD03 "3,20" 0320 20 4 20 AS/SECTOR02/LAN08/USD04 "4,20" 0420 20 5 20 AS/SECTOR02/LAN08/USD05 "5,20" 0520 20 6 20 AS/SECTOR02/LAN08/USD06 "6,20" 0620 -21 1 11 AS/SECTOR02/LAN09/USD01 "1,11" 0111 21 2 21 AS/SECTOR02/LAN09/USD02 "2,21" 0221 21 3 21 AS/SECTOR02/LAN09/USD03 "3,21" 0321 21 4 21 AS/SECTOR02/LAN09/USD04 "4,21" 0421 @@ -54,7 +49,6 @@ 22 4 22 AS/SECTOR02/LAN10/USD04 "4,22" 0422 22 5 22 AS/SECTOR02/LAN10/USD05 "5,22" 0522 22 6 22 AS/SECTOR02/LAN10/USD06 "6,22" 0622 -23 1 12 AS/SECTOR02/LAN11/USD01 "1,12" 0112 23 2 23 AS/SECTOR02/LAN11/USD02 "2,23" 0223 23 3 23 AS/SECTOR02/LAN11/USD03 "3,23" 0323 23 4 23 AS/SECTOR02/LAN11/USD04 "4,23" 0423 diff --git a/Noto/CDB/alma/AS/tab_convUSD_S3.txt b/Noto/CDB/alma/AS/tab_convUSD_S3.txt index 7360da979..1cc2c6195 100644 --- a/Noto/CDB/alma/AS/tab_convUSD_S3.txt +++ b/Noto/CDB/alma/AS/tab_convUSD_S3.txt @@ -1,4 +1,3 @@ -25 1 13 AS/SECTOR03/LAN01/USD01 "1,13" 0113 25 2 25 AS/SECTOR03/LAN01/USD02 "2,25" 0225 25 3 25 AS/SECTOR03/LAN01/USD03 "3,25" 0325 25 4 25 AS/SECTOR03/LAN01/USD04 "4,25" 0425 @@ -9,7 +8,6 @@ 26 4 26 AS/SECTOR03/LAN02/USD04 "4,26" 0426 26 5 26 AS/SECTOR03/LAN02/USD05 "5,26" 0526 26 6 26 AS/SECTOR03/LAN02/USD06 "6,26" 0626 -27 1 14 AS/SECTOR03/LAN03/USD01 "1,14" 0114 27 2 27 AS/SECTOR03/LAN03/USD02 "2,27" 0227 27 3 27 AS/SECTOR03/LAN03/USD03 "3,27" 0327 27 4 27 AS/SECTOR03/LAN03/USD04 "4,27" 0427 @@ -20,7 +18,6 @@ 28 4 28 AS/SECTOR03/LAN04/USD04 "4,28" 0428 28 5 28 AS/SECTOR03/LAN04/USD05 "5,28" 0528 28 6 28 AS/SECTOR03/LAN04/USD06 "6,28" 0628 -29 1 15 AS/SECTOR03/LAN05/USD01 "1,15" 0115 29 2 29 AS/SECTOR03/LAN05/USD02 "2,29" 0229 29 3 29 AS/SECTOR03/LAN05/USD03 "3,29" 0329 29 4 29 AS/SECTOR03/LAN05/USD04 "4,29" 0429 @@ -31,19 +28,17 @@ 30 4 30 AS/SECTOR03/LAN06/USD04 "4,30" 0430 30 5 30 AS/SECTOR03/LAN06/USD05 "5,30" 0530 30 6 30 AS/SECTOR03/LAN06/USD06 "6,30" 0630 -31 1 16 AS/SECTOR03/LAN07/USD01 "1,16" 0116 31 2 31 AS/SECTOR03/LAN07/USD02 "2,31" 0231 31 3 31 AS/SECTOR03/LAN07/USD03 "3,31" 0331 31 4 31 AS/SECTOR03/LAN07/USD04 "4,31" 0431 31 5 31 AS/SECTOR03/LAN07/USD05 "5,31" 0531 31 6 31 AS/SECTOR03/LAN07/USD06 "6,31" 0631 -31 7 31 AS/SECTOR03/LAN07/USD07 "7,3" 0703 +31 7 3 AS/SECTOR03/LAN07/USD07 "7,3" 0703 32 2 32 AS/SECTOR03/LAN08/USD02 "2,32" 0232 32 3 32 AS/SECTOR03/LAN08/USD03 "3,32" 0332 32 4 32 AS/SECTOR03/LAN08/USD04 "4,32" 0432 32 5 32 AS/SECTOR03/LAN08/USD05 "5,32" 0532 32 6 32 AS/SECTOR03/LAN08/USD06 "6,32" 0632 -33 1 17 AS/SECTOR03/LAN09/USD01 "1,17" 0117 33 2 33 AS/SECTOR03/LAN09/USD02 "2,33" 0233 33 3 33 AS/SECTOR03/LAN09/USD03 "3,33" 0333 33 4 33 AS/SECTOR03/LAN09/USD04 "4,33" 0433 @@ -54,7 +49,6 @@ 34 4 34 AS/SECTOR03/LAN10/USD04 "4,34" 0434 34 5 34 AS/SECTOR03/LAN10/USD05 "5,34" 0534 34 6 34 AS/SECTOR03/LAN10/USD06 "6,34" 0634 -35 1 18 AS/SECTOR03/LAN11/USD01 "1,18" 0118 35 2 35 AS/SECTOR03/LAN11/USD02 "2,35" 0235 35 3 35 AS/SECTOR03/LAN11/USD03 "3,35" 0335 35 4 35 AS/SECTOR03/LAN11/USD04 "4,35" 0435 diff --git a/Noto/CDB/alma/AS/tab_convUSD_S4.txt b/Noto/CDB/alma/AS/tab_convUSD_S4.txt index bdd16e63d..07ed2389c 100644 --- a/Noto/CDB/alma/AS/tab_convUSD_S4.txt +++ b/Noto/CDB/alma/AS/tab_convUSD_S4.txt @@ -1,4 +1,3 @@ -37 1 19 AS/SECTOR04/LAN01/USD01 "1,19" 0119 37 2 37 AS/SECTOR04/LAN01/USD02 "2,37" 0237 37 3 37 AS/SECTOR04/LAN01/USD03 "3,37" 0337 37 4 37 AS/SECTOR04/LAN01/USD04 "4,37" 0437 @@ -9,7 +8,6 @@ 38 4 38 AS/SECTOR04/LAN02/USD04 "4,38" 0438 38 5 38 AS/SECTOR04/LAN02/USD05 "5,38" 0538 38 6 38 AS/SECTOR04/LAN02/USD06 "6,38" 0638 -39 1 20 AS/SECTOR04/LAN03/USD01 "1,20" 0120 39 2 39 AS/SECTOR04/LAN03/USD02 "2,39" 0239 39 3 39 AS/SECTOR04/LAN03/USD03 "3,39" 0339 39 4 39 AS/SECTOR04/LAN03/USD04 "4,39" 0439 @@ -20,7 +18,6 @@ 40 4 40 AS/SECTOR04/LAN04/USD04 "4,40" 0440 40 5 40 AS/SECTOR04/LAN04/USD05 "5,40" 0540 40 6 40 AS/SECTOR04/LAN04/USD06 "6,40" 0640 -41 1 21 AS/SECTOR04/LAN05/USD01 "1,21" 0121 41 2 41 AS/SECTOR04/LAN05/USD02 "2,41" 0241 41 3 41 AS/SECTOR04/LAN05/USD03 "3,41" 0341 41 4 41 AS/SECTOR04/LAN05/USD04 "4,41" 0441 @@ -31,19 +28,17 @@ 42 4 42 AS/SECTOR04/LAN06/USD04 "4,42" 0442 42 5 42 AS/SECTOR04/LAN06/USD05 "5,42" 0542 42 6 42 AS/SECTOR04/LAN06/USD06 "6,42" 0642 -43 1 22 AS/SECTOR04/LAN07/USD01 "1,22" 0122 43 2 43 AS/SECTOR04/LAN07/USD02 "2,43" 0243 43 3 43 AS/SECTOR04/LAN07/USD03 "3,43" 0343 43 4 43 AS/SECTOR04/LAN07/USD04 "4,43" 0443 43 5 43 AS/SECTOR04/LAN07/USD05 "5,43" 0543 43 6 43 AS/SECTOR04/LAN07/USD06 "6,43" 0643 -43 7 43 AS/SECTOR04/LAN07/USD07 "7,4" 0704 +43 7 4 AS/SECTOR04/LAN07/USD07 "7,4" 0704 44 2 44 AS/SECTOR04/LAN08/USD02 "2,44" 0244 44 3 44 AS/SECTOR04/LAN08/USD03 "3,44" 0344 44 4 44 AS/SECTOR04/LAN08/USD04 "4,44" 0444 44 5 44 AS/SECTOR04/LAN08/USD05 "5,44" 0544 44 6 44 AS/SECTOR04/LAN08/USD06 "6,44" 0644 -45 1 23 AS/SECTOR04/LAN09/USD01 "1,23" 0123 45 2 45 AS/SECTOR04/LAN09/USD02 "2,45" 0245 45 3 45 AS/SECTOR04/LAN09/USD03 "3,45" 0345 45 4 45 AS/SECTOR04/LAN09/USD04 "4,45" 0445 @@ -54,7 +49,6 @@ 46 4 46 AS/SECTOR04/LAN10/USD04 "4,46" 0446 46 5 46 AS/SECTOR04/LAN10/USD05 "5,46" 0546 46 6 46 AS/SECTOR04/LAN10/USD06 "6,46" 0646 -47 1 24 AS/SECTOR04/LAN11/USD01 "1,24" 0124 47 2 47 AS/SECTOR04/LAN11/USD02 "2,47" 0247 47 3 47 AS/SECTOR04/LAN11/USD03 "3,47" 0347 47 4 47 AS/SECTOR04/LAN11/USD04 "4,47" 0447 diff --git a/Noto/Clients/NotoActiveSurfaceGUIClient/include/NotoActiveSurfaceGUI.h b/Noto/Clients/NotoActiveSurfaceGUIClient/include/NotoActiveSurfaceGUI.h index 68d9f8573..39d0f1642 100644 --- a/Noto/Clients/NotoActiveSurfaceGUIClient/include/NotoActiveSurfaceGUI.h +++ b/Noto/Clients/NotoActiveSurfaceGUIClient/include/NotoActiveSurfaceGUI.h @@ -59,7 +59,11 @@ public: QLabel *BussolatextLabel; QPushButton *ActuatorButton01_01; QPushButton *ActuatorButton01_02; + QPushButton *ActuatorButton07_01; + QPushButton *ActuatorButton07_02; QPushButton *ActuatorButton01_03; + QPushButton *ActuatorButton07_03; + QPushButton *ActuatorButton07_04; QPushButton *ActuatorButton01_04; QPushButton *ActuatorButton01_05; QPushButton *ActuatorButton01_06; @@ -672,6 +676,7 @@ public: BussolatextLabel->setWordWrap(false); ActuatorButton01_01 = new QPushButton(frame); ActuatorButton01_01->setObjectName(QString::fromUtf8("ActuatorButton01_01")); + ActuatorButton01_01->setEnabled(false); ActuatorButton01_01->setGeometry(QRect(471, 358, 10, 10)); QPalette palette1; palette1.setBrush(QPalette::Active, QPalette::WindowText, brush); @@ -725,6 +730,7 @@ public: ActuatorButton01_01->setPalette(palette1); ActuatorButton01_02 = new QPushButton(frame); ActuatorButton01_02->setObjectName(QString::fromUtf8("ActuatorButton01_02")); + ActuatorButton01_02->setEnabled(false); ActuatorButton01_02->setGeometry(QRect(501, 361, 10, 10)); QPalette palette2; palette2.setBrush(QPalette::Active, QPalette::WindowText, brush); @@ -776,9 +782,10 @@ public: palette2.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette2.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); ActuatorButton01_02->setPalette(palette2); - ActuatorButton01_03 = new QPushButton(frame); - ActuatorButton01_03->setObjectName(QString::fromUtf8("ActuatorButton01_03")); - ActuatorButton01_03->setGeometry(QRect(528, 372, 10, 10)); + ActuatorButton07_01 = new QPushButton(frame); + ActuatorButton07_01->setObjectName(QString::fromUtf8("ActuatorButton07_01")); + ActuatorButton07_01->setEnabled(true); + ActuatorButton07_01->setGeometry(QRect(690, 250, 10, 10)); QPalette palette3; palette3.setBrush(QPalette::Active, QPalette::WindowText, brush); palette3.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -828,10 +835,11 @@ public: palette3.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette3.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette3.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_03->setPalette(palette3); - ActuatorButton01_04 = new QPushButton(frame); - ActuatorButton01_04->setObjectName(QString::fromUtf8("ActuatorButton01_04")); - ActuatorButton01_04->setGeometry(QRect(552, 390, 10, 10)); + ActuatorButton07_01->setPalette(palette3); + ActuatorButton07_02 = new QPushButton(frame); + ActuatorButton07_02->setObjectName(QString::fromUtf8("ActuatorButton07_02")); + ActuatorButton07_02->setEnabled(true); + ActuatorButton07_02->setGeometry(QRect(690, 690, 10, 10)); QPalette palette4; palette4.setBrush(QPalette::Active, QPalette::WindowText, brush); palette4.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -881,10 +889,11 @@ public: palette4.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette4.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette4.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_04->setPalette(palette4); - ActuatorButton01_05 = new QPushButton(frame); - ActuatorButton01_05->setObjectName(QString::fromUtf8("ActuatorButton01_05")); - ActuatorButton01_05->setGeometry(QRect(569, 414, 10, 10)); + ActuatorButton07_02->setPalette(palette4); + ActuatorButton01_03 = new QPushButton(frame); + ActuatorButton01_03->setObjectName(QString::fromUtf8("ActuatorButton01_03")); + ActuatorButton01_03->setEnabled(false); + ActuatorButton01_03->setGeometry(QRect(528, 372, 10, 10)); QPalette palette5; palette5.setBrush(QPalette::Active, QPalette::WindowText, brush); palette5.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -934,10 +943,11 @@ public: palette5.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette5.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette5.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_05->setPalette(palette5); - ActuatorButton01_06 = new QPushButton(frame); - ActuatorButton01_06->setObjectName(QString::fromUtf8("ActuatorButton01_06")); - ActuatorButton01_06->setGeometry(QRect(580, 442, 10, 10)); + ActuatorButton01_03->setPalette(palette5); + ActuatorButton07_03 = new QPushButton(frame); + ActuatorButton07_03->setObjectName(QString::fromUtf8("ActuatorButton07_03")); + ActuatorButton07_03->setEnabled(true); + ActuatorButton07_03->setGeometry(QRect(250, 690, 10, 10)); QPalette palette6; palette6.setBrush(QPalette::Active, QPalette::WindowText, brush); palette6.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -987,10 +997,11 @@ public: palette6.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette6.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette6.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_06->setPalette(palette6); - ActuatorButton01_07 = new QPushButton(frame); - ActuatorButton01_07->setObjectName(QString::fromUtf8("ActuatorButton01_07")); - ActuatorButton01_07->setGeometry(QRect(584, 471, 10, 10)); + ActuatorButton07_03->setPalette(palette6); + ActuatorButton07_04 = new QPushButton(frame); + ActuatorButton07_04->setObjectName(QString::fromUtf8("ActuatorButton07_04")); + ActuatorButton07_04->setEnabled(true); + ActuatorButton07_04->setGeometry(QRect(250, 250, 10, 10)); QPalette palette7; palette7.setBrush(QPalette::Active, QPalette::WindowText, brush); palette7.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1040,10 +1051,11 @@ public: palette7.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette7.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette7.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_07->setPalette(palette7); - ActuatorButton01_08 = new QPushButton(frame); - ActuatorButton01_08->setObjectName(QString::fromUtf8("ActuatorButton01_08")); - ActuatorButton01_08->setGeometry(QRect(581, 500, 10, 10)); + ActuatorButton07_04->setPalette(palette7); + ActuatorButton01_04 = new QPushButton(frame); + ActuatorButton01_04->setObjectName(QString::fromUtf8("ActuatorButton01_04")); + ActuatorButton01_04->setEnabled(false); + ActuatorButton01_04->setGeometry(QRect(552, 390, 10, 10)); QPalette palette8; palette8.setBrush(QPalette::Active, QPalette::WindowText, brush); palette8.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1093,10 +1105,11 @@ public: palette8.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette8.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette8.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_08->setPalette(palette8); - ActuatorButton01_09 = new QPushButton(frame); - ActuatorButton01_09->setObjectName(QString::fromUtf8("ActuatorButton01_09")); - ActuatorButton01_09->setGeometry(QRect(571, 528, 10, 10)); + ActuatorButton01_04->setPalette(palette8); + ActuatorButton01_05 = new QPushButton(frame); + ActuatorButton01_05->setObjectName(QString::fromUtf8("ActuatorButton01_05")); + ActuatorButton01_05->setEnabled(false); + ActuatorButton01_05->setGeometry(QRect(569, 414, 10, 10)); QPalette palette9; palette9.setBrush(QPalette::Active, QPalette::WindowText, brush); palette9.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1146,10 +1159,11 @@ public: palette9.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette9.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette9.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_09->setPalette(palette9); - ActuatorButton01_10 = new QPushButton(frame); - ActuatorButton01_10->setObjectName(QString::fromUtf8("ActuatorButton01_10")); - ActuatorButton01_10->setGeometry(QRect(552, 552, 10, 10)); + ActuatorButton01_05->setPalette(palette9); + ActuatorButton01_06 = new QPushButton(frame); + ActuatorButton01_06->setObjectName(QString::fromUtf8("ActuatorButton01_06")); + ActuatorButton01_06->setEnabled(false); + ActuatorButton01_06->setGeometry(QRect(580, 442, 10, 10)); QPalette palette10; palette10.setBrush(QPalette::Active, QPalette::WindowText, brush); palette10.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1199,10 +1213,11 @@ public: palette10.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette10.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette10.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_10->setPalette(palette10); - ActuatorButton01_11 = new QPushButton(frame); - ActuatorButton01_11->setObjectName(QString::fromUtf8("ActuatorButton01_11")); - ActuatorButton01_11->setGeometry(QRect(528, 570, 10, 10)); + ActuatorButton01_06->setPalette(palette10); + ActuatorButton01_07 = new QPushButton(frame); + ActuatorButton01_07->setObjectName(QString::fromUtf8("ActuatorButton01_07")); + ActuatorButton01_07->setEnabled(false); + ActuatorButton01_07->setGeometry(QRect(584, 471, 10, 10)); QPalette palette11; palette11.setBrush(QPalette::Active, QPalette::WindowText, brush); palette11.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1252,10 +1267,11 @@ public: palette11.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette11.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette11.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_11->setPalette(palette11); - ActuatorButton01_12 = new QPushButton(frame); - ActuatorButton01_12->setObjectName(QString::fromUtf8("ActuatorButton01_12")); - ActuatorButton01_12->setGeometry(QRect(500, 581, 10, 10)); + ActuatorButton01_07->setPalette(palette11); + ActuatorButton01_08 = new QPushButton(frame); + ActuatorButton01_08->setObjectName(QString::fromUtf8("ActuatorButton01_08")); + ActuatorButton01_08->setEnabled(false); + ActuatorButton01_08->setGeometry(QRect(581, 500, 10, 10)); QPalette palette12; palette12.setBrush(QPalette::Active, QPalette::WindowText, brush); palette12.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1305,10 +1321,11 @@ public: palette12.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette12.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette12.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_12->setPalette(palette12); - ActuatorButton01_13 = new QPushButton(frame); - ActuatorButton01_13->setObjectName(QString::fromUtf8("ActuatorButton01_13")); - ActuatorButton01_13->setGeometry(QRect(470, 585, 10, 10)); + ActuatorButton01_08->setPalette(palette12); + ActuatorButton01_09 = new QPushButton(frame); + ActuatorButton01_09->setObjectName(QString::fromUtf8("ActuatorButton01_09")); + ActuatorButton01_09->setEnabled(false); + ActuatorButton01_09->setGeometry(QRect(571, 528, 10, 10)); QPalette palette13; palette13.setBrush(QPalette::Active, QPalette::WindowText, brush); palette13.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1358,10 +1375,11 @@ public: palette13.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette13.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette13.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_13->setPalette(palette13); - ActuatorButton01_14 = new QPushButton(frame); - ActuatorButton01_14->setObjectName(QString::fromUtf8("ActuatorButton01_14")); - ActuatorButton01_14->setGeometry(QRect(441, 581, 10, 10)); + ActuatorButton01_09->setPalette(palette13); + ActuatorButton01_10 = new QPushButton(frame); + ActuatorButton01_10->setObjectName(QString::fromUtf8("ActuatorButton01_10")); + ActuatorButton01_10->setEnabled(false); + ActuatorButton01_10->setGeometry(QRect(552, 552, 10, 10)); QPalette palette14; palette14.setBrush(QPalette::Active, QPalette::WindowText, brush); palette14.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1411,10 +1429,11 @@ public: palette14.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette14.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette14.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_14->setPalette(palette14); - ActuatorButton01_15 = new QPushButton(frame); - ActuatorButton01_15->setObjectName(QString::fromUtf8("ActuatorButton01_15")); - ActuatorButton01_15->setGeometry(QRect(413, 570, 10, 10)); + ActuatorButton01_10->setPalette(palette14); + ActuatorButton01_11 = new QPushButton(frame); + ActuatorButton01_11->setObjectName(QString::fromUtf8("ActuatorButton01_11")); + ActuatorButton01_11->setEnabled(false); + ActuatorButton01_11->setGeometry(QRect(528, 570, 10, 10)); QPalette palette15; palette15.setBrush(QPalette::Active, QPalette::WindowText, brush); palette15.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1464,10 +1483,11 @@ public: palette15.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette15.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette15.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_15->setPalette(palette15); - ActuatorButton01_16 = new QPushButton(frame); - ActuatorButton01_16->setObjectName(QString::fromUtf8("ActuatorButton01_16")); - ActuatorButton01_16->setGeometry(QRect(390, 552, 10, 10)); + ActuatorButton01_11->setPalette(palette15); + ActuatorButton01_12 = new QPushButton(frame); + ActuatorButton01_12->setObjectName(QString::fromUtf8("ActuatorButton01_12")); + ActuatorButton01_12->setEnabled(false); + ActuatorButton01_12->setGeometry(QRect(500, 581, 10, 10)); QPalette palette16; palette16.setBrush(QPalette::Active, QPalette::WindowText, brush); palette16.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1517,10 +1537,11 @@ public: palette16.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette16.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette16.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_16->setPalette(palette16); - ActuatorButton01_17 = new QPushButton(frame); - ActuatorButton01_17->setObjectName(QString::fromUtf8("ActuatorButton01_17")); - ActuatorButton01_17->setGeometry(QRect(372, 528, 10, 10)); + ActuatorButton01_12->setPalette(palette16); + ActuatorButton01_13 = new QPushButton(frame); + ActuatorButton01_13->setObjectName(QString::fromUtf8("ActuatorButton01_13")); + ActuatorButton01_13->setEnabled(false); + ActuatorButton01_13->setGeometry(QRect(470, 585, 10, 10)); QPalette palette17; palette17.setBrush(QPalette::Active, QPalette::WindowText, brush); palette17.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1570,10 +1591,11 @@ public: palette17.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette17.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette17.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_17->setPalette(palette17); - ActuatorButton01_18 = new QPushButton(frame); - ActuatorButton01_18->setObjectName(QString::fromUtf8("ActuatorButton01_18")); - ActuatorButton01_18->setGeometry(QRect(362, 500, 10, 10)); + ActuatorButton01_13->setPalette(palette17); + ActuatorButton01_14 = new QPushButton(frame); + ActuatorButton01_14->setObjectName(QString::fromUtf8("ActuatorButton01_14")); + ActuatorButton01_14->setEnabled(false); + ActuatorButton01_14->setGeometry(QRect(441, 581, 10, 10)); QPalette palette18; palette18.setBrush(QPalette::Active, QPalette::WindowText, brush); palette18.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1623,10 +1645,11 @@ public: palette18.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette18.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette18.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_18->setPalette(palette18); - ActuatorButton01_19 = new QPushButton(frame); - ActuatorButton01_19->setObjectName(QString::fromUtf8("ActuatorButton01_19")); - ActuatorButton01_19->setGeometry(QRect(357, 471, 10, 10)); + ActuatorButton01_14->setPalette(palette18); + ActuatorButton01_15 = new QPushButton(frame); + ActuatorButton01_15->setObjectName(QString::fromUtf8("ActuatorButton01_15")); + ActuatorButton01_15->setEnabled(false); + ActuatorButton01_15->setGeometry(QRect(413, 570, 10, 10)); QPalette palette19; palette19.setBrush(QPalette::Active, QPalette::WindowText, brush); palette19.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1676,10 +1699,11 @@ public: palette19.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette19.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette19.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_19->setPalette(palette19); - ActuatorButton01_20 = new QPushButton(frame); - ActuatorButton01_20->setObjectName(QString::fromUtf8("ActuatorButton01_20")); - ActuatorButton01_20->setGeometry(QRect(361, 442, 10, 10)); + ActuatorButton01_15->setPalette(palette19); + ActuatorButton01_16 = new QPushButton(frame); + ActuatorButton01_16->setObjectName(QString::fromUtf8("ActuatorButton01_16")); + ActuatorButton01_16->setEnabled(false); + ActuatorButton01_16->setGeometry(QRect(390, 552, 10, 10)); QPalette palette20; palette20.setBrush(QPalette::Active, QPalette::WindowText, brush); palette20.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1729,10 +1753,11 @@ public: palette20.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette20.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette20.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_20->setPalette(palette20); - ActuatorButton01_21 = new QPushButton(frame); - ActuatorButton01_21->setObjectName(QString::fromUtf8("ActuatorButton01_21")); - ActuatorButton01_21->setGeometry(QRect(371, 413, 10, 10)); + ActuatorButton01_16->setPalette(palette20); + ActuatorButton01_17 = new QPushButton(frame); + ActuatorButton01_17->setObjectName(QString::fromUtf8("ActuatorButton01_17")); + ActuatorButton01_17->setEnabled(false); + ActuatorButton01_17->setGeometry(QRect(372, 528, 10, 10)); QPalette palette21; palette21.setBrush(QPalette::Active, QPalette::WindowText, brush); palette21.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1782,10 +1807,11 @@ public: palette21.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette21.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette21.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_21->setPalette(palette21); - ActuatorButton01_22 = new QPushButton(frame); - ActuatorButton01_22->setObjectName(QString::fromUtf8("ActuatorButton01_22")); - ActuatorButton01_22->setGeometry(QRect(390, 391, 10, 10)); + ActuatorButton01_17->setPalette(palette21); + ActuatorButton01_18 = new QPushButton(frame); + ActuatorButton01_18->setObjectName(QString::fromUtf8("ActuatorButton01_18")); + ActuatorButton01_18->setEnabled(false); + ActuatorButton01_18->setGeometry(QRect(362, 500, 10, 10)); QPalette palette22; palette22.setBrush(QPalette::Active, QPalette::WindowText, brush); palette22.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1835,10 +1861,11 @@ public: palette22.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette22.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette22.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_22->setPalette(palette22); - ActuatorButton01_23 = new QPushButton(frame); - ActuatorButton01_23->setObjectName(QString::fromUtf8("ActuatorButton01_23")); - ActuatorButton01_23->setGeometry(QRect(414, 373, 10, 10)); + ActuatorButton01_18->setPalette(palette22); + ActuatorButton01_19 = new QPushButton(frame); + ActuatorButton01_19->setObjectName(QString::fromUtf8("ActuatorButton01_19")); + ActuatorButton01_19->setEnabled(false); + ActuatorButton01_19->setGeometry(QRect(357, 471, 10, 10)); QPalette palette23; palette23.setBrush(QPalette::Active, QPalette::WindowText, brush); palette23.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1888,10 +1915,11 @@ public: palette23.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette23.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette23.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_23->setPalette(palette23); - ActuatorButton01_24 = new QPushButton(frame); - ActuatorButton01_24->setObjectName(QString::fromUtf8("ActuatorButton01_24")); - ActuatorButton01_24->setGeometry(QRect(442, 361, 10, 10)); + ActuatorButton01_19->setPalette(palette23); + ActuatorButton01_20 = new QPushButton(frame); + ActuatorButton01_20->setObjectName(QString::fromUtf8("ActuatorButton01_20")); + ActuatorButton01_20->setEnabled(false); + ActuatorButton01_20->setGeometry(QRect(361, 442, 10, 10)); QPalette palette24; palette24.setBrush(QPalette::Active, QPalette::WindowText, brush); palette24.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1941,10 +1969,11 @@ public: palette24.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette24.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette24.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton01_24->setPalette(palette24); - ActuatorButton02_01 = new QPushButton(frame); - ActuatorButton02_01->setObjectName(QString::fromUtf8("ActuatorButton02_01")); - ActuatorButton02_01->setGeometry(QRect(471, 298, 10, 10)); + ActuatorButton01_20->setPalette(palette24); + ActuatorButton01_21 = new QPushButton(frame); + ActuatorButton01_21->setObjectName(QString::fromUtf8("ActuatorButton01_21")); + ActuatorButton01_21->setEnabled(false); + ActuatorButton01_21->setGeometry(QRect(371, 413, 10, 10)); QPalette palette25; palette25.setBrush(QPalette::Active, QPalette::WindowText, brush); palette25.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -1994,10 +2023,11 @@ public: palette25.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette25.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette25.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_01->setPalette(palette25); - ActuatorButton02_02 = new QPushButton(frame); - ActuatorButton02_02->setObjectName(QString::fromUtf8("ActuatorButton02_02")); - ActuatorButton02_02->setGeometry(QRect(494, 300, 10, 10)); + ActuatorButton01_21->setPalette(palette25); + ActuatorButton01_22 = new QPushButton(frame); + ActuatorButton01_22->setObjectName(QString::fromUtf8("ActuatorButton01_22")); + ActuatorButton01_22->setEnabled(false); + ActuatorButton01_22->setGeometry(QRect(390, 391, 10, 10)); QPalette palette26; palette26.setBrush(QPalette::Active, QPalette::WindowText, brush); palette26.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2047,10 +2077,11 @@ public: palette26.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette26.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette26.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_02->setPalette(palette26); - ActuatorButton02_03 = new QPushButton(frame); - ActuatorButton02_03->setObjectName(QString::fromUtf8("ActuatorButton02_03")); - ActuatorButton02_03->setGeometry(QRect(516, 304, 10, 10)); + ActuatorButton01_22->setPalette(palette26); + ActuatorButton01_23 = new QPushButton(frame); + ActuatorButton01_23->setObjectName(QString::fromUtf8("ActuatorButton01_23")); + ActuatorButton01_23->setEnabled(false); + ActuatorButton01_23->setGeometry(QRect(414, 373, 10, 10)); QPalette palette27; palette27.setBrush(QPalette::Active, QPalette::WindowText, brush); palette27.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2100,10 +2131,11 @@ public: palette27.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette27.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette27.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_03->setPalette(palette27); - ActuatorButton02_04 = new QPushButton(frame); - ActuatorButton02_04->setObjectName(QString::fromUtf8("ActuatorButton02_04")); - ActuatorButton02_04->setGeometry(QRect(537, 312, 10, 10)); + ActuatorButton01_23->setPalette(palette27); + ActuatorButton01_24 = new QPushButton(frame); + ActuatorButton01_24->setObjectName(QString::fromUtf8("ActuatorButton01_24")); + ActuatorButton01_24->setEnabled(false); + ActuatorButton01_24->setGeometry(QRect(442, 361, 10, 10)); QPalette palette28; palette28.setBrush(QPalette::Active, QPalette::WindowText, brush); palette28.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2153,10 +2185,10 @@ public: palette28.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette28.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette28.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_04->setPalette(palette28); - ActuatorButton02_05 = new QPushButton(frame); - ActuatorButton02_05->setObjectName(QString::fromUtf8("ActuatorButton02_05")); - ActuatorButton02_05->setGeometry(QRect(557, 321, 10, 10)); + ActuatorButton01_24->setPalette(palette28); + ActuatorButton02_01 = new QPushButton(frame); + ActuatorButton02_01->setObjectName(QString::fromUtf8("ActuatorButton02_01")); + ActuatorButton02_01->setGeometry(QRect(471, 298, 10, 10)); QPalette palette29; palette29.setBrush(QPalette::Active, QPalette::WindowText, brush); palette29.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2206,10 +2238,10 @@ public: palette29.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette29.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette29.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_05->setPalette(palette29); - ActuatorButton02_06 = new QPushButton(frame); - ActuatorButton02_06->setObjectName(QString::fromUtf8("ActuatorButton02_06")); - ActuatorButton02_06->setGeometry(QRect(576, 334, 10, 10)); + ActuatorButton02_01->setPalette(palette29); + ActuatorButton02_02 = new QPushButton(frame); + ActuatorButton02_02->setObjectName(QString::fromUtf8("ActuatorButton02_02")); + ActuatorButton02_02->setGeometry(QRect(494, 300, 10, 10)); QPalette palette30; palette30.setBrush(QPalette::Active, QPalette::WindowText, brush); palette30.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2259,10 +2291,10 @@ public: palette30.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette30.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette30.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_06->setPalette(palette30); - ActuatorButton02_07 = new QPushButton(frame); - ActuatorButton02_07->setObjectName(QString::fromUtf8("ActuatorButton02_07")); - ActuatorButton02_07->setGeometry(QRect(594, 349, 10, 10)); + ActuatorButton02_02->setPalette(palette30); + ActuatorButton02_03 = new QPushButton(frame); + ActuatorButton02_03->setObjectName(QString::fromUtf8("ActuatorButton02_03")); + ActuatorButton02_03->setGeometry(QRect(516, 304, 10, 10)); QPalette palette31; palette31.setBrush(QPalette::Active, QPalette::WindowText, brush); palette31.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2312,10 +2344,10 @@ public: palette31.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette31.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette31.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_07->setPalette(palette31); - ActuatorButton02_08 = new QPushButton(frame); - ActuatorButton02_08->setObjectName(QString::fromUtf8("ActuatorButton02_08")); - ActuatorButton02_08->setGeometry(QRect(607, 365, 10, 10)); + ActuatorButton02_03->setPalette(palette31); + ActuatorButton02_04 = new QPushButton(frame); + ActuatorButton02_04->setObjectName(QString::fromUtf8("ActuatorButton02_04")); + ActuatorButton02_04->setGeometry(QRect(537, 312, 10, 10)); QPalette palette32; palette32.setBrush(QPalette::Active, QPalette::WindowText, brush); palette32.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2365,10 +2397,10 @@ public: palette32.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette32.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette32.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_08->setPalette(palette32); - ActuatorButton02_09 = new QPushButton(frame); - ActuatorButton02_09->setObjectName(QString::fromUtf8("ActuatorButton02_09")); - ActuatorButton02_09->setGeometry(QRect(620, 385, 10, 10)); + ActuatorButton02_04->setPalette(palette32); + ActuatorButton02_05 = new QPushButton(frame); + ActuatorButton02_05->setObjectName(QString::fromUtf8("ActuatorButton02_05")); + ActuatorButton02_05->setGeometry(QRect(557, 321, 10, 10)); QPalette palette33; palette33.setBrush(QPalette::Active, QPalette::WindowText, brush); palette33.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2418,10 +2450,10 @@ public: palette33.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette33.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette33.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_09->setPalette(palette33); - ActuatorButton02_10 = new QPushButton(frame); - ActuatorButton02_10->setObjectName(QString::fromUtf8("ActuatorButton02_10")); - ActuatorButton02_10->setGeometry(QRect(630, 405, 10, 10)); + ActuatorButton02_05->setPalette(palette33); + ActuatorButton02_06 = new QPushButton(frame); + ActuatorButton02_06->setObjectName(QString::fromUtf8("ActuatorButton02_06")); + ActuatorButton02_06->setGeometry(QRect(576, 334, 10, 10)); QPalette palette34; palette34.setBrush(QPalette::Active, QPalette::WindowText, brush); palette34.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2471,10 +2503,10 @@ public: palette34.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette34.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette34.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_10->setPalette(palette34); - ActuatorButton02_11 = new QPushButton(frame); - ActuatorButton02_11->setObjectName(QString::fromUtf8("ActuatorButton02_11")); - ActuatorButton02_11->setGeometry(QRect(637, 426, 10, 10)); + ActuatorButton02_06->setPalette(palette34); + ActuatorButton02_07 = new QPushButton(frame); + ActuatorButton02_07->setObjectName(QString::fromUtf8("ActuatorButton02_07")); + ActuatorButton02_07->setGeometry(QRect(594, 349, 10, 10)); QPalette palette35; palette35.setBrush(QPalette::Active, QPalette::WindowText, brush); palette35.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2524,10 +2556,10 @@ public: palette35.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette35.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette35.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_11->setPalette(palette35); - ActuatorButton02_12 = new QPushButton(frame); - ActuatorButton02_12->setObjectName(QString::fromUtf8("ActuatorButton02_12")); - ActuatorButton02_12->setGeometry(QRect(642, 448, 10, 10)); + ActuatorButton02_07->setPalette(palette35); + ActuatorButton02_08 = new QPushButton(frame); + ActuatorButton02_08->setObjectName(QString::fromUtf8("ActuatorButton02_08")); + ActuatorButton02_08->setGeometry(QRect(607, 365, 10, 10)); QPalette palette36; palette36.setBrush(QPalette::Active, QPalette::WindowText, brush); palette36.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2577,10 +2609,10 @@ public: palette36.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette36.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette36.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_12->setPalette(palette36); - ActuatorButton02_13 = new QPushButton(frame); - ActuatorButton02_13->setObjectName(QString::fromUtf8("ActuatorButton02_13")); - ActuatorButton02_13->setGeometry(QRect(643, 472, 10, 10)); + ActuatorButton02_08->setPalette(palette36); + ActuatorButton02_09 = new QPushButton(frame); + ActuatorButton02_09->setObjectName(QString::fromUtf8("ActuatorButton02_09")); + ActuatorButton02_09->setGeometry(QRect(620, 385, 10, 10)); QPalette palette37; palette37.setBrush(QPalette::Active, QPalette::WindowText, brush); palette37.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2630,10 +2662,10 @@ public: palette37.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette37.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette37.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_13->setPalette(palette37); - ActuatorButton02_14 = new QPushButton(frame); - ActuatorButton02_14->setObjectName(QString::fromUtf8("ActuatorButton02_14")); - ActuatorButton02_14->setGeometry(QRect(642, 494, 10, 10)); + ActuatorButton02_09->setPalette(palette37); + ActuatorButton02_10 = new QPushButton(frame); + ActuatorButton02_10->setObjectName(QString::fromUtf8("ActuatorButton02_10")); + ActuatorButton02_10->setGeometry(QRect(630, 405, 10, 10)); QPalette palette38; palette38.setBrush(QPalette::Active, QPalette::WindowText, brush); palette38.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2683,10 +2715,10 @@ public: palette38.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette38.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette38.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_14->setPalette(palette38); - ActuatorButton02_15 = new QPushButton(frame); - ActuatorButton02_15->setObjectName(QString::fromUtf8("ActuatorButton02_15")); - ActuatorButton02_15->setGeometry(QRect(638, 516, 10, 10)); + ActuatorButton02_10->setPalette(palette38); + ActuatorButton02_11 = new QPushButton(frame); + ActuatorButton02_11->setObjectName(QString::fromUtf8("ActuatorButton02_11")); + ActuatorButton02_11->setGeometry(QRect(637, 426, 10, 10)); QPalette palette39; palette39.setBrush(QPalette::Active, QPalette::WindowText, brush); palette39.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2736,10 +2768,10 @@ public: palette39.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette39.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette39.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_15->setPalette(palette39); - ActuatorButton02_16 = new QPushButton(frame); - ActuatorButton02_16->setObjectName(QString::fromUtf8("ActuatorButton02_16")); - ActuatorButton02_16->setGeometry(QRect(630, 537, 10, 10)); + ActuatorButton02_11->setPalette(palette39); + ActuatorButton02_12 = new QPushButton(frame); + ActuatorButton02_12->setObjectName(QString::fromUtf8("ActuatorButton02_12")); + ActuatorButton02_12->setGeometry(QRect(642, 448, 10, 10)); QPalette palette40; palette40.setBrush(QPalette::Active, QPalette::WindowText, brush); palette40.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2789,10 +2821,10 @@ public: palette40.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette40.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette40.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_16->setPalette(palette40); - ActuatorButton02_17 = new QPushButton(frame); - ActuatorButton02_17->setObjectName(QString::fromUtf8("ActuatorButton02_17")); - ActuatorButton02_17->setGeometry(QRect(620, 557, 10, 10)); + ActuatorButton02_12->setPalette(palette40); + ActuatorButton02_13 = new QPushButton(frame); + ActuatorButton02_13->setObjectName(QString::fromUtf8("ActuatorButton02_13")); + ActuatorButton02_13->setGeometry(QRect(643, 472, 10, 10)); QPalette palette41; palette41.setBrush(QPalette::Active, QPalette::WindowText, brush); palette41.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2842,10 +2874,10 @@ public: palette41.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette41.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette41.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_17->setPalette(palette41); - ActuatorButton02_18 = new QPushButton(frame); - ActuatorButton02_18->setObjectName(QString::fromUtf8("ActuatorButton02_18")); - ActuatorButton02_18->setGeometry(QRect(608, 576, 10, 10)); + ActuatorButton02_13->setPalette(palette41); + ActuatorButton02_14 = new QPushButton(frame); + ActuatorButton02_14->setObjectName(QString::fromUtf8("ActuatorButton02_14")); + ActuatorButton02_14->setGeometry(QRect(642, 494, 10, 10)); QPalette palette42; palette42.setBrush(QPalette::Active, QPalette::WindowText, brush); palette42.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2895,10 +2927,10 @@ public: palette42.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette42.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette42.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_18->setPalette(palette42); - ActuatorButton02_19 = new QPushButton(frame); - ActuatorButton02_19->setObjectName(QString::fromUtf8("ActuatorButton02_19")); - ActuatorButton02_19->setGeometry(QRect(593, 593, 10, 10)); + ActuatorButton02_14->setPalette(palette42); + ActuatorButton02_15 = new QPushButton(frame); + ActuatorButton02_15->setObjectName(QString::fromUtf8("ActuatorButton02_15")); + ActuatorButton02_15->setGeometry(QRect(638, 516, 10, 10)); QPalette palette43; palette43.setBrush(QPalette::Active, QPalette::WindowText, brush); palette43.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -2948,10 +2980,10 @@ public: palette43.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette43.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette43.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_19->setPalette(palette43); - ActuatorButton02_20 = new QPushButton(frame); - ActuatorButton02_20->setObjectName(QString::fromUtf8("ActuatorButton02_20")); - ActuatorButton02_20->setGeometry(QRect(576, 607, 10, 10)); + ActuatorButton02_15->setPalette(palette43); + ActuatorButton02_16 = new QPushButton(frame); + ActuatorButton02_16->setObjectName(QString::fromUtf8("ActuatorButton02_16")); + ActuatorButton02_16->setGeometry(QRect(630, 537, 10, 10)); QPalette palette44; palette44.setBrush(QPalette::Active, QPalette::WindowText, brush); palette44.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3001,10 +3033,10 @@ public: palette44.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette44.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette44.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_20->setPalette(palette44); - ActuatorButton02_21 = new QPushButton(frame); - ActuatorButton02_21->setObjectName(QString::fromUtf8("ActuatorButton02_21")); - ActuatorButton02_21->setGeometry(QRect(557, 620, 10, 10)); + ActuatorButton02_16->setPalette(palette44); + ActuatorButton02_17 = new QPushButton(frame); + ActuatorButton02_17->setObjectName(QString::fromUtf8("ActuatorButton02_17")); + ActuatorButton02_17->setGeometry(QRect(620, 557, 10, 10)); QPalette palette45; palette45.setBrush(QPalette::Active, QPalette::WindowText, brush); palette45.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3054,10 +3086,10 @@ public: palette45.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette45.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette45.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_21->setPalette(palette45); - ActuatorButton02_22 = new QPushButton(frame); - ActuatorButton02_22->setObjectName(QString::fromUtf8("ActuatorButton02_22")); - ActuatorButton02_22->setGeometry(QRect(536, 630, 10, 10)); + ActuatorButton02_17->setPalette(palette45); + ActuatorButton02_18 = new QPushButton(frame); + ActuatorButton02_18->setObjectName(QString::fromUtf8("ActuatorButton02_18")); + ActuatorButton02_18->setGeometry(QRect(608, 576, 10, 10)); QPalette palette46; palette46.setBrush(QPalette::Active, QPalette::WindowText, brush); palette46.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3107,11 +3139,11 @@ public: palette46.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette46.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette46.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_22->setPalette(palette46); - ActuatorButton02_23 = new QPushButton(frame); - ActuatorButton02_23->setObjectName(QString::fromUtf8("ActuatorButton02_23")); - ActuatorButton02_23->setGeometry(QRect(515, 637, 10, 10)); - QPalette palette47; + ActuatorButton02_18->setPalette(palette46); + ActuatorButton02_19 = new QPushButton(frame); + ActuatorButton02_19->setObjectName(QString::fromUtf8("ActuatorButton02_19")); + ActuatorButton02_19->setGeometry(QRect(593, 593, 10, 10)); + QPalette palette47; palette47.setBrush(QPalette::Active, QPalette::WindowText, brush); palette47.setBrush(QPalette::Active, QPalette::Button, brush1); palette47.setBrush(QPalette::Active, QPalette::Light, brush2); @@ -3160,10 +3192,10 @@ public: palette47.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette47.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette47.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_23->setPalette(palette47); - ActuatorButton02_24 = new QPushButton(frame); - ActuatorButton02_24->setObjectName(QString::fromUtf8("ActuatorButton02_24")); - ActuatorButton02_24->setGeometry(QRect(493, 642, 10, 10)); + ActuatorButton02_19->setPalette(palette47); + ActuatorButton02_20 = new QPushButton(frame); + ActuatorButton02_20->setObjectName(QString::fromUtf8("ActuatorButton02_20")); + ActuatorButton02_20->setGeometry(QRect(576, 607, 10, 10)); QPalette palette48; palette48.setBrush(QPalette::Active, QPalette::WindowText, brush); palette48.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3213,10 +3245,10 @@ public: palette48.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette48.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette48.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_24->setPalette(palette48); - ActuatorButton02_25 = new QPushButton(frame); - ActuatorButton02_25->setObjectName(QString::fromUtf8("ActuatorButton02_25")); - ActuatorButton02_25->setGeometry(QRect(471, 644, 10, 10)); + ActuatorButton02_20->setPalette(palette48); + ActuatorButton02_21 = new QPushButton(frame); + ActuatorButton02_21->setObjectName(QString::fromUtf8("ActuatorButton02_21")); + ActuatorButton02_21->setGeometry(QRect(557, 620, 10, 10)); QPalette palette49; palette49.setBrush(QPalette::Active, QPalette::WindowText, brush); palette49.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3266,10 +3298,10 @@ public: palette49.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette49.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette49.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_25->setPalette(palette49); - ActuatorButton02_26 = new QPushButton(frame); - ActuatorButton02_26->setObjectName(QString::fromUtf8("ActuatorButton02_26")); - ActuatorButton02_26->setGeometry(QRect(449, 642, 10, 10)); + ActuatorButton02_21->setPalette(palette49); + ActuatorButton02_22 = new QPushButton(frame); + ActuatorButton02_22->setObjectName(QString::fromUtf8("ActuatorButton02_22")); + ActuatorButton02_22->setGeometry(QRect(536, 630, 10, 10)); QPalette palette50; palette50.setBrush(QPalette::Active, QPalette::WindowText, brush); palette50.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3319,10 +3351,10 @@ public: palette50.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette50.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette50.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_26->setPalette(palette50); - ActuatorButton02_27 = new QPushButton(frame); - ActuatorButton02_27->setObjectName(QString::fromUtf8("ActuatorButton02_27")); - ActuatorButton02_27->setGeometry(QRect(427, 637, 10, 10)); + ActuatorButton02_22->setPalette(palette50); + ActuatorButton02_23 = new QPushButton(frame); + ActuatorButton02_23->setObjectName(QString::fromUtf8("ActuatorButton02_23")); + ActuatorButton02_23->setGeometry(QRect(515, 637, 10, 10)); QPalette palette51; palette51.setBrush(QPalette::Active, QPalette::WindowText, brush); palette51.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3372,10 +3404,10 @@ public: palette51.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette51.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette51.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_27->setPalette(palette51); - ActuatorButton02_28 = new QPushButton(frame); - ActuatorButton02_28->setObjectName(QString::fromUtf8("ActuatorButton02_28")); - ActuatorButton02_28->setGeometry(QRect(405, 631, 10, 10)); + ActuatorButton02_23->setPalette(palette51); + ActuatorButton02_24 = new QPushButton(frame); + ActuatorButton02_24->setObjectName(QString::fromUtf8("ActuatorButton02_24")); + ActuatorButton02_24->setGeometry(QRect(493, 642, 10, 10)); QPalette palette52; palette52.setBrush(QPalette::Active, QPalette::WindowText, brush); palette52.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3425,10 +3457,10 @@ public: palette52.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette52.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette52.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_28->setPalette(palette52); - ActuatorButton02_29 = new QPushButton(frame); - ActuatorButton02_29->setObjectName(QString::fromUtf8("ActuatorButton02_29")); - ActuatorButton02_29->setGeometry(QRect(385, 620, 10, 10)); + ActuatorButton02_24->setPalette(palette52); + ActuatorButton02_25 = new QPushButton(frame); + ActuatorButton02_25->setObjectName(QString::fromUtf8("ActuatorButton02_25")); + ActuatorButton02_25->setGeometry(QRect(471, 644, 10, 10)); QPalette palette53; palette53.setBrush(QPalette::Active, QPalette::WindowText, brush); palette53.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3478,10 +3510,10 @@ public: palette53.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette53.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette53.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_29->setPalette(palette53); - ActuatorButton02_30 = new QPushButton(frame); - ActuatorButton02_30->setObjectName(QString::fromUtf8("ActuatorButton02_30")); - ActuatorButton02_30->setGeometry(QRect(365, 607, 10, 10)); + ActuatorButton02_25->setPalette(palette53); + ActuatorButton02_26 = new QPushButton(frame); + ActuatorButton02_26->setObjectName(QString::fromUtf8("ActuatorButton02_26")); + ActuatorButton02_26->setGeometry(QRect(449, 642, 10, 10)); QPalette palette54; palette54.setBrush(QPalette::Active, QPalette::WindowText, brush); palette54.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3531,10 +3563,10 @@ public: palette54.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette54.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette54.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_30->setPalette(palette54); - ActuatorButton02_31 = new QPushButton(frame); - ActuatorButton02_31->setObjectName(QString::fromUtf8("ActuatorButton02_31")); - ActuatorButton02_31->setGeometry(QRect(349, 592, 10, 10)); + ActuatorButton02_26->setPalette(palette54); + ActuatorButton02_27 = new QPushButton(frame); + ActuatorButton02_27->setObjectName(QString::fromUtf8("ActuatorButton02_27")); + ActuatorButton02_27->setGeometry(QRect(427, 637, 10, 10)); QPalette palette55; palette55.setBrush(QPalette::Active, QPalette::WindowText, brush); palette55.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3584,10 +3616,10 @@ public: palette55.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette55.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette55.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_31->setPalette(palette55); - ActuatorButton02_32 = new QPushButton(frame); - ActuatorButton02_32->setObjectName(QString::fromUtf8("ActuatorButton02_32")); - ActuatorButton02_32->setGeometry(QRect(333, 576, 10, 10)); + ActuatorButton02_27->setPalette(palette55); + ActuatorButton02_28 = new QPushButton(frame); + ActuatorButton02_28->setObjectName(QString::fromUtf8("ActuatorButton02_28")); + ActuatorButton02_28->setGeometry(QRect(405, 631, 10, 10)); QPalette palette56; palette56.setBrush(QPalette::Active, QPalette::WindowText, brush); palette56.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3637,10 +3669,10 @@ public: palette56.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette56.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette56.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_32->setPalette(palette56); - ActuatorButton02_33 = new QPushButton(frame); - ActuatorButton02_33->setObjectName(QString::fromUtf8("ActuatorButton02_33")); - ActuatorButton02_33->setGeometry(QRect(321, 557, 10, 10)); + ActuatorButton02_28->setPalette(palette56); + ActuatorButton02_29 = new QPushButton(frame); + ActuatorButton02_29->setObjectName(QString::fromUtf8("ActuatorButton02_29")); + ActuatorButton02_29->setGeometry(QRect(385, 620, 10, 10)); QPalette palette57; palette57.setBrush(QPalette::Active, QPalette::WindowText, brush); palette57.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3690,10 +3722,10 @@ public: palette57.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette57.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette57.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_33->setPalette(palette57); - ActuatorButton02_34 = new QPushButton(frame); - ActuatorButton02_34->setObjectName(QString::fromUtf8("ActuatorButton02_34")); - ActuatorButton02_34->setGeometry(QRect(312, 536, 10, 10)); + ActuatorButton02_29->setPalette(palette57); + ActuatorButton02_30 = new QPushButton(frame); + ActuatorButton02_30->setObjectName(QString::fromUtf8("ActuatorButton02_30")); + ActuatorButton02_30->setGeometry(QRect(365, 607, 10, 10)); QPalette palette58; palette58.setBrush(QPalette::Active, QPalette::WindowText, brush); palette58.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3743,10 +3775,10 @@ public: palette58.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette58.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette58.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_34->setPalette(palette58); - ActuatorButton02_35 = new QPushButton(frame); - ActuatorButton02_35->setObjectName(QString::fromUtf8("ActuatorButton02_35")); - ActuatorButton02_35->setGeometry(QRect(304, 515, 10, 10)); + ActuatorButton02_30->setPalette(palette58); + ActuatorButton02_31 = new QPushButton(frame); + ActuatorButton02_31->setObjectName(QString::fromUtf8("ActuatorButton02_31")); + ActuatorButton02_31->setGeometry(QRect(349, 592, 10, 10)); QPalette palette59; palette59.setBrush(QPalette::Active, QPalette::WindowText, brush); palette59.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3796,10 +3828,10 @@ public: palette59.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette59.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette59.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_35->setPalette(palette59); - ActuatorButton02_36 = new QPushButton(frame); - ActuatorButton02_36->setObjectName(QString::fromUtf8("ActuatorButton02_36")); - ActuatorButton02_36->setGeometry(QRect(300, 493, 10, 10)); + ActuatorButton02_31->setPalette(palette59); + ActuatorButton02_32 = new QPushButton(frame); + ActuatorButton02_32->setObjectName(QString::fromUtf8("ActuatorButton02_32")); + ActuatorButton02_32->setGeometry(QRect(333, 576, 10, 10)); QPalette palette60; palette60.setBrush(QPalette::Active, QPalette::WindowText, brush); palette60.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3849,10 +3881,10 @@ public: palette60.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette60.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette60.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_36->setPalette(palette60); - ActuatorButton02_37 = new QPushButton(frame); - ActuatorButton02_37->setObjectName(QString::fromUtf8("ActuatorButton02_37")); - ActuatorButton02_37->setGeometry(QRect(299, 471, 10, 10)); + ActuatorButton02_32->setPalette(palette60); + ActuatorButton02_33 = new QPushButton(frame); + ActuatorButton02_33->setObjectName(QString::fromUtf8("ActuatorButton02_33")); + ActuatorButton02_33->setGeometry(QRect(321, 557, 10, 10)); QPalette palette61; palette61.setBrush(QPalette::Active, QPalette::WindowText, brush); palette61.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3902,10 +3934,10 @@ public: palette61.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette61.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette61.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_37->setPalette(palette61); - ActuatorButton02_38 = new QPushButton(frame); - ActuatorButton02_38->setObjectName(QString::fromUtf8("ActuatorButton02_38")); - ActuatorButton02_38->setGeometry(QRect(300, 449, 10, 10)); + ActuatorButton02_33->setPalette(palette61); + ActuatorButton02_34 = new QPushButton(frame); + ActuatorButton02_34->setObjectName(QString::fromUtf8("ActuatorButton02_34")); + ActuatorButton02_34->setGeometry(QRect(312, 536, 10, 10)); QPalette palette62; palette62.setBrush(QPalette::Active, QPalette::WindowText, brush); palette62.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -3955,10 +3987,10 @@ public: palette62.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette62.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette62.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_38->setPalette(palette62); - ActuatorButton02_39 = new QPushButton(frame); - ActuatorButton02_39->setObjectName(QString::fromUtf8("ActuatorButton02_39")); - ActuatorButton02_39->setGeometry(QRect(304, 427, 10, 10)); + ActuatorButton02_34->setPalette(palette62); + ActuatorButton02_35 = new QPushButton(frame); + ActuatorButton02_35->setObjectName(QString::fromUtf8("ActuatorButton02_35")); + ActuatorButton02_35->setGeometry(QRect(304, 515, 10, 10)); QPalette palette63; palette63.setBrush(QPalette::Active, QPalette::WindowText, brush); palette63.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4008,10 +4040,10 @@ public: palette63.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette63.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette63.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_39->setPalette(palette63); - ActuatorButton02_40 = new QPushButton(frame); - ActuatorButton02_40->setObjectName(QString::fromUtf8("ActuatorButton02_40")); - ActuatorButton02_40->setGeometry(QRect(312, 405, 10, 10)); + ActuatorButton02_35->setPalette(palette63); + ActuatorButton02_36 = new QPushButton(frame); + ActuatorButton02_36->setObjectName(QString::fromUtf8("ActuatorButton02_36")); + ActuatorButton02_36->setGeometry(QRect(300, 493, 10, 10)); QPalette palette64; palette64.setBrush(QPalette::Active, QPalette::WindowText, brush); palette64.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4061,10 +4093,10 @@ public: palette64.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette64.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette64.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_40->setPalette(palette64); - ActuatorButton02_41 = new QPushButton(frame); - ActuatorButton02_41->setObjectName(QString::fromUtf8("ActuatorButton02_41")); - ActuatorButton02_41->setGeometry(QRect(321, 385, 10, 10)); + ActuatorButton02_36->setPalette(palette64); + ActuatorButton02_37 = new QPushButton(frame); + ActuatorButton02_37->setObjectName(QString::fromUtf8("ActuatorButton02_37")); + ActuatorButton02_37->setGeometry(QRect(299, 471, 10, 10)); QPalette palette65; palette65.setBrush(QPalette::Active, QPalette::WindowText, brush); palette65.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4114,10 +4146,10 @@ public: palette65.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette65.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette65.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_41->setPalette(palette65); - ActuatorButton02_42 = new QPushButton(frame); - ActuatorButton02_42->setObjectName(QString::fromUtf8("ActuatorButton02_42")); - ActuatorButton02_42->setGeometry(QRect(334, 366, 10, 10)); + ActuatorButton02_37->setPalette(palette65); + ActuatorButton02_38 = new QPushButton(frame); + ActuatorButton02_38->setObjectName(QString::fromUtf8("ActuatorButton02_38")); + ActuatorButton02_38->setGeometry(QRect(300, 449, 10, 10)); QPalette palette66; palette66.setBrush(QPalette::Active, QPalette::WindowText, brush); palette66.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4167,10 +4199,10 @@ public: palette66.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette66.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette66.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_42->setPalette(palette66); - ActuatorButton02_43 = new QPushButton(frame); - ActuatorButton02_43->setObjectName(QString::fromUtf8("ActuatorButton02_43")); - ActuatorButton02_43->setGeometry(QRect(349, 350, 10, 10)); + ActuatorButton02_38->setPalette(palette66); + ActuatorButton02_39 = new QPushButton(frame); + ActuatorButton02_39->setObjectName(QString::fromUtf8("ActuatorButton02_39")); + ActuatorButton02_39->setGeometry(QRect(304, 427, 10, 10)); QPalette palette67; palette67.setBrush(QPalette::Active, QPalette::WindowText, brush); palette67.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4220,10 +4252,10 @@ public: palette67.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette67.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette67.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_43->setPalette(palette67); - ActuatorButton02_44 = new QPushButton(frame); - ActuatorButton02_44->setObjectName(QString::fromUtf8("ActuatorButton02_44")); - ActuatorButton02_44->setGeometry(QRect(366, 334, 10, 10)); + ActuatorButton02_39->setPalette(palette67); + ActuatorButton02_40 = new QPushButton(frame); + ActuatorButton02_40->setObjectName(QString::fromUtf8("ActuatorButton02_40")); + ActuatorButton02_40->setGeometry(QRect(312, 405, 10, 10)); QPalette palette68; palette68.setBrush(QPalette::Active, QPalette::WindowText, brush); palette68.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4273,10 +4305,10 @@ public: palette68.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette68.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette68.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_44->setPalette(palette68); - ActuatorButton02_45 = new QPushButton(frame); - ActuatorButton02_45->setObjectName(QString::fromUtf8("ActuatorButton02_45")); - ActuatorButton02_45->setGeometry(QRect(384, 322, 10, 10)); + ActuatorButton02_40->setPalette(palette68); + ActuatorButton02_41 = new QPushButton(frame); + ActuatorButton02_41->setObjectName(QString::fromUtf8("ActuatorButton02_41")); + ActuatorButton02_41->setGeometry(QRect(321, 385, 10, 10)); QPalette palette69; palette69.setBrush(QPalette::Active, QPalette::WindowText, brush); palette69.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4326,10 +4358,10 @@ public: palette69.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette69.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette69.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_45->setPalette(palette69); - ActuatorButton02_46 = new QPushButton(frame); - ActuatorButton02_46->setObjectName(QString::fromUtf8("ActuatorButton02_46")); - ActuatorButton02_46->setGeometry(QRect(404, 311, 10, 10)); + ActuatorButton02_41->setPalette(palette69); + ActuatorButton02_42 = new QPushButton(frame); + ActuatorButton02_42->setObjectName(QString::fromUtf8("ActuatorButton02_42")); + ActuatorButton02_42->setGeometry(QRect(334, 366, 10, 10)); QPalette palette70; palette70.setBrush(QPalette::Active, QPalette::WindowText, brush); palette70.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4379,10 +4411,10 @@ public: palette70.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette70.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette70.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_46->setPalette(palette70); - ActuatorButton02_47 = new QPushButton(frame); - ActuatorButton02_47->setObjectName(QString::fromUtf8("ActuatorButton02_47")); - ActuatorButton02_47->setGeometry(QRect(427, 305, 10, 10)); + ActuatorButton02_42->setPalette(palette70); + ActuatorButton02_43 = new QPushButton(frame); + ActuatorButton02_43->setObjectName(QString::fromUtf8("ActuatorButton02_43")); + ActuatorButton02_43->setGeometry(QRect(349, 350, 10, 10)); QPalette palette71; palette71.setBrush(QPalette::Active, QPalette::WindowText, brush); palette71.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4432,10 +4464,10 @@ public: palette71.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette71.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette71.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_47->setPalette(palette71); - ActuatorButton02_48 = new QPushButton(frame); - ActuatorButton02_48->setObjectName(QString::fromUtf8("ActuatorButton02_48")); - ActuatorButton02_48->setGeometry(QRect(448, 300, 10, 10)); + ActuatorButton02_43->setPalette(palette71); + ActuatorButton02_44 = new QPushButton(frame); + ActuatorButton02_44->setObjectName(QString::fromUtf8("ActuatorButton02_44")); + ActuatorButton02_44->setGeometry(QRect(366, 334, 10, 10)); QPalette palette72; palette72.setBrush(QPalette::Active, QPalette::WindowText, brush); palette72.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4485,10 +4517,10 @@ public: palette72.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette72.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette72.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton02_48->setPalette(palette72); - ActuatorButton03_01 = new QPushButton(frame); - ActuatorButton03_01->setObjectName(QString::fromUtf8("ActuatorButton03_01")); - ActuatorButton03_01->setGeometry(QRect(471, 239, 10, 10)); + ActuatorButton02_44->setPalette(palette72); + ActuatorButton02_45 = new QPushButton(frame); + ActuatorButton02_45->setObjectName(QString::fromUtf8("ActuatorButton02_45")); + ActuatorButton02_45->setGeometry(QRect(384, 322, 10, 10)); QPalette palette73; palette73.setBrush(QPalette::Active, QPalette::WindowText, brush); palette73.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4538,10 +4570,10 @@ public: palette73.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette73.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette73.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_01->setPalette(palette73); - ActuatorButton03_02 = new QPushButton(frame); - ActuatorButton03_02->setObjectName(QString::fromUtf8("ActuatorButton03_02")); - ActuatorButton03_02->setGeometry(QRect(502, 241, 10, 10)); + ActuatorButton02_45->setPalette(palette73); + ActuatorButton02_46 = new QPushButton(frame); + ActuatorButton02_46->setObjectName(QString::fromUtf8("ActuatorButton02_46")); + ActuatorButton02_46->setGeometry(QRect(404, 311, 10, 10)); QPalette palette74; palette74.setBrush(QPalette::Active, QPalette::WindowText, brush); palette74.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4591,10 +4623,10 @@ public: palette74.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette74.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette74.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_02->setPalette(palette74); - ActuatorButton03_03 = new QPushButton(frame); - ActuatorButton03_03->setObjectName(QString::fromUtf8("ActuatorButton03_03")); - ActuatorButton03_03->setGeometry(QRect(532, 248, 10, 10)); + ActuatorButton02_46->setPalette(palette74); + ActuatorButton02_47 = new QPushButton(frame); + ActuatorButton02_47->setObjectName(QString::fromUtf8("ActuatorButton02_47")); + ActuatorButton02_47->setGeometry(QRect(427, 305, 10, 10)); QPalette palette75; palette75.setBrush(QPalette::Active, QPalette::WindowText, brush); palette75.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4644,10 +4676,10 @@ public: palette75.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette75.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette75.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_03->setPalette(palette75); - ActuatorButton03_04 = new QPushButton(frame); - ActuatorButton03_04->setObjectName(QString::fromUtf8("ActuatorButton03_04")); - ActuatorButton03_04->setGeometry(QRect(560, 257, 10, 10)); + ActuatorButton02_47->setPalette(palette75); + ActuatorButton02_48 = new QPushButton(frame); + ActuatorButton02_48->setObjectName(QString::fromUtf8("ActuatorButton02_48")); + ActuatorButton02_48->setGeometry(QRect(448, 300, 10, 10)); QPalette palette76; palette76.setBrush(QPalette::Active, QPalette::WindowText, brush); palette76.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4697,10 +4729,10 @@ public: palette76.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette76.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette76.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_04->setPalette(palette76); - ActuatorButton03_05 = new QPushButton(frame); - ActuatorButton03_05->setObjectName(QString::fromUtf8("ActuatorButton03_05")); - ActuatorButton03_05->setGeometry(QRect(588, 270, 10, 10)); + ActuatorButton02_48->setPalette(palette76); + ActuatorButton03_01 = new QPushButton(frame); + ActuatorButton03_01->setObjectName(QString::fromUtf8("ActuatorButton03_01")); + ActuatorButton03_01->setGeometry(QRect(471, 239, 10, 10)); QPalette palette77; palette77.setBrush(QPalette::Active, QPalette::WindowText, brush); palette77.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4750,10 +4782,10 @@ public: palette77.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette77.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette77.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_05->setPalette(palette77); - ActuatorButton03_06 = new QPushButton(frame); - ActuatorButton03_06->setObjectName(QString::fromUtf8("ActuatorButton03_06")); - ActuatorButton03_06->setGeometry(QRect(612, 288, 10, 10)); + ActuatorButton03_01->setPalette(palette77); + ActuatorButton03_02 = new QPushButton(frame); + ActuatorButton03_02->setObjectName(QString::fromUtf8("ActuatorButton03_02")); + ActuatorButton03_02->setGeometry(QRect(502, 241, 10, 10)); QPalette palette78; palette78.setBrush(QPalette::Active, QPalette::WindowText, brush); palette78.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4803,10 +4835,10 @@ public: palette78.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette78.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette78.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_06->setPalette(palette78); - ActuatorButton03_07 = new QPushButton(frame); - ActuatorButton03_07->setObjectName(QString::fromUtf8("ActuatorButton03_07")); - ActuatorButton03_07->setGeometry(QRect(635, 307, 10, 10)); + ActuatorButton03_02->setPalette(palette78); + ActuatorButton03_03 = new QPushButton(frame); + ActuatorButton03_03->setObjectName(QString::fromUtf8("ActuatorButton03_03")); + ActuatorButton03_03->setGeometry(QRect(532, 248, 10, 10)); QPalette palette79; palette79.setBrush(QPalette::Active, QPalette::WindowText, brush); palette79.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4856,10 +4888,10 @@ public: palette79.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette79.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette79.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_07->setPalette(palette79); - ActuatorButton03_08 = new QPushButton(frame); - ActuatorButton03_08->setObjectName(QString::fromUtf8("ActuatorButton03_08")); - ActuatorButton03_08->setGeometry(QRect(654, 330, 10, 10)); + ActuatorButton03_03->setPalette(palette79); + ActuatorButton03_04 = new QPushButton(frame); + ActuatorButton03_04->setObjectName(QString::fromUtf8("ActuatorButton03_04")); + ActuatorButton03_04->setGeometry(QRect(560, 257, 10, 10)); QPalette palette80; palette80.setBrush(QPalette::Active, QPalette::WindowText, brush); palette80.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4909,10 +4941,10 @@ public: palette80.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette80.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette80.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_08->setPalette(palette80); - ActuatorButton03_09 = new QPushButton(frame); - ActuatorButton03_09->setObjectName(QString::fromUtf8("ActuatorButton03_09")); - ActuatorButton03_09->setGeometry(QRect(672, 355, 10, 10)); + ActuatorButton03_04->setPalette(palette80); + ActuatorButton03_05 = new QPushButton(frame); + ActuatorButton03_05->setObjectName(QString::fromUtf8("ActuatorButton03_05")); + ActuatorButton03_05->setGeometry(QRect(588, 270, 10, 10)); QPalette palette81; palette81.setBrush(QPalette::Active, QPalette::WindowText, brush); palette81.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -4962,10 +4994,10 @@ public: palette81.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette81.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette81.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_09->setPalette(palette81); - ActuatorButton03_10 = new QPushButton(frame); - ActuatorButton03_10->setObjectName(QString::fromUtf8("ActuatorButton03_10")); - ActuatorButton03_10->setGeometry(QRect(685, 382, 10, 10)); + ActuatorButton03_05->setPalette(palette81); + ActuatorButton03_06 = new QPushButton(frame); + ActuatorButton03_06->setObjectName(QString::fromUtf8("ActuatorButton03_06")); + ActuatorButton03_06->setGeometry(QRect(612, 288, 10, 10)); QPalette palette82; palette82.setBrush(QPalette::Active, QPalette::WindowText, brush); palette82.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5015,10 +5047,10 @@ public: palette82.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette82.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette82.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_10->setPalette(palette82); - ActuatorButton03_11 = new QPushButton(frame); - ActuatorButton03_11->setObjectName(QString::fromUtf8("ActuatorButton03_11")); - ActuatorButton03_11->setGeometry(QRect(695, 411, 10, 10)); + ActuatorButton03_06->setPalette(palette82); + ActuatorButton03_07 = new QPushButton(frame); + ActuatorButton03_07->setObjectName(QString::fromUtf8("ActuatorButton03_07")); + ActuatorButton03_07->setGeometry(QRect(635, 307, 10, 10)); QPalette palette83; palette83.setBrush(QPalette::Active, QPalette::WindowText, brush); palette83.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5068,10 +5100,10 @@ public: palette83.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette83.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette83.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_11->setPalette(palette83); - ActuatorButton03_12 = new QPushButton(frame); - ActuatorButton03_12->setObjectName(QString::fromUtf8("ActuatorButton03_12")); - ActuatorButton03_12->setGeometry(QRect(701, 441, 10, 10)); + ActuatorButton03_07->setPalette(palette83); + ActuatorButton03_08 = new QPushButton(frame); + ActuatorButton03_08->setObjectName(QString::fromUtf8("ActuatorButton03_08")); + ActuatorButton03_08->setGeometry(QRect(654, 330, 10, 10)); QPalette palette84; palette84.setBrush(QPalette::Active, QPalette::WindowText, brush); palette84.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5121,10 +5153,10 @@ public: palette84.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette84.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette84.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_12->setPalette(palette84); - ActuatorButton03_13 = new QPushButton(frame); - ActuatorButton03_13->setObjectName(QString::fromUtf8("ActuatorButton03_13")); - ActuatorButton03_13->setGeometry(QRect(703, 471, 10, 10)); + ActuatorButton03_08->setPalette(palette84); + ActuatorButton03_09 = new QPushButton(frame); + ActuatorButton03_09->setObjectName(QString::fromUtf8("ActuatorButton03_09")); + ActuatorButton03_09->setGeometry(QRect(672, 355, 10, 10)); QPalette palette85; palette85.setBrush(QPalette::Active, QPalette::WindowText, brush); palette85.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5174,10 +5206,10 @@ public: palette85.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette85.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette85.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_13->setPalette(palette85); - ActuatorButton03_14 = new QPushButton(frame); - ActuatorButton03_14->setObjectName(QString::fromUtf8("ActuatorButton03_14")); - ActuatorButton03_14->setGeometry(QRect(701, 502, 10, 10)); + ActuatorButton03_09->setPalette(palette85); + ActuatorButton03_10 = new QPushButton(frame); + ActuatorButton03_10->setObjectName(QString::fromUtf8("ActuatorButton03_10")); + ActuatorButton03_10->setGeometry(QRect(685, 382, 10, 10)); QPalette palette86; palette86.setBrush(QPalette::Active, QPalette::WindowText, brush); palette86.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5227,10 +5259,10 @@ public: palette86.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette86.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette86.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_14->setPalette(palette86); - ActuatorButton03_15 = new QPushButton(frame); - ActuatorButton03_15->setObjectName(QString::fromUtf8("ActuatorButton03_15")); - ActuatorButton03_15->setGeometry(QRect(695, 532, 10, 10)); + ActuatorButton03_10->setPalette(palette86); + ActuatorButton03_11 = new QPushButton(frame); + ActuatorButton03_11->setObjectName(QString::fromUtf8("ActuatorButton03_11")); + ActuatorButton03_11->setGeometry(QRect(695, 411, 10, 10)); QPalette palette87; palette87.setBrush(QPalette::Active, QPalette::WindowText, brush); palette87.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5280,10 +5312,10 @@ public: palette87.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette87.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette87.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_15->setPalette(palette87); - ActuatorButton03_16 = new QPushButton(frame); - ActuatorButton03_16->setObjectName(QString::fromUtf8("ActuatorButton03_16")); - ActuatorButton03_16->setGeometry(QRect(685, 560, 10, 10)); + ActuatorButton03_11->setPalette(palette87); + ActuatorButton03_12 = new QPushButton(frame); + ActuatorButton03_12->setObjectName(QString::fromUtf8("ActuatorButton03_12")); + ActuatorButton03_12->setGeometry(QRect(701, 441, 10, 10)); QPalette palette88; palette88.setBrush(QPalette::Active, QPalette::WindowText, brush); palette88.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5333,10 +5365,10 @@ public: palette88.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette88.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette88.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_16->setPalette(palette88); - ActuatorButton03_17 = new QPushButton(frame); - ActuatorButton03_17->setObjectName(QString::fromUtf8("ActuatorButton03_17")); - ActuatorButton03_17->setGeometry(QRect(672, 588, 10, 10)); + ActuatorButton03_12->setPalette(palette88); + ActuatorButton03_13 = new QPushButton(frame); + ActuatorButton03_13->setObjectName(QString::fromUtf8("ActuatorButton03_13")); + ActuatorButton03_13->setGeometry(QRect(703, 471, 10, 10)); QPalette palette89; palette89.setBrush(QPalette::Active, QPalette::WindowText, brush); palette89.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5386,10 +5418,10 @@ public: palette89.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette89.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette89.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_17->setPalette(palette89); - ActuatorButton03_18 = new QPushButton(frame); - ActuatorButton03_18->setObjectName(QString::fromUtf8("ActuatorButton03_18")); - ActuatorButton03_18->setGeometry(QRect(655, 613, 10, 10)); + ActuatorButton03_13->setPalette(palette89); + ActuatorButton03_14 = new QPushButton(frame); + ActuatorButton03_14->setObjectName(QString::fromUtf8("ActuatorButton03_14")); + ActuatorButton03_14->setGeometry(QRect(701, 502, 10, 10)); QPalette palette90; palette90.setBrush(QPalette::Active, QPalette::WindowText, brush); palette90.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5439,10 +5471,10 @@ public: palette90.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette90.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette90.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_18->setPalette(palette90); - ActuatorButton03_19 = new QPushButton(frame); - ActuatorButton03_19->setObjectName(QString::fromUtf8("ActuatorButton03_19")); - ActuatorButton03_19->setGeometry(QRect(635, 636, 10, 10)); + ActuatorButton03_14->setPalette(palette90); + ActuatorButton03_15 = new QPushButton(frame); + ActuatorButton03_15->setObjectName(QString::fromUtf8("ActuatorButton03_15")); + ActuatorButton03_15->setGeometry(QRect(695, 532, 10, 10)); QPalette palette91; palette91.setBrush(QPalette::Active, QPalette::WindowText, brush); palette91.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5492,10 +5524,10 @@ public: palette91.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette91.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette91.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_19->setPalette(palette91); - ActuatorButton03_20 = new QPushButton(frame); - ActuatorButton03_20->setObjectName(QString::fromUtf8("ActuatorButton03_20")); - ActuatorButton03_20->setGeometry(QRect(612, 656, 10, 10)); + ActuatorButton03_15->setPalette(palette91); + ActuatorButton03_16 = new QPushButton(frame); + ActuatorButton03_16->setObjectName(QString::fromUtf8("ActuatorButton03_16")); + ActuatorButton03_16->setGeometry(QRect(685, 560, 10, 10)); QPalette palette92; palette92.setBrush(QPalette::Active, QPalette::WindowText, brush); palette92.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5545,10 +5577,10 @@ public: palette92.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette92.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette92.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_20->setPalette(palette92); - ActuatorButton03_21 = new QPushButton(frame); - ActuatorButton03_21->setObjectName(QString::fromUtf8("ActuatorButton03_21")); - ActuatorButton03_21->setGeometry(QRect(587, 673, 10, 10)); + ActuatorButton03_16->setPalette(palette92); + ActuatorButton03_17 = new QPushButton(frame); + ActuatorButton03_17->setObjectName(QString::fromUtf8("ActuatorButton03_17")); + ActuatorButton03_17->setGeometry(QRect(672, 588, 10, 10)); QPalette palette93; palette93.setBrush(QPalette::Active, QPalette::WindowText, brush); palette93.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5598,10 +5630,10 @@ public: palette93.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette93.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette93.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_21->setPalette(palette93); - ActuatorButton03_22 = new QPushButton(frame); - ActuatorButton03_22->setObjectName(QString::fromUtf8("ActuatorButton03_22")); - ActuatorButton03_22->setGeometry(QRect(560, 687, 10, 10)); + ActuatorButton03_17->setPalette(palette93); + ActuatorButton03_18 = new QPushButton(frame); + ActuatorButton03_18->setObjectName(QString::fromUtf8("ActuatorButton03_18")); + ActuatorButton03_18->setGeometry(QRect(655, 613, 10, 10)); QPalette palette94; palette94.setBrush(QPalette::Active, QPalette::WindowText, brush); palette94.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5651,10 +5683,10 @@ public: palette94.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette94.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette94.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_22->setPalette(palette94); - ActuatorButton03_23 = new QPushButton(frame); - ActuatorButton03_23->setObjectName(QString::fromUtf8("ActuatorButton03_23")); - ActuatorButton03_23->setGeometry(QRect(531, 696, 10, 10)); + ActuatorButton03_18->setPalette(palette94); + ActuatorButton03_19 = new QPushButton(frame); + ActuatorButton03_19->setObjectName(QString::fromUtf8("ActuatorButton03_19")); + ActuatorButton03_19->setGeometry(QRect(635, 636, 10, 10)); QPalette palette95; palette95.setBrush(QPalette::Active, QPalette::WindowText, brush); palette95.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5704,10 +5736,10 @@ public: palette95.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette95.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette95.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_23->setPalette(palette95); - ActuatorButton03_24 = new QPushButton(frame); - ActuatorButton03_24->setObjectName(QString::fromUtf8("ActuatorButton03_24")); - ActuatorButton03_24->setGeometry(QRect(501, 701, 10, 10)); + ActuatorButton03_19->setPalette(palette95); + ActuatorButton03_20 = new QPushButton(frame); + ActuatorButton03_20->setObjectName(QString::fromUtf8("ActuatorButton03_20")); + ActuatorButton03_20->setGeometry(QRect(612, 656, 10, 10)); QPalette palette96; palette96.setBrush(QPalette::Active, QPalette::WindowText, brush); palette96.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5757,10 +5789,10 @@ public: palette96.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette96.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette96.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_24->setPalette(palette96); - ActuatorButton03_25 = new QPushButton(frame); - ActuatorButton03_25->setObjectName(QString::fromUtf8("ActuatorButton03_25")); - ActuatorButton03_25->setGeometry(QRect(471, 704, 10, 10)); + ActuatorButton03_20->setPalette(palette96); + ActuatorButton03_21 = new QPushButton(frame); + ActuatorButton03_21->setObjectName(QString::fromUtf8("ActuatorButton03_21")); + ActuatorButton03_21->setGeometry(QRect(587, 673, 10, 10)); QPalette palette97; palette97.setBrush(QPalette::Active, QPalette::WindowText, brush); palette97.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5810,10 +5842,10 @@ public: palette97.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette97.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette97.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_25->setPalette(palette97); - ActuatorButton03_26 = new QPushButton(frame); - ActuatorButton03_26->setObjectName(QString::fromUtf8("ActuatorButton03_26")); - ActuatorButton03_26->setGeometry(QRect(440, 702, 10, 10)); + ActuatorButton03_21->setPalette(palette97); + ActuatorButton03_22 = new QPushButton(frame); + ActuatorButton03_22->setObjectName(QString::fromUtf8("ActuatorButton03_22")); + ActuatorButton03_22->setGeometry(QRect(560, 687, 10, 10)); QPalette palette98; palette98.setBrush(QPalette::Active, QPalette::WindowText, brush); palette98.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5863,10 +5895,10 @@ public: palette98.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette98.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette98.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_26->setPalette(palette98); - ActuatorButton03_27 = new QPushButton(frame); - ActuatorButton03_27->setObjectName(QString::fromUtf8("ActuatorButton03_27")); - ActuatorButton03_27->setGeometry(QRect(410, 695, 10, 10)); + ActuatorButton03_22->setPalette(palette98); + ActuatorButton03_23 = new QPushButton(frame); + ActuatorButton03_23->setObjectName(QString::fromUtf8("ActuatorButton03_23")); + ActuatorButton03_23->setGeometry(QRect(531, 696, 10, 10)); QPalette palette99; palette99.setBrush(QPalette::Active, QPalette::WindowText, brush); palette99.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5916,10 +5948,10 @@ public: palette99.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette99.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette99.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_27->setPalette(palette99); - ActuatorButton03_28 = new QPushButton(frame); - ActuatorButton03_28->setObjectName(QString::fromUtf8("ActuatorButton03_28")); - ActuatorButton03_28->setGeometry(QRect(382, 686, 10, 10)); + ActuatorButton03_23->setPalette(palette99); + ActuatorButton03_24 = new QPushButton(frame); + ActuatorButton03_24->setObjectName(QString::fromUtf8("ActuatorButton03_24")); + ActuatorButton03_24->setGeometry(QRect(501, 701, 10, 10)); QPalette palette100; palette100.setBrush(QPalette::Active, QPalette::WindowText, brush); palette100.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -5969,10 +6001,10 @@ public: palette100.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette100.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette100.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_28->setPalette(palette100); - ActuatorButton03_29 = new QPushButton(frame); - ActuatorButton03_29->setObjectName(QString::fromUtf8("ActuatorButton03_29")); - ActuatorButton03_29->setGeometry(QRect(354, 672, 10, 10)); + ActuatorButton03_24->setPalette(palette100); + ActuatorButton03_25 = new QPushButton(frame); + ActuatorButton03_25->setObjectName(QString::fromUtf8("ActuatorButton03_25")); + ActuatorButton03_25->setGeometry(QRect(471, 704, 10, 10)); QPalette palette101; palette101.setBrush(QPalette::Active, QPalette::WindowText, brush); palette101.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6022,10 +6054,10 @@ public: palette101.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette101.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette101.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_29->setPalette(palette101); - ActuatorButton03_30 = new QPushButton(frame); - ActuatorButton03_30->setObjectName(QString::fromUtf8("ActuatorButton03_30")); - ActuatorButton03_30->setGeometry(QRect(329, 656, 10, 10)); + ActuatorButton03_25->setPalette(palette101); + ActuatorButton03_26 = new QPushButton(frame); + ActuatorButton03_26->setObjectName(QString::fromUtf8("ActuatorButton03_26")); + ActuatorButton03_26->setGeometry(QRect(440, 702, 10, 10)); QPalette palette102; palette102.setBrush(QPalette::Active, QPalette::WindowText, brush); palette102.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6075,10 +6107,10 @@ public: palette102.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette102.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette102.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_30->setPalette(palette102); - ActuatorButton03_31 = new QPushButton(frame); - ActuatorButton03_31->setObjectName(QString::fromUtf8("ActuatorButton03_31")); - ActuatorButton03_31->setGeometry(QRect(306, 635, 10, 10)); + ActuatorButton03_26->setPalette(palette102); + ActuatorButton03_27 = new QPushButton(frame); + ActuatorButton03_27->setObjectName(QString::fromUtf8("ActuatorButton03_27")); + ActuatorButton03_27->setGeometry(QRect(410, 695, 10, 10)); QPalette palette103; palette103.setBrush(QPalette::Active, QPalette::WindowText, brush); palette103.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6128,10 +6160,10 @@ public: palette103.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette103.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette103.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_31->setPalette(palette103); - ActuatorButton03_32 = new QPushButton(frame); - ActuatorButton03_32->setObjectName(QString::fromUtf8("ActuatorButton03_32")); - ActuatorButton03_32->setGeometry(QRect(286, 613, 10, 10)); + ActuatorButton03_27->setPalette(palette103); + ActuatorButton03_28 = new QPushButton(frame); + ActuatorButton03_28->setObjectName(QString::fromUtf8("ActuatorButton03_28")); + ActuatorButton03_28->setGeometry(QRect(382, 686, 10, 10)); QPalette palette104; palette104.setBrush(QPalette::Active, QPalette::WindowText, brush); palette104.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6181,10 +6213,10 @@ public: palette104.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette104.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette104.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_32->setPalette(palette104); - ActuatorButton03_33 = new QPushButton(frame); - ActuatorButton03_33->setObjectName(QString::fromUtf8("ActuatorButton03_33")); - ActuatorButton03_33->setGeometry(QRect(269, 587, 10, 10)); + ActuatorButton03_28->setPalette(palette104); + ActuatorButton03_29 = new QPushButton(frame); + ActuatorButton03_29->setObjectName(QString::fromUtf8("ActuatorButton03_29")); + ActuatorButton03_29->setGeometry(QRect(354, 672, 10, 10)); QPalette palette105; palette105.setBrush(QPalette::Active, QPalette::WindowText, brush); palette105.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6234,10 +6266,10 @@ public: palette105.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette105.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette105.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_33->setPalette(palette105); - ActuatorButton03_34 = new QPushButton(frame); - ActuatorButton03_34->setObjectName(QString::fromUtf8("ActuatorButton03_34")); - ActuatorButton03_34->setGeometry(QRect(257, 559, 10, 10)); + ActuatorButton03_29->setPalette(palette105); + ActuatorButton03_30 = new QPushButton(frame); + ActuatorButton03_30->setObjectName(QString::fromUtf8("ActuatorButton03_30")); + ActuatorButton03_30->setGeometry(QRect(329, 656, 10, 10)); QPalette palette106; palette106.setBrush(QPalette::Active, QPalette::WindowText, brush); palette106.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6287,10 +6319,10 @@ public: palette106.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette106.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette106.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_34->setPalette(palette106); - ActuatorButton03_35 = new QPushButton(frame); - ActuatorButton03_35->setObjectName(QString::fromUtf8("ActuatorButton03_35")); - ActuatorButton03_35->setGeometry(QRect(247, 531, 10, 10)); + ActuatorButton03_30->setPalette(palette106); + ActuatorButton03_31 = new QPushButton(frame); + ActuatorButton03_31->setObjectName(QString::fromUtf8("ActuatorButton03_31")); + ActuatorButton03_31->setGeometry(QRect(306, 635, 10, 10)); QPalette palette107; palette107.setBrush(QPalette::Active, QPalette::WindowText, brush); palette107.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6340,10 +6372,10 @@ public: palette107.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette107.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette107.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_35->setPalette(palette107); - ActuatorButton03_36 = new QPushButton(frame); - ActuatorButton03_36->setObjectName(QString::fromUtf8("ActuatorButton03_36")); - ActuatorButton03_36->setGeometry(QRect(240, 501, 10, 10)); + ActuatorButton03_31->setPalette(palette107); + ActuatorButton03_32 = new QPushButton(frame); + ActuatorButton03_32->setObjectName(QString::fromUtf8("ActuatorButton03_32")); + ActuatorButton03_32->setGeometry(QRect(286, 613, 10, 10)); QPalette palette108; palette108.setBrush(QPalette::Active, QPalette::WindowText, brush); palette108.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6393,10 +6425,10 @@ public: palette108.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette108.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette108.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_36->setPalette(palette108); - ActuatorButton03_37 = new QPushButton(frame); - ActuatorButton03_37->setObjectName(QString::fromUtf8("ActuatorButton03_37")); - ActuatorButton03_37->setGeometry(QRect(238, 471, 10, 10)); + ActuatorButton03_32->setPalette(palette108); + ActuatorButton03_33 = new QPushButton(frame); + ActuatorButton03_33->setObjectName(QString::fromUtf8("ActuatorButton03_33")); + ActuatorButton03_33->setGeometry(QRect(269, 587, 10, 10)); QPalette palette109; palette109.setBrush(QPalette::Active, QPalette::WindowText, brush); palette109.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6446,10 +6478,10 @@ public: palette109.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette109.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette109.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_37->setPalette(palette109); - ActuatorButton03_38 = new QPushButton(frame); - ActuatorButton03_38->setObjectName(QString::fromUtf8("ActuatorButton03_38")); - ActuatorButton03_38->setGeometry(QRect(240, 441, 10, 10)); + ActuatorButton03_33->setPalette(palette109); + ActuatorButton03_34 = new QPushButton(frame); + ActuatorButton03_34->setObjectName(QString::fromUtf8("ActuatorButton03_34")); + ActuatorButton03_34->setGeometry(QRect(257, 559, 10, 10)); QPalette palette110; palette110.setBrush(QPalette::Active, QPalette::WindowText, brush); palette110.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6499,10 +6531,10 @@ public: palette110.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette110.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette110.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_38->setPalette(palette110); - ActuatorButton03_39 = new QPushButton(frame); - ActuatorButton03_39->setObjectName(QString::fromUtf8("ActuatorButton03_39")); - ActuatorButton03_39->setGeometry(QRect(246, 411, 10, 10)); + ActuatorButton03_34->setPalette(palette110); + ActuatorButton03_35 = new QPushButton(frame); + ActuatorButton03_35->setObjectName(QString::fromUtf8("ActuatorButton03_35")); + ActuatorButton03_35->setGeometry(QRect(247, 531, 10, 10)); QPalette palette111; palette111.setBrush(QPalette::Active, QPalette::WindowText, brush); palette111.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6552,10 +6584,10 @@ public: palette111.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette111.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette111.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_39->setPalette(palette111); - ActuatorButton03_40 = new QPushButton(frame); - ActuatorButton03_40->setObjectName(QString::fromUtf8("ActuatorButton03_40")); - ActuatorButton03_40->setGeometry(QRect(256, 383, 10, 10)); + ActuatorButton03_35->setPalette(palette111); + ActuatorButton03_36 = new QPushButton(frame); + ActuatorButton03_36->setObjectName(QString::fromUtf8("ActuatorButton03_36")); + ActuatorButton03_36->setGeometry(QRect(240, 501, 10, 10)); QPalette palette112; palette112.setBrush(QPalette::Active, QPalette::WindowText, brush); palette112.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6605,10 +6637,10 @@ public: palette112.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette112.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette112.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_40->setPalette(palette112); - ActuatorButton03_41 = new QPushButton(frame); - ActuatorButton03_41->setObjectName(QString::fromUtf8("ActuatorButton03_41")); - ActuatorButton03_41->setGeometry(QRect(269, 355, 10, 10)); + ActuatorButton03_36->setPalette(palette112); + ActuatorButton03_37 = new QPushButton(frame); + ActuatorButton03_37->setObjectName(QString::fromUtf8("ActuatorButton03_37")); + ActuatorButton03_37->setGeometry(QRect(238, 471, 10, 10)); QPalette palette113; palette113.setBrush(QPalette::Active, QPalette::WindowText, brush); palette113.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6658,10 +6690,10 @@ public: palette113.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette113.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette113.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_41->setPalette(palette113); - ActuatorButton03_42 = new QPushButton(frame); - ActuatorButton03_42->setObjectName(QString::fromUtf8("ActuatorButton03_42")); - ActuatorButton03_42->setGeometry(QRect(287, 330, 10, 10)); + ActuatorButton03_37->setPalette(palette113); + ActuatorButton03_38 = new QPushButton(frame); + ActuatorButton03_38->setObjectName(QString::fromUtf8("ActuatorButton03_38")); + ActuatorButton03_38->setGeometry(QRect(240, 441, 10, 10)); QPalette palette114; palette114.setBrush(QPalette::Active, QPalette::WindowText, brush); palette114.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6711,10 +6743,10 @@ public: palette114.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette114.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette114.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_42->setPalette(palette114); - ActuatorButton03_43 = new QPushButton(frame); - ActuatorButton03_43->setObjectName(QString::fromUtf8("ActuatorButton03_43")); - ActuatorButton03_43->setGeometry(QRect(306, 307, 10, 10)); + ActuatorButton03_38->setPalette(palette114); + ActuatorButton03_39 = new QPushButton(frame); + ActuatorButton03_39->setObjectName(QString::fromUtf8("ActuatorButton03_39")); + ActuatorButton03_39->setGeometry(QRect(246, 411, 10, 10)); QPalette palette115; palette115.setBrush(QPalette::Active, QPalette::WindowText, brush); palette115.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6764,10 +6796,10 @@ public: palette115.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette115.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette115.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_43->setPalette(palette115); - ActuatorButton03_44 = new QPushButton(frame); - ActuatorButton03_44->setObjectName(QString::fromUtf8("ActuatorButton03_44")); - ActuatorButton03_44->setGeometry(QRect(329, 287, 10, 10)); + ActuatorButton03_39->setPalette(palette115); + ActuatorButton03_40 = new QPushButton(frame); + ActuatorButton03_40->setObjectName(QString::fromUtf8("ActuatorButton03_40")); + ActuatorButton03_40->setGeometry(QRect(256, 383, 10, 10)); QPalette palette116; palette116.setBrush(QPalette::Active, QPalette::WindowText, brush); palette116.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6817,10 +6849,10 @@ public: palette116.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette116.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette116.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_44->setPalette(palette116); - ActuatorButton03_45 = new QPushButton(frame); - ActuatorButton03_45->setObjectName(QString::fromUtf8("ActuatorButton03_45")); - ActuatorButton03_45->setGeometry(QRect(354, 270, 10, 10)); + ActuatorButton03_40->setPalette(palette116); + ActuatorButton03_41 = new QPushButton(frame); + ActuatorButton03_41->setObjectName(QString::fromUtf8("ActuatorButton03_41")); + ActuatorButton03_41->setGeometry(QRect(269, 355, 10, 10)); QPalette palette117; palette117.setBrush(QPalette::Active, QPalette::WindowText, brush); palette117.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6870,10 +6902,10 @@ public: palette117.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette117.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette117.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_45->setPalette(palette117); - ActuatorButton03_46 = new QPushButton(frame); - ActuatorButton03_46->setObjectName(QString::fromUtf8("ActuatorButton03_46")); - ActuatorButton03_46->setGeometry(QRect(382, 257, 10, 10)); + ActuatorButton03_41->setPalette(palette117); + ActuatorButton03_42 = new QPushButton(frame); + ActuatorButton03_42->setObjectName(QString::fromUtf8("ActuatorButton03_42")); + ActuatorButton03_42->setGeometry(QRect(287, 330, 10, 10)); QPalette palette118; palette118.setBrush(QPalette::Active, QPalette::WindowText, brush); palette118.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6923,10 +6955,10 @@ public: palette118.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette118.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette118.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_46->setPalette(palette118); - ActuatorButton03_47 = new QPushButton(frame); - ActuatorButton03_47->setObjectName(QString::fromUtf8("ActuatorButton03_47")); - ActuatorButton03_47->setGeometry(QRect(410, 247, 10, 10)); + ActuatorButton03_42->setPalette(palette118); + ActuatorButton03_43 = new QPushButton(frame); + ActuatorButton03_43->setObjectName(QString::fromUtf8("ActuatorButton03_43")); + ActuatorButton03_43->setGeometry(QRect(306, 307, 10, 10)); QPalette palette119; palette119.setBrush(QPalette::Active, QPalette::WindowText, brush); palette119.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -6976,10 +7008,10 @@ public: palette119.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette119.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette119.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_47->setPalette(palette119); - ActuatorButton03_48 = new QPushButton(frame); - ActuatorButton03_48->setObjectName(QString::fromUtf8("ActuatorButton03_48")); - ActuatorButton03_48->setGeometry(QRect(440, 241, 10, 10)); + ActuatorButton03_43->setPalette(palette119); + ActuatorButton03_44 = new QPushButton(frame); + ActuatorButton03_44->setObjectName(QString::fromUtf8("ActuatorButton03_44")); + ActuatorButton03_44->setGeometry(QRect(329, 287, 10, 10)); QPalette palette120; palette120.setBrush(QPalette::Active, QPalette::WindowText, brush); palette120.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7029,10 +7061,10 @@ public: palette120.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette120.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette120.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton03_48->setPalette(palette120); - ActuatorButton04_02 = new QPushButton(frame); - ActuatorButton04_02->setObjectName(QString::fromUtf8("ActuatorButton04_02")); - ActuatorButton04_02->setGeometry(QRect(509, 183, 10, 10)); + ActuatorButton03_44->setPalette(palette120); + ActuatorButton03_45 = new QPushButton(frame); + ActuatorButton03_45->setObjectName(QString::fromUtf8("ActuatorButton03_45")); + ActuatorButton03_45->setGeometry(QRect(354, 270, 10, 10)); QPalette palette121; palette121.setBrush(QPalette::Active, QPalette::WindowText, brush); palette121.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7082,10 +7114,10 @@ public: palette121.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette121.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette121.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_02->setPalette(palette121); - ActuatorButton04_03 = new QPushButton(frame); - ActuatorButton04_03->setObjectName(QString::fromUtf8("ActuatorButton04_03")); - ActuatorButton04_03->setGeometry(QRect(546, 190, 10, 10)); + ActuatorButton03_45->setPalette(palette121); + ActuatorButton03_46 = new QPushButton(frame); + ActuatorButton03_46->setObjectName(QString::fromUtf8("ActuatorButton03_46")); + ActuatorButton03_46->setGeometry(QRect(382, 257, 10, 10)); QPalette palette122; palette122.setBrush(QPalette::Active, QPalette::WindowText, brush); palette122.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7135,10 +7167,10 @@ public: palette122.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette122.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette122.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_03->setPalette(palette122); - ActuatorButton04_04 = new QPushButton(frame); - ActuatorButton04_04->setObjectName(QString::fromUtf8("ActuatorButton04_04")); - ActuatorButton04_04->setGeometry(QRect(582, 202, 10, 10)); + ActuatorButton03_46->setPalette(palette122); + ActuatorButton03_47 = new QPushButton(frame); + ActuatorButton03_47->setObjectName(QString::fromUtf8("ActuatorButton03_47")); + ActuatorButton03_47->setGeometry(QRect(410, 247, 10, 10)); QPalette palette123; palette123.setBrush(QPalette::Active, QPalette::WindowText, brush); palette123.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7188,10 +7220,10 @@ public: palette123.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette123.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette123.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_04->setPalette(palette123); - ActuatorButton04_05 = new QPushButton(frame); - ActuatorButton04_05->setObjectName(QString::fromUtf8("ActuatorButton04_05")); - ActuatorButton04_05->setGeometry(QRect(616, 220, 10, 10)); + ActuatorButton03_47->setPalette(palette123); + ActuatorButton03_48 = new QPushButton(frame); + ActuatorButton03_48->setObjectName(QString::fromUtf8("ActuatorButton03_48")); + ActuatorButton03_48->setGeometry(QRect(440, 241, 10, 10)); QPalette palette124; palette124.setBrush(QPalette::Active, QPalette::WindowText, brush); palette124.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7241,10 +7273,10 @@ public: palette124.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette124.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette124.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_05->setPalette(palette124); - ActuatorButton04_07 = new QPushButton(frame); - ActuatorButton04_07->setObjectName(QString::fromUtf8("ActuatorButton04_07")); - ActuatorButton04_07->setGeometry(QRect(677, 265, 10, 10)); + ActuatorButton03_48->setPalette(palette124); + ActuatorButton04_02 = new QPushButton(frame); + ActuatorButton04_02->setObjectName(QString::fromUtf8("ActuatorButton04_02")); + ActuatorButton04_02->setGeometry(QRect(509, 183, 10, 10)); QPalette palette125; palette125.setBrush(QPalette::Active, QPalette::WindowText, brush); palette125.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7294,10 +7326,10 @@ public: palette125.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette125.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette125.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_07->setPalette(palette125); - ActuatorButton04_09 = new QPushButton(frame); - ActuatorButton04_09->setObjectName(QString::fromUtf8("ActuatorButton04_09")); - ActuatorButton04_09->setGeometry(QRect(723, 326, 10, 10)); + ActuatorButton04_02->setPalette(palette125); + ActuatorButton04_03 = new QPushButton(frame); + ActuatorButton04_03->setObjectName(QString::fromUtf8("ActuatorButton04_03")); + ActuatorButton04_03->setGeometry(QRect(546, 190, 10, 10)); QPalette palette126; palette126.setBrush(QPalette::Active, QPalette::WindowText, brush); palette126.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7347,10 +7379,10 @@ public: palette126.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette126.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette126.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_09->setPalette(palette126); - ActuatorButton04_10 = new QPushButton(frame); - ActuatorButton04_10->setObjectName(QString::fromUtf8("ActuatorButton04_10")); - ActuatorButton04_10->setGeometry(QRect(740, 360, 10, 10)); + ActuatorButton04_03->setPalette(palette126); + ActuatorButton04_04 = new QPushButton(frame); + ActuatorButton04_04->setObjectName(QString::fromUtf8("ActuatorButton04_04")); + ActuatorButton04_04->setGeometry(QRect(582, 202, 10, 10)); QPalette palette127; palette127.setBrush(QPalette::Active, QPalette::WindowText, brush); palette127.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7400,10 +7432,10 @@ public: palette127.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette127.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette127.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_10->setPalette(palette127); - ActuatorButton04_11 = new QPushButton(frame); - ActuatorButton04_11->setObjectName(QString::fromUtf8("ActuatorButton04_11")); - ActuatorButton04_11->setGeometry(QRect(752, 395, 10, 10)); + ActuatorButton04_04->setPalette(palette127); + ActuatorButton04_05 = new QPushButton(frame); + ActuatorButton04_05->setObjectName(QString::fromUtf8("ActuatorButton04_05")); + ActuatorButton04_05->setGeometry(QRect(616, 220, 10, 10)); QPalette palette128; palette128.setBrush(QPalette::Active, QPalette::WindowText, brush); palette128.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7453,10 +7485,10 @@ public: palette128.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette128.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette128.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_11->setPalette(palette128); - ActuatorButton04_12 = new QPushButton(frame); - ActuatorButton04_12->setObjectName(QString::fromUtf8("ActuatorButton04_12")); - ActuatorButton04_12->setGeometry(QRect(759, 433, 10, 10)); + ActuatorButton04_05->setPalette(palette128); + ActuatorButton04_07 = new QPushButton(frame); + ActuatorButton04_07->setObjectName(QString::fromUtf8("ActuatorButton04_07")); + ActuatorButton04_07->setGeometry(QRect(677, 265, 10, 10)); QPalette palette129; palette129.setBrush(QPalette::Active, QPalette::WindowText, brush); palette129.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7506,10 +7538,10 @@ public: palette129.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette129.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette129.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_12->setPalette(palette129); - ActuatorButton04_13 = new QPushButton(frame); - ActuatorButton04_13->setObjectName(QString::fromUtf8("ActuatorButton04_13")); - ActuatorButton04_13->setGeometry(QRect(762, 471, 10, 10)); + ActuatorButton04_07->setPalette(palette129); + ActuatorButton04_09 = new QPushButton(frame); + ActuatorButton04_09->setObjectName(QString::fromUtf8("ActuatorButton04_09")); + ActuatorButton04_09->setGeometry(QRect(723, 326, 10, 10)); QPalette palette130; palette130.setBrush(QPalette::Active, QPalette::WindowText, brush); palette130.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7559,10 +7591,10 @@ public: palette130.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette130.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette130.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_13->setPalette(palette130); - ActuatorButton04_14 = new QPushButton(frame); - ActuatorButton04_14->setObjectName(QString::fromUtf8("ActuatorButton04_14")); - ActuatorButton04_14->setGeometry(QRect(760, 509, 10, 10)); + ActuatorButton04_09->setPalette(palette130); + ActuatorButton04_10 = new QPushButton(frame); + ActuatorButton04_10->setObjectName(QString::fromUtf8("ActuatorButton04_10")); + ActuatorButton04_10->setGeometry(QRect(740, 360, 10, 10)); QPalette palette131; palette131.setBrush(QPalette::Active, QPalette::WindowText, brush); palette131.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7612,11 +7644,11 @@ public: palette131.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette131.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette131.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_14->setPalette(palette131); - ActuatorButton04_15 = new QPushButton(frame); - ActuatorButton04_15->setObjectName(QString::fromUtf8("ActuatorButton04_15")); - ActuatorButton04_15->setGeometry(QRect(752, 547, 10, 10)); - QPalette palette132; + ActuatorButton04_10->setPalette(palette131); + ActuatorButton04_11 = new QPushButton(frame); + ActuatorButton04_11->setObjectName(QString::fromUtf8("ActuatorButton04_11")); + ActuatorButton04_11->setGeometry(QRect(752, 395, 10, 10)); + QPalette palette132; palette132.setBrush(QPalette::Active, QPalette::WindowText, brush); palette132.setBrush(QPalette::Active, QPalette::Button, brush1); palette132.setBrush(QPalette::Active, QPalette::Light, brush2); @@ -7665,10 +7697,10 @@ public: palette132.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette132.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette132.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_15->setPalette(palette132); - ActuatorButton04_16 = new QPushButton(frame); - ActuatorButton04_16->setObjectName(QString::fromUtf8("ActuatorButton04_16")); - ActuatorButton04_16->setGeometry(QRect(740, 582, 10, 10)); + ActuatorButton04_11->setPalette(palette132); + ActuatorButton04_12 = new QPushButton(frame); + ActuatorButton04_12->setObjectName(QString::fromUtf8("ActuatorButton04_12")); + ActuatorButton04_12->setGeometry(QRect(759, 433, 10, 10)); QPalette palette133; palette133.setBrush(QPalette::Active, QPalette::WindowText, brush); palette133.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7718,10 +7750,10 @@ public: palette133.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette133.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette133.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_16->setPalette(palette133); - ActuatorButton04_17 = new QPushButton(frame); - ActuatorButton04_17->setObjectName(QString::fromUtf8("ActuatorButton04_17")); - ActuatorButton04_17->setGeometry(QRect(723, 616, 10, 10)); + ActuatorButton04_12->setPalette(palette133); + ActuatorButton04_13 = new QPushButton(frame); + ActuatorButton04_13->setObjectName(QString::fromUtf8("ActuatorButton04_13")); + ActuatorButton04_13->setGeometry(QRect(762, 471, 10, 10)); QPalette palette134; palette134.setBrush(QPalette::Active, QPalette::WindowText, brush); palette134.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7771,10 +7803,10 @@ public: palette134.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette134.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette134.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_17->setPalette(palette134); - ActuatorButton04_19 = new QPushButton(frame); - ActuatorButton04_19->setObjectName(QString::fromUtf8("ActuatorButton04_19")); - ActuatorButton04_19->setGeometry(QRect(677, 677, 10, 10)); + ActuatorButton04_13->setPalette(palette134); + ActuatorButton04_14 = new QPushButton(frame); + ActuatorButton04_14->setObjectName(QString::fromUtf8("ActuatorButton04_14")); + ActuatorButton04_14->setGeometry(QRect(760, 509, 10, 10)); QPalette palette135; palette135.setBrush(QPalette::Active, QPalette::WindowText, brush); palette135.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7824,10 +7856,10 @@ public: palette135.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette135.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette135.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_19->setPalette(palette135); - ActuatorButton04_21 = new QPushButton(frame); - ActuatorButton04_21->setObjectName(QString::fromUtf8("ActuatorButton04_21")); - ActuatorButton04_21->setGeometry(QRect(616, 724, 10, 10)); + ActuatorButton04_14->setPalette(palette135); + ActuatorButton04_15 = new QPushButton(frame); + ActuatorButton04_15->setObjectName(QString::fromUtf8("ActuatorButton04_15")); + ActuatorButton04_15->setGeometry(QRect(752, 547, 10, 10)); QPalette palette136; palette136.setBrush(QPalette::Active, QPalette::WindowText, brush); palette136.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7877,10 +7909,10 @@ public: palette136.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette136.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette136.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_21->setPalette(palette136); - ActuatorButton04_22 = new QPushButton(frame); - ActuatorButton04_22->setObjectName(QString::fromUtf8("ActuatorButton04_22")); - ActuatorButton04_22->setGeometry(QRect(583, 740, 10, 10)); + ActuatorButton04_15->setPalette(palette136); + ActuatorButton04_16 = new QPushButton(frame); + ActuatorButton04_16->setObjectName(QString::fromUtf8("ActuatorButton04_16")); + ActuatorButton04_16->setGeometry(QRect(740, 582, 10, 10)); QPalette palette137; palette137.setBrush(QPalette::Active, QPalette::WindowText, brush); palette137.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7930,10 +7962,10 @@ public: palette137.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette137.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette137.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_22->setPalette(palette137); - ActuatorButton04_23 = new QPushButton(frame); - ActuatorButton04_23->setObjectName(QString::fromUtf8("ActuatorButton04_23")); - ActuatorButton04_23->setGeometry(QRect(546, 753, 10, 10)); + ActuatorButton04_16->setPalette(palette137); + ActuatorButton04_17 = new QPushButton(frame); + ActuatorButton04_17->setObjectName(QString::fromUtf8("ActuatorButton04_17")); + ActuatorButton04_17->setGeometry(QRect(723, 616, 10, 10)); QPalette palette138; palette138.setBrush(QPalette::Active, QPalette::WindowText, brush); palette138.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -7983,10 +8015,10 @@ public: palette138.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette138.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette138.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_23->setPalette(palette138); - ActuatorButton04_24 = new QPushButton(frame); - ActuatorButton04_24->setObjectName(QString::fromUtf8("ActuatorButton04_24")); - ActuatorButton04_24->setGeometry(QRect(508, 760, 10, 10)); + ActuatorButton04_17->setPalette(palette138); + ActuatorButton04_19 = new QPushButton(frame); + ActuatorButton04_19->setObjectName(QString::fromUtf8("ActuatorButton04_19")); + ActuatorButton04_19->setGeometry(QRect(677, 677, 10, 10)); QPalette palette139; palette139.setBrush(QPalette::Active, QPalette::WindowText, brush); palette139.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8036,10 +8068,10 @@ public: palette139.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette139.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette139.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_24->setPalette(palette139); - ActuatorButton04_25 = new QPushButton(frame); - ActuatorButton04_25->setObjectName(QString::fromUtf8("ActuatorButton04_25")); - ActuatorButton04_25->setGeometry(QRect(470, 763, 10, 10)); + ActuatorButton04_19->setPalette(palette139); + ActuatorButton04_21 = new QPushButton(frame); + ActuatorButton04_21->setObjectName(QString::fromUtf8("ActuatorButton04_21")); + ActuatorButton04_21->setGeometry(QRect(616, 724, 10, 10)); QPalette palette140; palette140.setBrush(QPalette::Active, QPalette::WindowText, brush); palette140.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8089,10 +8121,10 @@ public: palette140.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette140.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette140.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_25->setPalette(palette140); - ActuatorButton04_26 = new QPushButton(frame); - ActuatorButton04_26->setObjectName(QString::fromUtf8("ActuatorButton04_26")); - ActuatorButton04_26->setGeometry(QRect(433, 760, 10, 10)); + ActuatorButton04_21->setPalette(palette140); + ActuatorButton04_22 = new QPushButton(frame); + ActuatorButton04_22->setObjectName(QString::fromUtf8("ActuatorButton04_22")); + ActuatorButton04_22->setGeometry(QRect(583, 740, 10, 10)); QPalette palette141; palette141.setBrush(QPalette::Active, QPalette::WindowText, brush); palette141.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8142,10 +8174,10 @@ public: palette141.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette141.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette141.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_26->setPalette(palette141); - ActuatorButton04_27 = new QPushButton(frame); - ActuatorButton04_27->setObjectName(QString::fromUtf8("ActuatorButton04_27")); - ActuatorButton04_27->setGeometry(QRect(395, 753, 10, 10)); + ActuatorButton04_22->setPalette(palette141); + ActuatorButton04_23 = new QPushButton(frame); + ActuatorButton04_23->setObjectName(QString::fromUtf8("ActuatorButton04_23")); + ActuatorButton04_23->setGeometry(QRect(546, 753, 10, 10)); QPalette palette142; palette142.setBrush(QPalette::Active, QPalette::WindowText, brush); palette142.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8195,10 +8227,10 @@ public: palette142.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette142.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette142.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_27->setPalette(palette142); - ActuatorButton04_28 = new QPushButton(frame); - ActuatorButton04_28->setObjectName(QString::fromUtf8("ActuatorButton04_28")); - ActuatorButton04_28->setGeometry(QRect(359, 741, 10, 10)); + ActuatorButton04_23->setPalette(palette142); + ActuatorButton04_24 = new QPushButton(frame); + ActuatorButton04_24->setObjectName(QString::fromUtf8("ActuatorButton04_24")); + ActuatorButton04_24->setGeometry(QRect(508, 760, 10, 10)); QPalette palette143; palette143.setBrush(QPalette::Active, QPalette::WindowText, brush); palette143.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8248,10 +8280,10 @@ public: palette143.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette143.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette143.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_28->setPalette(palette143); - ActuatorButton04_29 = new QPushButton(frame); - ActuatorButton04_29->setObjectName(QString::fromUtf8("ActuatorButton04_29")); - ActuatorButton04_29->setGeometry(QRect(325, 723, 10, 10)); + ActuatorButton04_24->setPalette(palette143); + ActuatorButton04_25 = new QPushButton(frame); + ActuatorButton04_25->setObjectName(QString::fromUtf8("ActuatorButton04_25")); + ActuatorButton04_25->setGeometry(QRect(470, 763, 10, 10)); QPalette palette144; palette144.setBrush(QPalette::Active, QPalette::WindowText, brush); palette144.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8301,10 +8333,10 @@ public: palette144.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette144.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette144.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_29->setPalette(palette144); - ActuatorButton04_31 = new QPushButton(frame); - ActuatorButton04_31->setObjectName(QString::fromUtf8("ActuatorButton04_31")); - ActuatorButton04_31->setGeometry(QRect(264, 677, 10, 10)); + ActuatorButton04_25->setPalette(palette144); + ActuatorButton04_26 = new QPushButton(frame); + ActuatorButton04_26->setObjectName(QString::fromUtf8("ActuatorButton04_26")); + ActuatorButton04_26->setGeometry(QRect(433, 760, 10, 10)); QPalette palette145; palette145.setBrush(QPalette::Active, QPalette::WindowText, brush); palette145.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8354,10 +8386,10 @@ public: palette145.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette145.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette145.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_31->setPalette(palette145); - ActuatorButton04_33 = new QPushButton(frame); - ActuatorButton04_33->setObjectName(QString::fromUtf8("ActuatorButton04_33")); - ActuatorButton04_33->setGeometry(QRect(218, 616, 10, 10)); + ActuatorButton04_26->setPalette(palette145); + ActuatorButton04_27 = new QPushButton(frame); + ActuatorButton04_27->setObjectName(QString::fromUtf8("ActuatorButton04_27")); + ActuatorButton04_27->setGeometry(QRect(395, 753, 10, 10)); QPalette palette146; palette146.setBrush(QPalette::Active, QPalette::WindowText, brush); palette146.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8407,10 +8439,10 @@ public: palette146.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette146.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette146.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_33->setPalette(palette146); - ActuatorButton04_34 = new QPushButton(frame); - ActuatorButton04_34->setObjectName(QString::fromUtf8("ActuatorButton04_34")); - ActuatorButton04_34->setGeometry(QRect(201, 582, 10, 10)); + ActuatorButton04_27->setPalette(palette146); + ActuatorButton04_28 = new QPushButton(frame); + ActuatorButton04_28->setObjectName(QString::fromUtf8("ActuatorButton04_28")); + ActuatorButton04_28->setGeometry(QRect(359, 741, 10, 10)); QPalette palette147; palette147.setBrush(QPalette::Active, QPalette::WindowText, brush); palette147.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8460,10 +8492,10 @@ public: palette147.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette147.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette147.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_34->setPalette(palette147); - ActuatorButton04_35 = new QPushButton(frame); - ActuatorButton04_35->setObjectName(QString::fromUtf8("ActuatorButton04_35")); - ActuatorButton04_35->setGeometry(QRect(189, 546, 10, 10)); + ActuatorButton04_28->setPalette(palette147); + ActuatorButton04_29 = new QPushButton(frame); + ActuatorButton04_29->setObjectName(QString::fromUtf8("ActuatorButton04_29")); + ActuatorButton04_29->setGeometry(QRect(325, 723, 10, 10)); QPalette palette148; palette148.setBrush(QPalette::Active, QPalette::WindowText, brush); palette148.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8513,10 +8545,10 @@ public: palette148.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette148.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette148.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_35->setPalette(palette148); - ActuatorButton04_36 = new QPushButton(frame); - ActuatorButton04_36->setObjectName(QString::fromUtf8("ActuatorButton04_36")); - ActuatorButton04_36->setGeometry(QRect(182, 509, 10, 10)); + ActuatorButton04_29->setPalette(palette148); + ActuatorButton04_31 = new QPushButton(frame); + ActuatorButton04_31->setObjectName(QString::fromUtf8("ActuatorButton04_31")); + ActuatorButton04_31->setGeometry(QRect(264, 677, 10, 10)); QPalette palette149; palette149.setBrush(QPalette::Active, QPalette::WindowText, brush); palette149.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8566,10 +8598,10 @@ public: palette149.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette149.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette149.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_36->setPalette(palette149); - ActuatorButton04_37 = new QPushButton(frame); - ActuatorButton04_37->setObjectName(QString::fromUtf8("ActuatorButton04_37")); - ActuatorButton04_37->setGeometry(QRect(179, 471, 10, 10)); + ActuatorButton04_31->setPalette(palette149); + ActuatorButton04_33 = new QPushButton(frame); + ActuatorButton04_33->setObjectName(QString::fromUtf8("ActuatorButton04_33")); + ActuatorButton04_33->setGeometry(QRect(218, 616, 10, 10)); QPalette palette150; palette150.setBrush(QPalette::Active, QPalette::WindowText, brush); palette150.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8619,10 +8651,10 @@ public: palette150.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette150.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette150.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_37->setPalette(palette150); - ActuatorButton04_38 = new QPushButton(frame); - ActuatorButton04_38->setObjectName(QString::fromUtf8("ActuatorButton04_38")); - ActuatorButton04_38->setGeometry(QRect(181, 433, 10, 10)); + ActuatorButton04_33->setPalette(palette150); + ActuatorButton04_34 = new QPushButton(frame); + ActuatorButton04_34->setObjectName(QString::fromUtf8("ActuatorButton04_34")); + ActuatorButton04_34->setGeometry(QRect(201, 582, 10, 10)); QPalette palette151; palette151.setBrush(QPalette::Active, QPalette::WindowText, brush); palette151.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8672,10 +8704,10 @@ public: palette151.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette151.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette151.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_38->setPalette(palette151); - ActuatorButton04_39 = new QPushButton(frame); - ActuatorButton04_39->setObjectName(QString::fromUtf8("ActuatorButton04_39")); - ActuatorButton04_39->setGeometry(QRect(189, 396, 10, 10)); + ActuatorButton04_34->setPalette(palette151); + ActuatorButton04_35 = new QPushButton(frame); + ActuatorButton04_35->setObjectName(QString::fromUtf8("ActuatorButton04_35")); + ActuatorButton04_35->setGeometry(QRect(189, 546, 10, 10)); QPalette palette152; palette152.setBrush(QPalette::Active, QPalette::WindowText, brush); palette152.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8725,10 +8757,10 @@ public: palette152.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette152.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette152.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_39->setPalette(palette152); - ActuatorButton04_40 = new QPushButton(frame); - ActuatorButton04_40->setObjectName(QString::fromUtf8("ActuatorButton04_40")); - ActuatorButton04_40->setGeometry(QRect(201, 360, 10, 10)); + ActuatorButton04_35->setPalette(palette152); + ActuatorButton04_36 = new QPushButton(frame); + ActuatorButton04_36->setObjectName(QString::fromUtf8("ActuatorButton04_36")); + ActuatorButton04_36->setGeometry(QRect(182, 509, 10, 10)); QPalette palette153; palette153.setBrush(QPalette::Active, QPalette::WindowText, brush); palette153.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8778,10 +8810,10 @@ public: palette153.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette153.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette153.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_40->setPalette(palette153); - ActuatorButton04_41 = new QPushButton(frame); - ActuatorButton04_41->setObjectName(QString::fromUtf8("ActuatorButton04_41")); - ActuatorButton04_41->setGeometry(QRect(218, 325, 10, 10)); + ActuatorButton04_36->setPalette(palette153); + ActuatorButton04_37 = new QPushButton(frame); + ActuatorButton04_37->setObjectName(QString::fromUtf8("ActuatorButton04_37")); + ActuatorButton04_37->setGeometry(QRect(179, 471, 10, 10)); QPalette palette154; palette154.setBrush(QPalette::Active, QPalette::WindowText, brush); palette154.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8831,10 +8863,10 @@ public: palette154.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette154.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette154.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_41->setPalette(palette154); - ActuatorButton04_43 = new QPushButton(frame); - ActuatorButton04_43->setObjectName(QString::fromUtf8("ActuatorButton04_43")); - ActuatorButton04_43->setGeometry(QRect(264, 265, 10, 10)); + ActuatorButton04_37->setPalette(palette154); + ActuatorButton04_38 = new QPushButton(frame); + ActuatorButton04_38->setObjectName(QString::fromUtf8("ActuatorButton04_38")); + ActuatorButton04_38->setGeometry(QRect(181, 433, 10, 10)); QPalette palette155; palette155.setBrush(QPalette::Active, QPalette::WindowText, brush); palette155.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8884,10 +8916,10 @@ public: palette155.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette155.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette155.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_43->setPalette(palette155); - ActuatorButton04_45 = new QPushButton(frame); - ActuatorButton04_45->setObjectName(QString::fromUtf8("ActuatorButton04_45")); - ActuatorButton04_45->setGeometry(QRect(325, 219, 10, 10)); + ActuatorButton04_38->setPalette(palette155); + ActuatorButton04_39 = new QPushButton(frame); + ActuatorButton04_39->setObjectName(QString::fromUtf8("ActuatorButton04_39")); + ActuatorButton04_39->setGeometry(QRect(189, 396, 10, 10)); QPalette palette156; palette156.setBrush(QPalette::Active, QPalette::WindowText, brush); palette156.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8937,10 +8969,10 @@ public: palette156.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette156.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette156.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_45->setPalette(palette156); - ActuatorButton04_46 = new QPushButton(frame); - ActuatorButton04_46->setObjectName(QString::fromUtf8("ActuatorButton04_46")); - ActuatorButton04_46->setGeometry(QRect(359, 202, 10, 10)); + ActuatorButton04_39->setPalette(palette156); + ActuatorButton04_40 = new QPushButton(frame); + ActuatorButton04_40->setObjectName(QString::fromUtf8("ActuatorButton04_40")); + ActuatorButton04_40->setGeometry(QRect(201, 360, 10, 10)); QPalette palette157; palette157.setBrush(QPalette::Active, QPalette::WindowText, brush); palette157.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -8990,10 +9022,10 @@ public: palette157.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette157.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette157.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_46->setPalette(palette157); - ActuatorButton04_47 = new QPushButton(frame); - ActuatorButton04_47->setObjectName(QString::fromUtf8("ActuatorButton04_47")); - ActuatorButton04_47->setGeometry(QRect(395, 189, 10, 10)); + ActuatorButton04_40->setPalette(palette157); + ActuatorButton04_41 = new QPushButton(frame); + ActuatorButton04_41->setObjectName(QString::fromUtf8("ActuatorButton04_41")); + ActuatorButton04_41->setGeometry(QRect(218, 325, 10, 10)); QPalette palette158; palette158.setBrush(QPalette::Active, QPalette::WindowText, brush); palette158.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9043,10 +9075,10 @@ public: palette158.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette158.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette158.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_47->setPalette(palette158); - ActuatorButton04_48 = new QPushButton(frame); - ActuatorButton04_48->setObjectName(QString::fromUtf8("ActuatorButton04_48")); - ActuatorButton04_48->setGeometry(QRect(433, 182, 10, 10)); + ActuatorButton04_41->setPalette(palette158); + ActuatorButton04_43 = new QPushButton(frame); + ActuatorButton04_43->setObjectName(QString::fromUtf8("ActuatorButton04_43")); + ActuatorButton04_43->setGeometry(QRect(264, 265, 10, 10)); QPalette palette159; palette159.setBrush(QPalette::Active, QPalette::WindowText, brush); palette159.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9096,10 +9128,10 @@ public: palette159.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette159.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette159.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_48->setPalette(palette159); - C1ActuatorsButton = new QPushButton(frame); - C1ActuatorsButton->setObjectName(QString::fromUtf8("C1ActuatorsButton")); - C1ActuatorsButton->setGeometry(QRect(468, 370, 20, 15)); + ActuatorButton04_43->setPalette(palette159); + ActuatorButton04_45 = new QPushButton(frame); + ActuatorButton04_45->setObjectName(QString::fromUtf8("ActuatorButton04_45")); + ActuatorButton04_45->setGeometry(QRect(325, 219, 10, 10)); QPalette palette160; palette160.setBrush(QPalette::Active, QPalette::WindowText, brush); palette160.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9149,13 +9181,10 @@ public: palette160.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette160.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette160.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C1ActuatorsButton->setPalette(palette160); - QFont font4; - font4.setPointSize(8); - C1ActuatorsButton->setFont(font4); - C2ActuatorsButton = new QPushButton(frame); - C2ActuatorsButton->setObjectName(QString::fromUtf8("C2ActuatorsButton")); - C2ActuatorsButton->setGeometry(QRect(470, 310, 20, 15)); + ActuatorButton04_45->setPalette(palette160); + ActuatorButton04_46 = new QPushButton(frame); + ActuatorButton04_46->setObjectName(QString::fromUtf8("ActuatorButton04_46")); + ActuatorButton04_46->setGeometry(QRect(359, 202, 10, 10)); QPalette palette161; palette161.setBrush(QPalette::Active, QPalette::WindowText, brush); palette161.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9205,11 +9234,10 @@ public: palette161.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette161.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette161.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C2ActuatorsButton->setPalette(palette161); - C2ActuatorsButton->setFont(font4); - C3ActuatorsButton = new QPushButton(frame); - C3ActuatorsButton->setObjectName(QString::fromUtf8("C3ActuatorsButton")); - C3ActuatorsButton->setGeometry(QRect(470, 252, 20, 15)); + ActuatorButton04_46->setPalette(palette161); + ActuatorButton04_47 = new QPushButton(frame); + ActuatorButton04_47->setObjectName(QString::fromUtf8("ActuatorButton04_47")); + ActuatorButton04_47->setGeometry(QRect(395, 189, 10, 10)); QPalette palette162; palette162.setBrush(QPalette::Active, QPalette::WindowText, brush); palette162.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9259,11 +9287,10 @@ public: palette162.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette162.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette162.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C3ActuatorsButton->setPalette(palette162); - C3ActuatorsButton->setFont(font4); - ActuatorButton05_01 = new QPushButton(frame); - ActuatorButton05_01->setObjectName(QString::fromUtf8("ActuatorButton05_01")); - ActuatorButton05_01->setGeometry(QRect(471, 129, 10, 10)); + ActuatorButton04_47->setPalette(palette162); + ActuatorButton04_48 = new QPushButton(frame); + ActuatorButton04_48->setObjectName(QString::fromUtf8("ActuatorButton04_48")); + ActuatorButton04_48->setGeometry(QRect(433, 182, 10, 10)); QPalette palette163; palette163.setBrush(QPalette::Active, QPalette::WindowText, brush); palette163.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9313,10 +9340,10 @@ public: palette163.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette163.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette163.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_01->setPalette(palette163); - ActuatorButton05_02 = new QPushButton(frame); - ActuatorButton05_02->setObjectName(QString::fromUtf8("ActuatorButton05_02")); - ActuatorButton05_02->setGeometry(QRect(516, 132, 10, 10)); + ActuatorButton04_48->setPalette(palette163); + C1ActuatorsButton = new QPushButton(frame); + C1ActuatorsButton->setObjectName(QString::fromUtf8("C1ActuatorsButton")); + C1ActuatorsButton->setGeometry(QRect(468, 370, 20, 15)); QPalette palette164; palette164.setBrush(QPalette::Active, QPalette::WindowText, brush); palette164.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9366,10 +9393,13 @@ public: palette164.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette164.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette164.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_02->setPalette(palette164); - ActuatorButton05_03 = new QPushButton(frame); - ActuatorButton05_03->setObjectName(QString::fromUtf8("ActuatorButton05_03")); - ActuatorButton05_03->setGeometry(QRect(559, 142, 10, 10)); + C1ActuatorsButton->setPalette(palette164); + QFont font4; + font4.setPointSize(8); + C1ActuatorsButton->setFont(font4); + C2ActuatorsButton = new QPushButton(frame); + C2ActuatorsButton->setObjectName(QString::fromUtf8("C2ActuatorsButton")); + C2ActuatorsButton->setGeometry(QRect(470, 310, 20, 15)); QPalette palette165; palette165.setBrush(QPalette::Active, QPalette::WindowText, brush); palette165.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9419,10 +9449,11 @@ public: palette165.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette165.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette165.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_03->setPalette(palette165); - ActuatorButton05_04 = new QPushButton(frame); - ActuatorButton05_04->setObjectName(QString::fromUtf8("ActuatorButton05_04")); - ActuatorButton05_04->setGeometry(QRect(602, 155, 10, 10)); + C2ActuatorsButton->setPalette(palette165); + C2ActuatorsButton->setFont(font4); + C3ActuatorsButton = new QPushButton(frame); + C3ActuatorsButton->setObjectName(QString::fromUtf8("C3ActuatorsButton")); + C3ActuatorsButton->setGeometry(QRect(470, 252, 20, 15)); QPalette palette166; palette166.setBrush(QPalette::Active, QPalette::WindowText, brush); palette166.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9472,10 +9503,11 @@ public: palette166.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette166.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette166.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_04->setPalette(palette166); - ActuatorButton05_05 = new QPushButton(frame); - ActuatorButton05_05->setObjectName(QString::fromUtf8("ActuatorButton05_05")); - ActuatorButton05_05->setGeometry(QRect(642, 175, 10, 10)); + C3ActuatorsButton->setPalette(palette166); + C3ActuatorsButton->setFont(font4); + ActuatorButton05_01 = new QPushButton(frame); + ActuatorButton05_01->setObjectName(QString::fromUtf8("ActuatorButton05_01")); + ActuatorButton05_01->setGeometry(QRect(471, 129, 10, 10)); QPalette palette167; palette167.setBrush(QPalette::Active, QPalette::WindowText, brush); palette167.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9525,10 +9557,10 @@ public: palette167.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette167.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette167.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_05->setPalette(palette167); - ActuatorButton05_06 = new QPushButton(frame); - ActuatorButton05_06->setObjectName(QString::fromUtf8("ActuatorButton05_06")); - ActuatorButton05_06->setGeometry(QRect(680, 200, 10, 10)); + ActuatorButton05_01->setPalette(palette167); + ActuatorButton05_02 = new QPushButton(frame); + ActuatorButton05_02->setObjectName(QString::fromUtf8("ActuatorButton05_02")); + ActuatorButton05_02->setGeometry(QRect(516, 132, 10, 10)); QPalette palette168; palette168.setBrush(QPalette::Active, QPalette::WindowText, brush); palette168.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9578,10 +9610,10 @@ public: palette168.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette168.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette168.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_06->setPalette(palette168); - ActuatorButton05_08 = new QPushButton(frame); - ActuatorButton05_08->setObjectName(QString::fromUtf8("ActuatorButton05_08")); - ActuatorButton05_08->setGeometry(QRect(743, 264, 10, 10)); + ActuatorButton05_02->setPalette(palette168); + ActuatorButton05_03 = new QPushButton(frame); + ActuatorButton05_03->setObjectName(QString::fromUtf8("ActuatorButton05_03")); + ActuatorButton05_03->setGeometry(QRect(559, 142, 10, 10)); QPalette palette169; palette169.setBrush(QPalette::Active, QPalette::WindowText, brush); palette169.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9631,10 +9663,10 @@ public: palette169.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette169.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette169.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_08->setPalette(palette169); - ActuatorButton05_09 = new QPushButton(frame); - ActuatorButton05_09->setObjectName(QString::fromUtf8("ActuatorButton05_09")); - ActuatorButton05_09->setGeometry(QRect(767, 300, 10, 10)); + ActuatorButton05_03->setPalette(palette169); + ActuatorButton05_04 = new QPushButton(frame); + ActuatorButton05_04->setObjectName(QString::fromUtf8("ActuatorButton05_04")); + ActuatorButton05_04->setGeometry(QRect(602, 155, 10, 10)); QPalette palette170; palette170.setBrush(QPalette::Active, QPalette::WindowText, brush); palette170.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9684,10 +9716,10 @@ public: palette170.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette170.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette170.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_09->setPalette(palette170); - ActuatorButton05_10 = new QPushButton(frame); - ActuatorButton05_10->setObjectName(QString::fromUtf8("ActuatorButton05_10")); - ActuatorButton05_10->setGeometry(QRect(787, 340, 10, 10)); + ActuatorButton05_04->setPalette(palette170); + ActuatorButton05_05 = new QPushButton(frame); + ActuatorButton05_05->setObjectName(QString::fromUtf8("ActuatorButton05_05")); + ActuatorButton05_05->setGeometry(QRect(642, 175, 10, 10)); QPalette palette171; palette171.setBrush(QPalette::Active, QPalette::WindowText, brush); palette171.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9737,10 +9769,10 @@ public: palette171.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette171.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette171.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_10->setPalette(palette171); - ActuatorButton05_11 = new QPushButton(frame); - ActuatorButton05_11->setObjectName(QString::fromUtf8("ActuatorButton05_11")); - ActuatorButton05_11->setGeometry(QRect(801, 383, 10, 10)); + ActuatorButton05_05->setPalette(palette171); + ActuatorButton05_06 = new QPushButton(frame); + ActuatorButton05_06->setObjectName(QString::fromUtf8("ActuatorButton05_06")); + ActuatorButton05_06->setGeometry(QRect(680, 200, 10, 10)); QPalette palette172; palette172.setBrush(QPalette::Active, QPalette::WindowText, brush); palette172.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9790,10 +9822,10 @@ public: palette172.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette172.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette172.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_11->setPalette(palette172); - ActuatorButton05_12 = new QPushButton(frame); - ActuatorButton05_12->setObjectName(QString::fromUtf8("ActuatorButton05_12")); - ActuatorButton05_12->setGeometry(QRect(810, 426, 10, 10)); + ActuatorButton05_06->setPalette(palette172); + ActuatorButton05_08 = new QPushButton(frame); + ActuatorButton05_08->setObjectName(QString::fromUtf8("ActuatorButton05_08")); + ActuatorButton05_08->setGeometry(QRect(743, 264, 10, 10)); QPalette palette173; palette173.setBrush(QPalette::Active, QPalette::WindowText, brush); palette173.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9843,10 +9875,10 @@ public: palette173.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette173.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette173.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_12->setPalette(palette173); - ActuatorButton05_13 = new QPushButton(frame); - ActuatorButton05_13->setObjectName(QString::fromUtf8("ActuatorButton05_13")); - ActuatorButton05_13->setGeometry(QRect(813, 471, 10, 10)); + ActuatorButton05_08->setPalette(palette173); + ActuatorButton05_09 = new QPushButton(frame); + ActuatorButton05_09->setObjectName(QString::fromUtf8("ActuatorButton05_09")); + ActuatorButton05_09->setGeometry(QRect(767, 300, 10, 10)); QPalette palette174; palette174.setBrush(QPalette::Active, QPalette::WindowText, brush); palette174.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9896,10 +9928,10 @@ public: palette174.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette174.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette174.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_13->setPalette(palette174); - ActuatorButton05_14 = new QPushButton(frame); - ActuatorButton05_14->setObjectName(QString::fromUtf8("ActuatorButton05_14")); - ActuatorButton05_14->setGeometry(QRect(810, 516, 10, 10)); + ActuatorButton05_09->setPalette(palette174); + ActuatorButton05_10 = new QPushButton(frame); + ActuatorButton05_10->setObjectName(QString::fromUtf8("ActuatorButton05_10")); + ActuatorButton05_10->setGeometry(QRect(787, 340, 10, 10)); QPalette palette175; palette175.setBrush(QPalette::Active, QPalette::WindowText, brush); palette175.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -9949,10 +9981,10 @@ public: palette175.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette175.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette175.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_14->setPalette(palette175); - ActuatorButton05_15 = new QPushButton(frame); - ActuatorButton05_15->setObjectName(QString::fromUtf8("ActuatorButton05_15")); - ActuatorButton05_15->setGeometry(QRect(801, 560, 10, 10)); + ActuatorButton05_10->setPalette(palette175); + ActuatorButton05_11 = new QPushButton(frame); + ActuatorButton05_11->setObjectName(QString::fromUtf8("ActuatorButton05_11")); + ActuatorButton05_11->setGeometry(QRect(801, 383, 10, 10)); QPalette palette176; palette176.setBrush(QPalette::Active, QPalette::WindowText, brush); palette176.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10002,10 +10034,10 @@ public: palette176.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette176.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette176.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_15->setPalette(palette176); - ActuatorButton05_16 = new QPushButton(frame); - ActuatorButton05_16->setObjectName(QString::fromUtf8("ActuatorButton05_16")); - ActuatorButton05_16->setGeometry(QRect(787, 602, 10, 10)); + ActuatorButton05_11->setPalette(palette176); + ActuatorButton05_12 = new QPushButton(frame); + ActuatorButton05_12->setObjectName(QString::fromUtf8("ActuatorButton05_12")); + ActuatorButton05_12->setGeometry(QRect(810, 426, 10, 10)); QPalette palette177; palette177.setBrush(QPalette::Active, QPalette::WindowText, brush); palette177.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10055,10 +10087,10 @@ public: palette177.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette177.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette177.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_16->setPalette(palette177); - ActuatorButton05_17 = new QPushButton(frame); - ActuatorButton05_17->setObjectName(QString::fromUtf8("ActuatorButton05_17")); - ActuatorButton05_17->setGeometry(QRect(767, 642, 10, 10)); + ActuatorButton05_12->setPalette(palette177); + ActuatorButton05_13 = new QPushButton(frame); + ActuatorButton05_13->setObjectName(QString::fromUtf8("ActuatorButton05_13")); + ActuatorButton05_13->setGeometry(QRect(813, 471, 10, 10)); QPalette palette178; palette178.setBrush(QPalette::Active, QPalette::WindowText, brush); palette178.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10108,10 +10140,10 @@ public: palette178.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette178.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette178.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_17->setPalette(palette178); - ActuatorButton05_18 = new QPushButton(frame); - ActuatorButton05_18->setObjectName(QString::fromUtf8("ActuatorButton05_18")); - ActuatorButton05_18->setGeometry(QRect(742, 679, 10, 10)); + ActuatorButton05_13->setPalette(palette178); + ActuatorButton05_14 = new QPushButton(frame); + ActuatorButton05_14->setObjectName(QString::fromUtf8("ActuatorButton05_14")); + ActuatorButton05_14->setGeometry(QRect(810, 516, 10, 10)); QPalette palette179; palette179.setBrush(QPalette::Active, QPalette::WindowText, brush); palette179.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10161,10 +10193,10 @@ public: palette179.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette179.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette179.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_18->setPalette(palette179); - ActuatorButton05_20 = new QPushButton(frame); - ActuatorButton05_20->setObjectName(QString::fromUtf8("ActuatorButton05_20")); - ActuatorButton05_20->setGeometry(QRect(679, 743, 10, 10)); + ActuatorButton05_14->setPalette(palette179); + ActuatorButton05_15 = new QPushButton(frame); + ActuatorButton05_15->setObjectName(QString::fromUtf8("ActuatorButton05_15")); + ActuatorButton05_15->setGeometry(QRect(801, 560, 10, 10)); QPalette palette180; palette180.setBrush(QPalette::Active, QPalette::WindowText, brush); palette180.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10214,10 +10246,10 @@ public: palette180.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette180.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette180.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_20->setPalette(palette180); - ActuatorButton05_21 = new QPushButton(frame); - ActuatorButton05_21->setObjectName(QString::fromUtf8("ActuatorButton05_21")); - ActuatorButton05_21->setGeometry(QRect(642, 768, 10, 10)); + ActuatorButton05_15->setPalette(palette180); + ActuatorButton05_16 = new QPushButton(frame); + ActuatorButton05_16->setObjectName(QString::fromUtf8("ActuatorButton05_16")); + ActuatorButton05_16->setGeometry(QRect(787, 602, 10, 10)); QPalette palette181; palette181.setBrush(QPalette::Active, QPalette::WindowText, brush); palette181.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10267,10 +10299,10 @@ public: palette181.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette181.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette181.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_21->setPalette(palette181); - ActuatorButton05_22 = new QPushButton(frame); - ActuatorButton05_22->setObjectName(QString::fromUtf8("ActuatorButton05_22")); - ActuatorButton05_22->setGeometry(QRect(602, 788, 10, 10)); + ActuatorButton05_16->setPalette(palette181); + ActuatorButton05_17 = new QPushButton(frame); + ActuatorButton05_17->setObjectName(QString::fromUtf8("ActuatorButton05_17")); + ActuatorButton05_17->setGeometry(QRect(767, 642, 10, 10)); QPalette palette182; palette182.setBrush(QPalette::Active, QPalette::WindowText, brush); palette182.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10320,10 +10352,10 @@ public: palette182.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette182.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette182.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_22->setPalette(palette182); - ActuatorButton05_23 = new QPushButton(frame); - ActuatorButton05_23->setObjectName(QString::fromUtf8("ActuatorButton05_23")); - ActuatorButton05_23->setGeometry(QRect(559, 801, 10, 10)); + ActuatorButton05_17->setPalette(palette182); + ActuatorButton05_18 = new QPushButton(frame); + ActuatorButton05_18->setObjectName(QString::fromUtf8("ActuatorButton05_18")); + ActuatorButton05_18->setGeometry(QRect(742, 679, 10, 10)); QPalette palette183; palette183.setBrush(QPalette::Active, QPalette::WindowText, brush); palette183.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10373,10 +10405,10 @@ public: palette183.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette183.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette183.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_23->setPalette(palette183); - ActuatorButton05_24 = new QPushButton(frame); - ActuatorButton05_24->setObjectName(QString::fromUtf8("ActuatorButton05_24")); - ActuatorButton05_24->setGeometry(QRect(516, 811, 10, 10)); + ActuatorButton05_18->setPalette(palette183); + ActuatorButton05_20 = new QPushButton(frame); + ActuatorButton05_20->setObjectName(QString::fromUtf8("ActuatorButton05_20")); + ActuatorButton05_20->setGeometry(QRect(679, 743, 10, 10)); QPalette palette184; palette184.setBrush(QPalette::Active, QPalette::WindowText, brush); palette184.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10426,10 +10458,10 @@ public: palette184.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette184.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette184.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_24->setPalette(palette184); - ActuatorButton05_25 = new QPushButton(frame); - ActuatorButton05_25->setObjectName(QString::fromUtf8("ActuatorButton05_25")); - ActuatorButton05_25->setGeometry(QRect(471, 813, 10, 10)); + ActuatorButton05_20->setPalette(palette184); + ActuatorButton05_21 = new QPushButton(frame); + ActuatorButton05_21->setObjectName(QString::fromUtf8("ActuatorButton05_21")); + ActuatorButton05_21->setGeometry(QRect(642, 768, 10, 10)); QPalette palette185; palette185.setBrush(QPalette::Active, QPalette::WindowText, brush); palette185.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10479,10 +10511,10 @@ public: palette185.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette185.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette185.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_25->setPalette(palette185); - ActuatorButton05_26 = new QPushButton(frame); - ActuatorButton05_26->setObjectName(QString::fromUtf8("ActuatorButton05_26")); - ActuatorButton05_26->setGeometry(QRect(426, 811, 10, 10)); + ActuatorButton05_21->setPalette(palette185); + ActuatorButton05_22 = new QPushButton(frame); + ActuatorButton05_22->setObjectName(QString::fromUtf8("ActuatorButton05_22")); + ActuatorButton05_22->setGeometry(QRect(602, 788, 10, 10)); QPalette palette186; palette186.setBrush(QPalette::Active, QPalette::WindowText, brush); palette186.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10532,10 +10564,10 @@ public: palette186.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette186.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette186.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_26->setPalette(palette186); - ActuatorButton05_27 = new QPushButton(frame); - ActuatorButton05_27->setObjectName(QString::fromUtf8("ActuatorButton05_27")); - ActuatorButton05_27->setGeometry(QRect(382, 802, 10, 10)); + ActuatorButton05_22->setPalette(palette186); + ActuatorButton05_23 = new QPushButton(frame); + ActuatorButton05_23->setObjectName(QString::fromUtf8("ActuatorButton05_23")); + ActuatorButton05_23->setGeometry(QRect(559, 801, 10, 10)); QPalette palette187; palette187.setBrush(QPalette::Active, QPalette::WindowText, brush); palette187.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10585,10 +10617,10 @@ public: palette187.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette187.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette187.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_27->setPalette(palette187); - ActuatorButton05_28 = new QPushButton(frame); - ActuatorButton05_28->setObjectName(QString::fromUtf8("ActuatorButton05_28")); - ActuatorButton05_28->setGeometry(QRect(339, 787, 10, 10)); + ActuatorButton05_23->setPalette(palette187); + ActuatorButton05_24 = new QPushButton(frame); + ActuatorButton05_24->setObjectName(QString::fromUtf8("ActuatorButton05_24")); + ActuatorButton05_24->setGeometry(QRect(516, 811, 10, 10)); QPalette palette188; palette188.setBrush(QPalette::Active, QPalette::WindowText, brush); palette188.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10638,10 +10670,10 @@ public: palette188.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette188.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette188.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_28->setPalette(palette188); - ActuatorButton05_29 = new QPushButton(frame); - ActuatorButton05_29->setObjectName(QString::fromUtf8("ActuatorButton05_29")); - ActuatorButton05_29->setGeometry(QRect(299, 767, 10, 10)); + ActuatorButton05_24->setPalette(palette188); + ActuatorButton05_25 = new QPushButton(frame); + ActuatorButton05_25->setObjectName(QString::fromUtf8("ActuatorButton05_25")); + ActuatorButton05_25->setGeometry(QRect(471, 813, 10, 10)); QPalette palette189; palette189.setBrush(QPalette::Active, QPalette::WindowText, brush); palette189.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10691,10 +10723,10 @@ public: palette189.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette189.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette189.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_29->setPalette(palette189); - ActuatorButton05_30 = new QPushButton(frame); - ActuatorButton05_30->setObjectName(QString::fromUtf8("ActuatorButton05_30")); - ActuatorButton05_30->setGeometry(QRect(262, 743, 10, 10)); + ActuatorButton05_25->setPalette(palette189); + ActuatorButton05_26 = new QPushButton(frame); + ActuatorButton05_26->setObjectName(QString::fromUtf8("ActuatorButton05_26")); + ActuatorButton05_26->setGeometry(QRect(426, 811, 10, 10)); QPalette palette190; palette190.setBrush(QPalette::Active, QPalette::WindowText, brush); palette190.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10744,10 +10776,10 @@ public: palette190.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette190.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette190.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_30->setPalette(palette190); - ActuatorButton05_32 = new QPushButton(frame); - ActuatorButton05_32->setObjectName(QString::fromUtf8("ActuatorButton05_32")); - ActuatorButton05_32->setGeometry(QRect(198, 679, 10, 10)); + ActuatorButton05_26->setPalette(palette190); + ActuatorButton05_27 = new QPushButton(frame); + ActuatorButton05_27->setObjectName(QString::fromUtf8("ActuatorButton05_27")); + ActuatorButton05_27->setGeometry(QRect(382, 802, 10, 10)); QPalette palette191; palette191.setBrush(QPalette::Active, QPalette::WindowText, brush); palette191.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10797,10 +10829,10 @@ public: palette191.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette191.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette191.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_32->setPalette(palette191); - ActuatorButton05_33 = new QPushButton(frame); - ActuatorButton05_33->setObjectName(QString::fromUtf8("ActuatorButton05_33")); - ActuatorButton05_33->setGeometry(QRect(173, 642, 10, 10)); + ActuatorButton05_27->setPalette(palette191); + ActuatorButton05_28 = new QPushButton(frame); + ActuatorButton05_28->setObjectName(QString::fromUtf8("ActuatorButton05_28")); + ActuatorButton05_28->setGeometry(QRect(339, 787, 10, 10)); QPalette palette192; palette192.setBrush(QPalette::Active, QPalette::WindowText, brush); palette192.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10850,10 +10882,10 @@ public: palette192.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette192.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette192.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_33->setPalette(palette192); - ActuatorButton05_34 = new QPushButton(frame); - ActuatorButton05_34->setObjectName(QString::fromUtf8("ActuatorButton05_34")); - ActuatorButton05_34->setGeometry(QRect(154, 602, 10, 10)); + ActuatorButton05_28->setPalette(palette192); + ActuatorButton05_29 = new QPushButton(frame); + ActuatorButton05_29->setObjectName(QString::fromUtf8("ActuatorButton05_29")); + ActuatorButton05_29->setGeometry(QRect(299, 767, 10, 10)); QPalette palette193; palette193.setBrush(QPalette::Active, QPalette::WindowText, brush); palette193.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10903,10 +10935,10 @@ public: palette193.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette193.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette193.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_34->setPalette(palette193); - ActuatorButton05_35 = new QPushButton(frame); - ActuatorButton05_35->setObjectName(QString::fromUtf8("ActuatorButton05_35")); - ActuatorButton05_35->setGeometry(QRect(140, 559, 10, 10)); + ActuatorButton05_29->setPalette(palette193); + ActuatorButton05_30 = new QPushButton(frame); + ActuatorButton05_30->setObjectName(QString::fromUtf8("ActuatorButton05_30")); + ActuatorButton05_30->setGeometry(QRect(262, 743, 10, 10)); QPalette palette194; palette194.setBrush(QPalette::Active, QPalette::WindowText, brush); palette194.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -10956,10 +10988,10 @@ public: palette194.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette194.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette194.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_35->setPalette(palette194); - ActuatorButton05_36 = new QPushButton(frame); - ActuatorButton05_36->setObjectName(QString::fromUtf8("ActuatorButton05_36")); - ActuatorButton05_36->setGeometry(QRect(131, 516, 10, 10)); + ActuatorButton05_30->setPalette(palette194); + ActuatorButton05_32 = new QPushButton(frame); + ActuatorButton05_32->setObjectName(QString::fromUtf8("ActuatorButton05_32")); + ActuatorButton05_32->setGeometry(QRect(198, 679, 10, 10)); QPalette palette195; palette195.setBrush(QPalette::Active, QPalette::WindowText, brush); palette195.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11009,10 +11041,10 @@ public: palette195.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette195.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette195.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_36->setPalette(palette195); - ActuatorButton05_37 = new QPushButton(frame); - ActuatorButton05_37->setObjectName(QString::fromUtf8("ActuatorButton05_37")); - ActuatorButton05_37->setGeometry(QRect(128, 471, 10, 10)); + ActuatorButton05_32->setPalette(palette195); + ActuatorButton05_33 = new QPushButton(frame); + ActuatorButton05_33->setObjectName(QString::fromUtf8("ActuatorButton05_33")); + ActuatorButton05_33->setGeometry(QRect(173, 642, 10, 10)); QPalette palette196; palette196.setBrush(QPalette::Active, QPalette::WindowText, brush); palette196.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11062,10 +11094,10 @@ public: palette196.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette196.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette196.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_37->setPalette(palette196); - ActuatorButton05_38 = new QPushButton(frame); - ActuatorButton05_38->setObjectName(QString::fromUtf8("ActuatorButton05_38")); - ActuatorButton05_38->setGeometry(QRect(131, 427, 10, 10)); + ActuatorButton05_33->setPalette(palette196); + ActuatorButton05_34 = new QPushButton(frame); + ActuatorButton05_34->setObjectName(QString::fromUtf8("ActuatorButton05_34")); + ActuatorButton05_34->setGeometry(QRect(154, 602, 10, 10)); QPalette palette197; palette197.setBrush(QPalette::Active, QPalette::WindowText, brush); palette197.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11115,10 +11147,10 @@ public: palette197.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette197.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette197.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_38->setPalette(palette197); - ActuatorButton05_39 = new QPushButton(frame); - ActuatorButton05_39->setObjectName(QString::fromUtf8("ActuatorButton05_39")); - ActuatorButton05_39->setGeometry(QRect(140, 383, 10, 10)); + ActuatorButton05_34->setPalette(palette197); + ActuatorButton05_35 = new QPushButton(frame); + ActuatorButton05_35->setObjectName(QString::fromUtf8("ActuatorButton05_35")); + ActuatorButton05_35->setGeometry(QRect(140, 559, 10, 10)); QPalette palette198; palette198.setBrush(QPalette::Active, QPalette::WindowText, brush); palette198.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11168,10 +11200,10 @@ public: palette198.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette198.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette198.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_39->setPalette(palette198); - ActuatorButton05_40 = new QPushButton(frame); - ActuatorButton05_40->setObjectName(QString::fromUtf8("ActuatorButton05_40")); - ActuatorButton05_40->setGeometry(QRect(154, 341, 10, 10)); + ActuatorButton05_35->setPalette(palette198); + ActuatorButton05_36 = new QPushButton(frame); + ActuatorButton05_36->setObjectName(QString::fromUtf8("ActuatorButton05_36")); + ActuatorButton05_36->setGeometry(QRect(131, 516, 10, 10)); QPalette palette199; palette199.setBrush(QPalette::Active, QPalette::WindowText, brush); palette199.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11221,10 +11253,10 @@ public: palette199.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette199.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette199.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_40->setPalette(palette199); - ActuatorButton05_41 = new QPushButton(frame); - ActuatorButton05_41->setObjectName(QString::fromUtf8("ActuatorButton05_41")); - ActuatorButton05_41->setGeometry(QRect(174, 300, 10, 10)); + ActuatorButton05_36->setPalette(palette199); + ActuatorButton05_37 = new QPushButton(frame); + ActuatorButton05_37->setObjectName(QString::fromUtf8("ActuatorButton05_37")); + ActuatorButton05_37->setGeometry(QRect(128, 471, 10, 10)); QPalette palette200; palette200.setBrush(QPalette::Active, QPalette::WindowText, brush); palette200.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11274,10 +11306,10 @@ public: palette200.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette200.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette200.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_41->setPalette(palette200); - ActuatorButton05_42 = new QPushButton(frame); - ActuatorButton05_42->setObjectName(QString::fromUtf8("ActuatorButton05_42")); - ActuatorButton05_42->setGeometry(QRect(199, 263, 10, 10)); + ActuatorButton05_37->setPalette(palette200); + ActuatorButton05_38 = new QPushButton(frame); + ActuatorButton05_38->setObjectName(QString::fromUtf8("ActuatorButton05_38")); + ActuatorButton05_38->setGeometry(QRect(131, 427, 10, 10)); QPalette palette201; palette201.setBrush(QPalette::Active, QPalette::WindowText, brush); palette201.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11327,10 +11359,10 @@ public: palette201.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette201.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette201.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_42->setPalette(palette201); - ActuatorButton05_44 = new QPushButton(frame); - ActuatorButton05_44->setObjectName(QString::fromUtf8("ActuatorButton05_44")); - ActuatorButton05_44->setGeometry(QRect(262, 199, 10, 10)); + ActuatorButton05_38->setPalette(palette201); + ActuatorButton05_39 = new QPushButton(frame); + ActuatorButton05_39->setObjectName(QString::fromUtf8("ActuatorButton05_39")); + ActuatorButton05_39->setGeometry(QRect(140, 383, 10, 10)); QPalette palette202; palette202.setBrush(QPalette::Active, QPalette::WindowText, brush); palette202.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11380,10 +11412,10 @@ public: palette202.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette202.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette202.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_44->setPalette(palette202); - ActuatorButton05_45 = new QPushButton(frame); - ActuatorButton05_45->setObjectName(QString::fromUtf8("ActuatorButton05_45")); - ActuatorButton05_45->setGeometry(QRect(299, 175, 10, 10)); + ActuatorButton05_39->setPalette(palette202); + ActuatorButton05_40 = new QPushButton(frame); + ActuatorButton05_40->setObjectName(QString::fromUtf8("ActuatorButton05_40")); + ActuatorButton05_40->setGeometry(QRect(154, 341, 10, 10)); QPalette palette203; palette203.setBrush(QPalette::Active, QPalette::WindowText, brush); palette203.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11433,10 +11465,10 @@ public: palette203.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette203.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette203.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_45->setPalette(palette203); - ActuatorButton05_46 = new QPushButton(frame); - ActuatorButton05_46->setObjectName(QString::fromUtf8("ActuatorButton05_46")); - ActuatorButton05_46->setGeometry(QRect(339, 155, 10, 10)); + ActuatorButton05_40->setPalette(palette203); + ActuatorButton05_41 = new QPushButton(frame); + ActuatorButton05_41->setObjectName(QString::fromUtf8("ActuatorButton05_41")); + ActuatorButton05_41->setGeometry(QRect(174, 300, 10, 10)); QPalette palette204; palette204.setBrush(QPalette::Active, QPalette::WindowText, brush); palette204.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11486,10 +11518,10 @@ public: palette204.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette204.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette204.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_46->setPalette(palette204); - ActuatorButton05_47 = new QPushButton(frame); - ActuatorButton05_47->setObjectName(QString::fromUtf8("ActuatorButton05_47")); - ActuatorButton05_47->setGeometry(QRect(382, 140, 10, 10)); + ActuatorButton05_41->setPalette(palette204); + ActuatorButton05_42 = new QPushButton(frame); + ActuatorButton05_42->setObjectName(QString::fromUtf8("ActuatorButton05_42")); + ActuatorButton05_42->setGeometry(QRect(199, 263, 10, 10)); QPalette palette205; palette205.setBrush(QPalette::Active, QPalette::WindowText, brush); palette205.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11539,10 +11571,10 @@ public: palette205.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette205.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette205.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_47->setPalette(palette205); - ActuatorButton05_48 = new QPushButton(frame); - ActuatorButton05_48->setObjectName(QString::fromUtf8("ActuatorButton05_48")); - ActuatorButton05_48->setGeometry(QRect(426, 131, 10, 10)); + ActuatorButton05_42->setPalette(palette205); + ActuatorButton05_44 = new QPushButton(frame); + ActuatorButton05_44->setObjectName(QString::fromUtf8("ActuatorButton05_44")); + ActuatorButton05_44->setGeometry(QRect(262, 199, 10, 10)); QPalette palette206; palette206.setBrush(QPalette::Active, QPalette::WindowText, brush); palette206.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11592,10 +11624,10 @@ public: palette206.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette206.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette206.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_48->setPalette(palette206); - C5ActuatorsButton = new QPushButton(frame); - C5ActuatorsButton->setObjectName(QString::fromUtf8("C5ActuatorsButton")); - C5ActuatorsButton->setGeometry(QRect(470, 140, 25, 15)); + ActuatorButton05_44->setPalette(palette206); + ActuatorButton05_45 = new QPushButton(frame); + ActuatorButton05_45->setObjectName(QString::fromUtf8("ActuatorButton05_45")); + ActuatorButton05_45->setGeometry(QRect(299, 175, 10, 10)); QPalette palette207; palette207.setBrush(QPalette::Active, QPalette::WindowText, brush); palette207.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11645,11 +11677,10 @@ public: palette207.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette207.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette207.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C5ActuatorsButton->setPalette(palette207); - C5ActuatorsButton->setFont(font4); - C4ActuatorsButton = new QPushButton(frame); - C4ActuatorsButton->setObjectName(QString::fromUtf8("C4ActuatorsButton")); - C4ActuatorsButton->setGeometry(QRect(471, 192, 20, 15)); + ActuatorButton05_45->setPalette(palette207); + ActuatorButton05_46 = new QPushButton(frame); + ActuatorButton05_46->setObjectName(QString::fromUtf8("ActuatorButton05_46")); + ActuatorButton05_46->setGeometry(QRect(339, 155, 10, 10)); QPalette palette208; palette208.setBrush(QPalette::Active, QPalette::WindowText, brush); palette208.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11699,11 +11730,10 @@ public: palette208.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette208.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette208.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C4ActuatorsButton->setPalette(palette208); - C4ActuatorsButton->setFont(font4); - ActuatorButton06_01 = new QPushButton(frame); - ActuatorButton06_01->setObjectName(QString::fromUtf8("ActuatorButton06_01")); - ActuatorButton06_01->setGeometry(QRect(471, 77, 10, 10)); + ActuatorButton05_46->setPalette(palette208); + ActuatorButton05_47 = new QPushButton(frame); + ActuatorButton05_47->setObjectName(QString::fromUtf8("ActuatorButton05_47")); + ActuatorButton05_47->setGeometry(QRect(382, 140, 10, 10)); QPalette palette209; palette209.setBrush(QPalette::Active, QPalette::WindowText, brush); palette209.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11753,10 +11783,10 @@ public: palette209.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette209.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette209.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_01->setPalette(palette209); - ActuatorButton06_02 = new QPushButton(frame); - ActuatorButton06_02->setObjectName(QString::fromUtf8("ActuatorButton06_02")); - ActuatorButton06_02->setGeometry(QRect(522, 81, 10, 10)); + ActuatorButton05_47->setPalette(palette209); + ActuatorButton05_48 = new QPushButton(frame); + ActuatorButton05_48->setObjectName(QString::fromUtf8("ActuatorButton05_48")); + ActuatorButton05_48->setGeometry(QRect(426, 131, 10, 10)); QPalette palette210; palette210.setBrush(QPalette::Active, QPalette::WindowText, brush); palette210.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11806,10 +11836,10 @@ public: palette210.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette210.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette210.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_02->setPalette(palette210); - ActuatorButton06_03 = new QPushButton(frame); - ActuatorButton06_03->setObjectName(QString::fromUtf8("ActuatorButton06_03")); - ActuatorButton06_03->setGeometry(QRect(573, 92, 10, 10)); + ActuatorButton05_48->setPalette(palette210); + C5ActuatorsButton = new QPushButton(frame); + C5ActuatorsButton->setObjectName(QString::fromUtf8("C5ActuatorsButton")); + C5ActuatorsButton->setGeometry(QRect(470, 140, 25, 15)); QPalette palette211; palette211.setBrush(QPalette::Active, QPalette::WindowText, brush); palette211.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11859,10 +11889,11 @@ public: palette211.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette211.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette211.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_03->setPalette(palette211); - ActuatorButton06_04 = new QPushButton(frame); - ActuatorButton06_04->setObjectName(QString::fromUtf8("ActuatorButton06_04")); - ActuatorButton06_04->setGeometry(QRect(621, 108, 10, 10)); + C5ActuatorsButton->setPalette(palette211); + C5ActuatorsButton->setFont(font4); + C4ActuatorsButton = new QPushButton(frame); + C4ActuatorsButton->setObjectName(QString::fromUtf8("C4ActuatorsButton")); + C4ActuatorsButton->setGeometry(QRect(471, 192, 20, 15)); QPalette palette212; palette212.setBrush(QPalette::Active, QPalette::WindowText, brush); palette212.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11912,10 +11943,11 @@ public: palette212.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette212.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette212.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_04->setPalette(palette212); - ActuatorButton06_05 = new QPushButton(frame); - ActuatorButton06_05->setObjectName(QString::fromUtf8("ActuatorButton06_05")); - ActuatorButton06_05->setGeometry(QRect(667, 131, 10, 10)); + C4ActuatorsButton->setPalette(palette212); + C4ActuatorsButton->setFont(font4); + ActuatorButton06_01 = new QPushButton(frame); + ActuatorButton06_01->setObjectName(QString::fromUtf8("ActuatorButton06_01")); + ActuatorButton06_01->setGeometry(QRect(471, 77, 10, 10)); QPalette palette213; palette213.setBrush(QPalette::Active, QPalette::WindowText, brush); palette213.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -11965,10 +11997,10 @@ public: palette213.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette213.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette213.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_05->setPalette(palette213); - ActuatorButton06_06 = new QPushButton(frame); - ActuatorButton06_06->setObjectName(QString::fromUtf8("ActuatorButton06_06")); - ActuatorButton06_06->setGeometry(QRect(711, 159, 10, 10)); + ActuatorButton06_01->setPalette(palette213); + ActuatorButton06_02 = new QPushButton(frame); + ActuatorButton06_02->setObjectName(QString::fromUtf8("ActuatorButton06_02")); + ActuatorButton06_02->setGeometry(QRect(522, 81, 10, 10)); QPalette palette214; palette214.setBrush(QPalette::Active, QPalette::WindowText, brush); palette214.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12018,10 +12050,10 @@ public: palette214.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette214.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette214.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_06->setPalette(palette214); - ActuatorButton06_07 = new QPushButton(frame); - ActuatorButton06_07->setObjectName(QString::fromUtf8("ActuatorButton06_07")); - ActuatorButton06_07->setGeometry(QRect(749, 193, 10, 10)); + ActuatorButton06_02->setPalette(palette214); + ActuatorButton06_03 = new QPushButton(frame); + ActuatorButton06_03->setObjectName(QString::fromUtf8("ActuatorButton06_03")); + ActuatorButton06_03->setGeometry(QRect(573, 92, 10, 10)); QPalette palette215; palette215.setBrush(QPalette::Active, QPalette::WindowText, brush); palette215.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12071,10 +12103,10 @@ public: palette215.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette215.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette215.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_07->setPalette(palette215); - ActuatorButton06_08 = new QPushButton(frame); - ActuatorButton06_08->setObjectName(QString::fromUtf8("ActuatorButton06_08")); - ActuatorButton06_08->setGeometry(QRect(783, 232, 10, 10)); + ActuatorButton06_03->setPalette(palette215); + ActuatorButton06_04 = new QPushButton(frame); + ActuatorButton06_04->setObjectName(QString::fromUtf8("ActuatorButton06_04")); + ActuatorButton06_04->setGeometry(QRect(621, 108, 10, 10)); QPalette palette216; palette216.setBrush(QPalette::Active, QPalette::WindowText, brush); palette216.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12124,10 +12156,10 @@ public: palette216.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette216.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette216.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_08->setPalette(palette216); - ActuatorButton06_09 = new QPushButton(frame); - ActuatorButton06_09->setObjectName(QString::fromUtf8("ActuatorButton06_09")); - ActuatorButton06_09->setGeometry(QRect(811, 275, 10, 10)); + ActuatorButton06_04->setPalette(palette216); + ActuatorButton06_05 = new QPushButton(frame); + ActuatorButton06_05->setObjectName(QString::fromUtf8("ActuatorButton06_05")); + ActuatorButton06_05->setGeometry(QRect(667, 131, 10, 10)); QPalette palette217; palette217.setBrush(QPalette::Active, QPalette::WindowText, brush); palette217.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12177,10 +12209,10 @@ public: palette217.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette217.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette217.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_09->setPalette(palette217); - ActuatorButton06_10 = new QPushButton(frame); - ActuatorButton06_10->setObjectName(QString::fromUtf8("ActuatorButton06_10")); - ActuatorButton06_10->setGeometry(QRect(834, 320, 10, 10)); + ActuatorButton06_05->setPalette(palette217); + ActuatorButton06_06 = new QPushButton(frame); + ActuatorButton06_06->setObjectName(QString::fromUtf8("ActuatorButton06_06")); + ActuatorButton06_06->setGeometry(QRect(711, 159, 10, 10)); QPalette palette218; palette218.setBrush(QPalette::Active, QPalette::WindowText, brush); palette218.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12230,10 +12262,10 @@ public: palette218.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette218.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette218.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_10->setPalette(palette218); - ActuatorButton06_12 = new QPushButton(frame); - ActuatorButton06_12->setObjectName(QString::fromUtf8("ActuatorButton06_12")); - ActuatorButton06_12->setGeometry(QRect(861, 420, 10, 10)); + ActuatorButton06_06->setPalette(palette218); + ActuatorButton06_07 = new QPushButton(frame); + ActuatorButton06_07->setObjectName(QString::fromUtf8("ActuatorButton06_07")); + ActuatorButton06_07->setGeometry(QRect(749, 193, 10, 10)); QPalette palette219; palette219.setBrush(QPalette::Active, QPalette::WindowText, brush); palette219.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12283,10 +12315,10 @@ public: palette219.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette219.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette219.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_12->setPalette(palette219); - ActuatorButton06_13 = new QPushButton(frame); - ActuatorButton06_13->setObjectName(QString::fromUtf8("ActuatorButton06_13")); - ActuatorButton06_13->setGeometry(QRect(865, 471, 10, 10)); + ActuatorButton06_07->setPalette(palette219); + ActuatorButton06_08 = new QPushButton(frame); + ActuatorButton06_08->setObjectName(QString::fromUtf8("ActuatorButton06_08")); + ActuatorButton06_08->setGeometry(QRect(783, 232, 10, 10)); QPalette palette220; palette220.setBrush(QPalette::Active, QPalette::WindowText, brush); palette220.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12336,10 +12368,10 @@ public: palette220.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette220.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette220.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_13->setPalette(palette220); - ActuatorButton06_14 = new QPushButton(frame); - ActuatorButton06_14->setObjectName(QString::fromUtf8("ActuatorButton06_14")); - ActuatorButton06_14->setGeometry(QRect(862, 522, 10, 10)); + ActuatorButton06_08->setPalette(palette220); + ActuatorButton06_09 = new QPushButton(frame); + ActuatorButton06_09->setObjectName(QString::fromUtf8("ActuatorButton06_09")); + ActuatorButton06_09->setGeometry(QRect(811, 275, 10, 10)); QPalette palette221; palette221.setBrush(QPalette::Active, QPalette::WindowText, brush); palette221.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12389,10 +12421,10 @@ public: palette221.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette221.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette221.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_14->setPalette(palette221); - ActuatorButton06_15 = new QPushButton(frame); - ActuatorButton06_15->setObjectName(QString::fromUtf8("ActuatorButton06_15")); - ActuatorButton06_15->setGeometry(QRect(850, 573, 10, 10)); + ActuatorButton06_09->setPalette(palette221); + ActuatorButton06_10 = new QPushButton(frame); + ActuatorButton06_10->setObjectName(QString::fromUtf8("ActuatorButton06_10")); + ActuatorButton06_10->setGeometry(QRect(834, 320, 10, 10)); QPalette palette222; palette222.setBrush(QPalette::Active, QPalette::WindowText, brush); palette222.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12442,10 +12474,10 @@ public: palette222.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette222.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette222.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_15->setPalette(palette222); - ActuatorButton06_16 = new QPushButton(frame); - ActuatorButton06_16->setObjectName(QString::fromUtf8("ActuatorButton06_16")); - ActuatorButton06_16->setGeometry(QRect(834, 622, 10, 10)); + ActuatorButton06_10->setPalette(palette222); + ActuatorButton06_12 = new QPushButton(frame); + ActuatorButton06_12->setObjectName(QString::fromUtf8("ActuatorButton06_12")); + ActuatorButton06_12->setGeometry(QRect(861, 420, 10, 10)); QPalette palette223; palette223.setBrush(QPalette::Active, QPalette::WindowText, brush); palette223.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12495,10 +12527,10 @@ public: palette223.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette223.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette223.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_16->setPalette(palette223); - ActuatorButton06_17 = new QPushButton(frame); - ActuatorButton06_17->setObjectName(QString::fromUtf8("ActuatorButton06_17")); - ActuatorButton06_17->setGeometry(QRect(811, 668, 10, 10)); + ActuatorButton06_12->setPalette(palette223); + ActuatorButton06_13 = new QPushButton(frame); + ActuatorButton06_13->setObjectName(QString::fromUtf8("ActuatorButton06_13")); + ActuatorButton06_13->setGeometry(QRect(865, 471, 10, 10)); QPalette palette224; palette224.setBrush(QPalette::Active, QPalette::WindowText, brush); palette224.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12548,10 +12580,10 @@ public: palette224.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette224.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette224.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_17->setPalette(palette224); - ActuatorButton06_18 = new QPushButton(frame); - ActuatorButton06_18->setObjectName(QString::fromUtf8("ActuatorButton06_18")); - ActuatorButton06_18->setGeometry(QRect(783, 710, 10, 10)); + ActuatorButton06_13->setPalette(palette224); + ActuatorButton06_14 = new QPushButton(frame); + ActuatorButton06_14->setObjectName(QString::fromUtf8("ActuatorButton06_14")); + ActuatorButton06_14->setGeometry(QRect(862, 522, 10, 10)); QPalette palette225; palette225.setBrush(QPalette::Active, QPalette::WindowText, brush); palette225.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12601,10 +12633,10 @@ public: palette225.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette225.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette225.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_18->setPalette(palette225); - ActuatorButton06_19 = new QPushButton(frame); - ActuatorButton06_19->setObjectName(QString::fromUtf8("ActuatorButton06_19")); - ActuatorButton06_19->setGeometry(QRect(749, 749, 10, 10)); + ActuatorButton06_14->setPalette(palette225); + ActuatorButton06_15 = new QPushButton(frame); + ActuatorButton06_15->setObjectName(QString::fromUtf8("ActuatorButton06_15")); + ActuatorButton06_15->setGeometry(QRect(850, 573, 10, 10)); QPalette palette226; palette226.setBrush(QPalette::Active, QPalette::WindowText, brush); palette226.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12654,10 +12686,10 @@ public: palette226.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette226.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette226.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_19->setPalette(palette226); - ActuatorButton06_20 = new QPushButton(frame); - ActuatorButton06_20->setObjectName(QString::fromUtf8("ActuatorButton06_20")); - ActuatorButton06_20->setGeometry(QRect(709, 783, 10, 10)); + ActuatorButton06_15->setPalette(palette226); + ActuatorButton06_16 = new QPushButton(frame); + ActuatorButton06_16->setObjectName(QString::fromUtf8("ActuatorButton06_16")); + ActuatorButton06_16->setGeometry(QRect(834, 622, 10, 10)); QPalette palette227; palette227.setBrush(QPalette::Active, QPalette::WindowText, brush); palette227.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12707,10 +12739,10 @@ public: palette227.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette227.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette227.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_20->setPalette(palette227); - ActuatorButton06_21 = new QPushButton(frame); - ActuatorButton06_21->setObjectName(QString::fromUtf8("ActuatorButton06_21")); - ActuatorButton06_21->setGeometry(QRect(668, 812, 10, 10)); + ActuatorButton06_16->setPalette(palette227); + ActuatorButton06_17 = new QPushButton(frame); + ActuatorButton06_17->setObjectName(QString::fromUtf8("ActuatorButton06_17")); + ActuatorButton06_17->setGeometry(QRect(811, 668, 10, 10)); QPalette palette228; palette228.setBrush(QPalette::Active, QPalette::WindowText, brush); palette228.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12760,10 +12792,10 @@ public: palette228.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette228.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette228.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_21->setPalette(palette228); - ActuatorButton06_22 = new QPushButton(frame); - ActuatorButton06_22->setObjectName(QString::fromUtf8("ActuatorButton06_22")); - ActuatorButton06_22->setGeometry(QRect(621, 835, 10, 10)); + ActuatorButton06_17->setPalette(palette228); + ActuatorButton06_18 = new QPushButton(frame); + ActuatorButton06_18->setObjectName(QString::fromUtf8("ActuatorButton06_18")); + ActuatorButton06_18->setGeometry(QRect(783, 710, 10, 10)); QPalette palette229; palette229.setBrush(QPalette::Active, QPalette::WindowText, brush); palette229.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12813,10 +12845,10 @@ public: palette229.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette229.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette229.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_22->setPalette(palette229); - ActuatorButton06_23 = new QPushButton(frame); - ActuatorButton06_23->setObjectName(QString::fromUtf8("ActuatorButton06_23")); - ActuatorButton06_23->setGeometry(QRect(572, 851, 10, 10)); + ActuatorButton06_18->setPalette(palette229); + ActuatorButton06_19 = new QPushButton(frame); + ActuatorButton06_19->setObjectName(QString::fromUtf8("ActuatorButton06_19")); + ActuatorButton06_19->setGeometry(QRect(749, 749, 10, 10)); QPalette palette230; palette230.setBrush(QPalette::Active, QPalette::WindowText, brush); palette230.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12866,10 +12898,10 @@ public: palette230.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette230.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette230.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_23->setPalette(palette230); - ActuatorButton06_24 = new QPushButton(frame); - ActuatorButton06_24->setObjectName(QString::fromUtf8("ActuatorButton06_24")); - ActuatorButton06_24->setGeometry(QRect(522, 861, 10, 10)); + ActuatorButton06_19->setPalette(palette230); + ActuatorButton06_20 = new QPushButton(frame); + ActuatorButton06_20->setObjectName(QString::fromUtf8("ActuatorButton06_20")); + ActuatorButton06_20->setGeometry(QRect(709, 783, 10, 10)); QPalette palette231; palette231.setBrush(QPalette::Active, QPalette::WindowText, brush); palette231.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12919,10 +12951,10 @@ public: palette231.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette231.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette231.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_24->setPalette(palette231); - ActuatorButton06_25 = new QPushButton(frame); - ActuatorButton06_25->setObjectName(QString::fromUtf8("ActuatorButton06_25")); - ActuatorButton06_25->setGeometry(QRect(471, 864, 10, 10)); + ActuatorButton06_20->setPalette(palette231); + ActuatorButton06_21 = new QPushButton(frame); + ActuatorButton06_21->setObjectName(QString::fromUtf8("ActuatorButton06_21")); + ActuatorButton06_21->setGeometry(QRect(668, 812, 10, 10)); QPalette palette232; palette232.setBrush(QPalette::Active, QPalette::WindowText, brush); palette232.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -12972,10 +13004,10 @@ public: palette232.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette232.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette232.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_25->setPalette(palette232); - ActuatorButton06_26 = new QPushButton(frame); - ActuatorButton06_26->setObjectName(QString::fromUtf8("ActuatorButton06_26")); - ActuatorButton06_26->setGeometry(QRect(419, 861, 10, 10)); + ActuatorButton06_21->setPalette(palette232); + ActuatorButton06_22 = new QPushButton(frame); + ActuatorButton06_22->setObjectName(QString::fromUtf8("ActuatorButton06_22")); + ActuatorButton06_22->setGeometry(QRect(621, 835, 10, 10)); QPalette palette233; palette233.setBrush(QPalette::Active, QPalette::WindowText, brush); palette233.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13025,10 +13057,10 @@ public: palette233.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette233.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette233.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_26->setPalette(palette233); - ActuatorButton06_27 = new QPushButton(frame); - ActuatorButton06_27->setObjectName(QString::fromUtf8("ActuatorButton06_27")); - ActuatorButton06_27->setGeometry(QRect(369, 851, 10, 10)); + ActuatorButton06_22->setPalette(palette233); + ActuatorButton06_23 = new QPushButton(frame); + ActuatorButton06_23->setObjectName(QString::fromUtf8("ActuatorButton06_23")); + ActuatorButton06_23->setGeometry(QRect(572, 851, 10, 10)); QPalette palette234; palette234.setBrush(QPalette::Active, QPalette::WindowText, brush); palette234.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13078,10 +13110,10 @@ public: palette234.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette234.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette234.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_27->setPalette(palette234); - ActuatorButton06_28 = new QPushButton(frame); - ActuatorButton06_28->setObjectName(QString::fromUtf8("ActuatorButton06_28")); - ActuatorButton06_28->setGeometry(QRect(320, 835, 10, 10)); + ActuatorButton06_23->setPalette(palette234); + ActuatorButton06_24 = new QPushButton(frame); + ActuatorButton06_24->setObjectName(QString::fromUtf8("ActuatorButton06_24")); + ActuatorButton06_24->setGeometry(QRect(522, 861, 10, 10)); QPalette palette235; palette235.setBrush(QPalette::Active, QPalette::WindowText, brush); palette235.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13131,10 +13163,10 @@ public: palette235.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette235.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette235.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_28->setPalette(palette235); - ActuatorButton06_29 = new QPushButton(frame); - ActuatorButton06_29->setObjectName(QString::fromUtf8("ActuatorButton06_29")); - ActuatorButton06_29->setGeometry(QRect(274, 812, 10, 10)); + ActuatorButton06_24->setPalette(palette235); + ActuatorButton06_25 = new QPushButton(frame); + ActuatorButton06_25->setObjectName(QString::fromUtf8("ActuatorButton06_25")); + ActuatorButton06_25->setGeometry(QRect(471, 864, 10, 10)); QPalette palette236; palette236.setBrush(QPalette::Active, QPalette::WindowText, brush); palette236.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13184,10 +13216,10 @@ public: palette236.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette236.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette236.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_29->setPalette(palette236); - ActuatorButton06_30 = new QPushButton(frame); - ActuatorButton06_30->setObjectName(QString::fromUtf8("ActuatorButton06_30")); - ActuatorButton06_30->setGeometry(QRect(231, 783, 10, 10)); + ActuatorButton06_25->setPalette(palette236); + ActuatorButton06_26 = new QPushButton(frame); + ActuatorButton06_26->setObjectName(QString::fromUtf8("ActuatorButton06_26")); + ActuatorButton06_26->setGeometry(QRect(419, 861, 10, 10)); QPalette palette237; palette237.setBrush(QPalette::Active, QPalette::WindowText, brush); palette237.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13237,10 +13269,10 @@ public: palette237.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette237.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette237.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_30->setPalette(palette237); - ActuatorButton06_31 = new QPushButton(frame); - ActuatorButton06_31->setObjectName(QString::fromUtf8("ActuatorButton06_31")); - ActuatorButton06_31->setGeometry(QRect(192, 750, 10, 10)); + ActuatorButton06_26->setPalette(palette237); + ActuatorButton06_27 = new QPushButton(frame); + ActuatorButton06_27->setObjectName(QString::fromUtf8("ActuatorButton06_27")); + ActuatorButton06_27->setGeometry(QRect(369, 851, 10, 10)); QPalette palette238; palette238.setBrush(QPalette::Active, QPalette::WindowText, brush); palette238.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13290,10 +13322,10 @@ public: palette238.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette238.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette238.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_31->setPalette(palette238); - ActuatorButton06_32 = new QPushButton(frame); - ActuatorButton06_32->setObjectName(QString::fromUtf8("ActuatorButton06_32")); - ActuatorButton06_32->setGeometry(QRect(158, 711, 10, 10)); + ActuatorButton06_27->setPalette(palette238); + ActuatorButton06_28 = new QPushButton(frame); + ActuatorButton06_28->setObjectName(QString::fromUtf8("ActuatorButton06_28")); + ActuatorButton06_28->setGeometry(QRect(320, 835, 10, 10)); QPalette palette239; palette239.setBrush(QPalette::Active, QPalette::WindowText, brush); palette239.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13343,10 +13375,10 @@ public: palette239.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette239.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette239.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_32->setPalette(palette239); - ActuatorButton06_33 = new QPushButton(frame); - ActuatorButton06_33->setObjectName(QString::fromUtf8("ActuatorButton06_33")); - ActuatorButton06_33->setGeometry(QRect(129, 668, 10, 10)); + ActuatorButton06_28->setPalette(palette239); + ActuatorButton06_29 = new QPushButton(frame); + ActuatorButton06_29->setObjectName(QString::fromUtf8("ActuatorButton06_29")); + ActuatorButton06_29->setGeometry(QRect(274, 812, 10, 10)); QPalette palette240; palette240.setBrush(QPalette::Active, QPalette::WindowText, brush); palette240.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13396,10 +13428,10 @@ public: palette240.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette240.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette240.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_33->setPalette(palette240); - ActuatorButton06_34 = new QPushButton(frame); - ActuatorButton06_34->setObjectName(QString::fromUtf8("ActuatorButton06_34")); - ActuatorButton06_34->setGeometry(QRect(107, 622, 10, 10)); + ActuatorButton06_29->setPalette(palette240); + ActuatorButton06_30 = new QPushButton(frame); + ActuatorButton06_30->setObjectName(QString::fromUtf8("ActuatorButton06_30")); + ActuatorButton06_30->setGeometry(QRect(231, 783, 10, 10)); QPalette palette241; palette241.setBrush(QPalette::Active, QPalette::WindowText, brush); palette241.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13449,10 +13481,10 @@ public: palette241.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette241.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette241.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_34->setPalette(palette241); - ActuatorButton06_35 = new QPushButton(frame); - ActuatorButton06_35->setObjectName(QString::fromUtf8("ActuatorButton06_35")); - ActuatorButton06_35->setGeometry(QRect(90, 573, 10, 10)); + ActuatorButton06_30->setPalette(palette241); + ActuatorButton06_31 = new QPushButton(frame); + ActuatorButton06_31->setObjectName(QString::fromUtf8("ActuatorButton06_31")); + ActuatorButton06_31->setGeometry(QRect(192, 750, 10, 10)); QPalette palette242; palette242.setBrush(QPalette::Active, QPalette::WindowText, brush); palette242.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13502,10 +13534,10 @@ public: palette242.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette242.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette242.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_35->setPalette(palette242); - ActuatorButton06_36 = new QPushButton(frame); - ActuatorButton06_36->setObjectName(QString::fromUtf8("ActuatorButton06_36")); - ActuatorButton06_36->setGeometry(QRect(80, 523, 10, 10)); + ActuatorButton06_31->setPalette(palette242); + ActuatorButton06_32 = new QPushButton(frame); + ActuatorButton06_32->setObjectName(QString::fromUtf8("ActuatorButton06_32")); + ActuatorButton06_32->setGeometry(QRect(158, 711, 10, 10)); QPalette palette243; palette243.setBrush(QPalette::Active, QPalette::WindowText, brush); palette243.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13555,10 +13587,10 @@ public: palette243.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette243.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette243.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_36->setPalette(palette243); - ActuatorButton06_37 = new QPushButton(frame); - ActuatorButton06_37->setObjectName(QString::fromUtf8("ActuatorButton06_37")); - ActuatorButton06_37->setGeometry(QRect(77, 471, 10, 10)); + ActuatorButton06_32->setPalette(palette243); + ActuatorButton06_33 = new QPushButton(frame); + ActuatorButton06_33->setObjectName(QString::fromUtf8("ActuatorButton06_33")); + ActuatorButton06_33->setGeometry(QRect(129, 668, 10, 10)); QPalette palette244; palette244.setBrush(QPalette::Active, QPalette::WindowText, brush); palette244.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13608,10 +13640,10 @@ public: palette244.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette244.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette244.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_37->setPalette(palette244); - ActuatorButton06_38 = new QPushButton(frame); - ActuatorButton06_38->setObjectName(QString::fromUtf8("ActuatorButton06_38")); - ActuatorButton06_38->setGeometry(QRect(80, 420, 10, 10)); + ActuatorButton06_33->setPalette(palette244); + ActuatorButton06_34 = new QPushButton(frame); + ActuatorButton06_34->setObjectName(QString::fromUtf8("ActuatorButton06_34")); + ActuatorButton06_34->setGeometry(QRect(107, 622, 10, 10)); QPalette palette245; palette245.setBrush(QPalette::Active, QPalette::WindowText, brush); palette245.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13661,10 +13693,10 @@ public: palette245.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette245.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette245.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_38->setPalette(palette245); - ActuatorButton06_39 = new QPushButton(frame); - ActuatorButton06_39->setObjectName(QString::fromUtf8("ActuatorButton06_39")); - ActuatorButton06_39->setGeometry(QRect(90, 370, 10, 10)); + ActuatorButton06_34->setPalette(palette245); + ActuatorButton06_35 = new QPushButton(frame); + ActuatorButton06_35->setObjectName(QString::fromUtf8("ActuatorButton06_35")); + ActuatorButton06_35->setGeometry(QRect(90, 573, 10, 10)); QPalette palette246; palette246.setBrush(QPalette::Active, QPalette::WindowText, brush); palette246.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13714,10 +13746,10 @@ public: palette246.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette246.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette246.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_39->setPalette(palette246); - ActuatorButton06_40 = new QPushButton(frame); - ActuatorButton06_40->setObjectName(QString::fromUtf8("ActuatorButton06_40")); - ActuatorButton06_40->setGeometry(QRect(107, 321, 10, 10)); + ActuatorButton06_35->setPalette(palette246); + ActuatorButton06_36 = new QPushButton(frame); + ActuatorButton06_36->setObjectName(QString::fromUtf8("ActuatorButton06_36")); + ActuatorButton06_36->setGeometry(QRect(80, 523, 10, 10)); QPalette palette247; palette247.setBrush(QPalette::Active, QPalette::WindowText, brush); palette247.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13767,10 +13799,10 @@ public: palette247.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette247.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette247.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_40->setPalette(palette247); - ActuatorButton06_41 = new QPushButton(frame); - ActuatorButton06_41->setObjectName(QString::fromUtf8("ActuatorButton06_41")); - ActuatorButton06_41->setGeometry(QRect(130, 275, 10, 10)); + ActuatorButton06_36->setPalette(palette247); + ActuatorButton06_37 = new QPushButton(frame); + ActuatorButton06_37->setObjectName(QString::fromUtf8("ActuatorButton06_37")); + ActuatorButton06_37->setGeometry(QRect(77, 471, 10, 10)); QPalette palette248; palette248.setBrush(QPalette::Active, QPalette::WindowText, brush); palette248.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13820,10 +13852,10 @@ public: palette248.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette248.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette248.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_41->setPalette(palette248); - ActuatorButton06_42 = new QPushButton(frame); - ActuatorButton06_42->setObjectName(QString::fromUtf8("ActuatorButton06_42")); - ActuatorButton06_42->setGeometry(QRect(159, 232, 10, 10)); + ActuatorButton06_37->setPalette(palette248); + ActuatorButton06_38 = new QPushButton(frame); + ActuatorButton06_38->setObjectName(QString::fromUtf8("ActuatorButton06_38")); + ActuatorButton06_38->setGeometry(QRect(80, 420, 10, 10)); QPalette palette249; palette249.setBrush(QPalette::Active, QPalette::WindowText, brush); palette249.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13873,10 +13905,10 @@ public: palette249.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette249.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette249.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_42->setPalette(palette249); - ActuatorButton06_43 = new QPushButton(frame); - ActuatorButton06_43->setObjectName(QString::fromUtf8("ActuatorButton06_43")); - ActuatorButton06_43->setGeometry(QRect(192, 193, 10, 10)); + ActuatorButton06_38->setPalette(palette249); + ActuatorButton06_39 = new QPushButton(frame); + ActuatorButton06_39->setObjectName(QString::fromUtf8("ActuatorButton06_39")); + ActuatorButton06_39->setGeometry(QRect(90, 370, 10, 10)); QPalette palette250; palette250.setBrush(QPalette::Active, QPalette::WindowText, brush); palette250.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13926,10 +13958,10 @@ public: palette250.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette250.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette250.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_43->setPalette(palette250); - ActuatorButton06_44 = new QPushButton(frame); - ActuatorButton06_44->setObjectName(QString::fromUtf8("ActuatorButton06_44")); - ActuatorButton06_44->setGeometry(QRect(231, 159, 10, 10)); + ActuatorButton06_39->setPalette(palette250); + ActuatorButton06_40 = new QPushButton(frame); + ActuatorButton06_40->setObjectName(QString::fromUtf8("ActuatorButton06_40")); + ActuatorButton06_40->setGeometry(QRect(107, 321, 10, 10)); QPalette palette251; palette251.setBrush(QPalette::Active, QPalette::WindowText, brush); palette251.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -13979,10 +14011,10 @@ public: palette251.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette251.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette251.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_44->setPalette(palette251); - ActuatorButton06_45 = new QPushButton(frame); - ActuatorButton06_45->setObjectName(QString::fromUtf8("ActuatorButton06_45")); - ActuatorButton06_45->setGeometry(QRect(273, 131, 10, 10)); + ActuatorButton06_40->setPalette(palette251); + ActuatorButton06_41 = new QPushButton(frame); + ActuatorButton06_41->setObjectName(QString::fromUtf8("ActuatorButton06_41")); + ActuatorButton06_41->setGeometry(QRect(130, 275, 10, 10)); QPalette palette252; palette252.setBrush(QPalette::Active, QPalette::WindowText, brush); palette252.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14032,10 +14064,10 @@ public: palette252.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette252.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette252.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_45->setPalette(palette252); - ActuatorButton06_46 = new QPushButton(frame); - ActuatorButton06_46->setObjectName(QString::fromUtf8("ActuatorButton06_46")); - ActuatorButton06_46->setGeometry(QRect(320, 107, 10, 10)); + ActuatorButton06_41->setPalette(palette252); + ActuatorButton06_42 = new QPushButton(frame); + ActuatorButton06_42->setObjectName(QString::fromUtf8("ActuatorButton06_42")); + ActuatorButton06_42->setGeometry(QRect(159, 232, 10, 10)); QPalette palette253; palette253.setBrush(QPalette::Active, QPalette::WindowText, brush); palette253.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14085,10 +14117,10 @@ public: palette253.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette253.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette253.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_46->setPalette(palette253); - ActuatorButton06_47 = new QPushButton(frame); - ActuatorButton06_47->setObjectName(QString::fromUtf8("ActuatorButton06_47")); - ActuatorButton06_47->setGeometry(QRect(368, 91, 10, 10)); + ActuatorButton06_42->setPalette(palette253); + ActuatorButton06_43 = new QPushButton(frame); + ActuatorButton06_43->setObjectName(QString::fromUtf8("ActuatorButton06_43")); + ActuatorButton06_43->setGeometry(QRect(192, 193, 10, 10)); QPalette palette254; palette254.setBrush(QPalette::Active, QPalette::WindowText, brush); palette254.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14138,10 +14170,10 @@ public: palette254.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette254.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette254.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_47->setPalette(palette254); - ActuatorButton06_48 = new QPushButton(frame); - ActuatorButton06_48->setObjectName(QString::fromUtf8("ActuatorButton06_48")); - ActuatorButton06_48->setGeometry(QRect(420, 81, 10, 10)); + ActuatorButton06_43->setPalette(palette254); + ActuatorButton06_44 = new QPushButton(frame); + ActuatorButton06_44->setObjectName(QString::fromUtf8("ActuatorButton06_44")); + ActuatorButton06_44->setGeometry(QRect(231, 159, 10, 10)); QPalette palette255; palette255.setBrush(QPalette::Active, QPalette::WindowText, brush); palette255.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14191,10 +14223,10 @@ public: palette255.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette255.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette255.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_48->setPalette(palette255); - C6ActuatorsButton = new QPushButton(frame); - C6ActuatorsButton->setObjectName(QString::fromUtf8("C6ActuatorsButton")); - C6ActuatorsButton->setGeometry(QRect(470, 88, 25, 15)); + ActuatorButton06_44->setPalette(palette255); + ActuatorButton06_45 = new QPushButton(frame); + ActuatorButton06_45->setObjectName(QString::fromUtf8("ActuatorButton06_45")); + ActuatorButton06_45->setGeometry(QRect(273, 131, 10, 10)); QPalette palette256; palette256.setBrush(QPalette::Active, QPalette::WindowText, brush); palette256.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14244,13 +14276,12 @@ public: palette256.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette256.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette256.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - C6ActuatorsButton->setPalette(palette256); - C6ActuatorsButton->setFont(font4); - R1ActuatorsButton = new QPushButton(frame); - R1ActuatorsButton->setObjectName(QString::fromUtf8("R1ActuatorsButton")); - R1ActuatorsButton->setGeometry(QRect(465, 40, 20, 20)); - QPalette palette257; - palette257.setBrush(QPalette::Active, QPalette::WindowText, brush); + ActuatorButton06_45->setPalette(palette256); + ActuatorButton06_46 = new QPushButton(frame); + ActuatorButton06_46->setObjectName(QString::fromUtf8("ActuatorButton06_46")); + ActuatorButton06_46->setGeometry(QRect(320, 107, 10, 10)); + QPalette palette257; + palette257.setBrush(QPalette::Active, QPalette::WindowText, brush); palette257.setBrush(QPalette::Active, QPalette::Button, brush1); palette257.setBrush(QPalette::Active, QPalette::Light, brush2); palette257.setBrush(QPalette::Active, QPalette::Midlight, brush3); @@ -14298,10 +14329,10 @@ public: palette257.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette257.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette257.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R1ActuatorsButton->setPalette(palette257); - R2ActuatorsButton = new QPushButton(frame); - R2ActuatorsButton->setObjectName(QString::fromUtf8("R2ActuatorsButton")); - R2ActuatorsButton->setGeometry(QRect(520, 50, 20, 20)); + ActuatorButton06_46->setPalette(palette257); + ActuatorButton06_47 = new QPushButton(frame); + ActuatorButton06_47->setObjectName(QString::fromUtf8("ActuatorButton06_47")); + ActuatorButton06_47->setGeometry(QRect(368, 91, 10, 10)); QPalette palette258; palette258.setBrush(QPalette::Active, QPalette::WindowText, brush); palette258.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14351,10 +14382,10 @@ public: palette258.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette258.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette258.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R2ActuatorsButton->setPalette(palette258); - R3ActuatorsButton = new QPushButton(frame); - R3ActuatorsButton->setObjectName(QString::fromUtf8("R3ActuatorsButton")); - R3ActuatorsButton->setGeometry(QRect(570, 60, 20, 20)); + ActuatorButton06_47->setPalette(palette258); + ActuatorButton06_48 = new QPushButton(frame); + ActuatorButton06_48->setObjectName(QString::fromUtf8("ActuatorButton06_48")); + ActuatorButton06_48->setGeometry(QRect(420, 81, 10, 10)); QPalette palette259; palette259.setBrush(QPalette::Active, QPalette::WindowText, brush); palette259.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14404,10 +14435,10 @@ public: palette259.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette259.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette259.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R3ActuatorsButton->setPalette(palette259); - R4ActuatorsButton = new QPushButton(frame); - R4ActuatorsButton->setObjectName(QString::fromUtf8("R4ActuatorsButton")); - R4ActuatorsButton->setGeometry(QRect(620, 80, 20, 20)); + ActuatorButton06_48->setPalette(palette259); + C6ActuatorsButton = new QPushButton(frame); + C6ActuatorsButton->setObjectName(QString::fromUtf8("C6ActuatorsButton")); + C6ActuatorsButton->setGeometry(QRect(470, 88, 25, 15)); QPalette palette260; palette260.setBrush(QPalette::Active, QPalette::WindowText, brush); palette260.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14457,10 +14488,11 @@ public: palette260.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette260.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette260.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R4ActuatorsButton->setPalette(palette260); - R5ActuatorsButton = new QPushButton(frame); - R5ActuatorsButton->setObjectName(QString::fromUtf8("R5ActuatorsButton")); - R5ActuatorsButton->setGeometry(QRect(680, 100, 20, 20)); + C6ActuatorsButton->setPalette(palette260); + C6ActuatorsButton->setFont(font4); + R1ActuatorsButton = new QPushButton(frame); + R1ActuatorsButton->setObjectName(QString::fromUtf8("R1ActuatorsButton")); + R1ActuatorsButton->setGeometry(QRect(465, 40, 20, 20)); QPalette palette261; palette261.setBrush(QPalette::Active, QPalette::WindowText, brush); palette261.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14510,10 +14542,10 @@ public: palette261.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette261.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette261.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R5ActuatorsButton->setPalette(palette261); - R6ActuatorsButton = new QPushButton(frame); - R6ActuatorsButton->setObjectName(QString::fromUtf8("R6ActuatorsButton")); - R6ActuatorsButton->setGeometry(QRect(730, 130, 20, 20)); + R1ActuatorsButton->setPalette(palette261); + R2ActuatorsButton = new QPushButton(frame); + R2ActuatorsButton->setObjectName(QString::fromUtf8("R2ActuatorsButton")); + R2ActuatorsButton->setGeometry(QRect(520, 50, 20, 20)); QPalette palette262; palette262.setBrush(QPalette::Active, QPalette::WindowText, brush); palette262.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14563,10 +14595,10 @@ public: palette262.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette262.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette262.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R6ActuatorsButton->setPalette(palette262); - R7ActuatorsButton = new QPushButton(frame); - R7ActuatorsButton->setObjectName(QString::fromUtf8("R7ActuatorsButton")); - R7ActuatorsButton->setGeometry(QRect(770, 160, 20, 20)); + R2ActuatorsButton->setPalette(palette262); + R3ActuatorsButton = new QPushButton(frame); + R3ActuatorsButton->setObjectName(QString::fromUtf8("R3ActuatorsButton")); + R3ActuatorsButton->setGeometry(QRect(570, 60, 20, 20)); QPalette palette263; palette263.setBrush(QPalette::Active, QPalette::WindowText, brush); palette263.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14616,10 +14648,10 @@ public: palette263.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette263.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette263.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R7ActuatorsButton->setPalette(palette263); - R8ActuatorsButton = new QPushButton(frame); - R8ActuatorsButton->setObjectName(QString::fromUtf8("R8ActuatorsButton")); - R8ActuatorsButton->setGeometry(QRect(800, 210, 20, 20)); + R3ActuatorsButton->setPalette(palette263); + R4ActuatorsButton = new QPushButton(frame); + R4ActuatorsButton->setObjectName(QString::fromUtf8("R4ActuatorsButton")); + R4ActuatorsButton->setGeometry(QRect(620, 80, 20, 20)); QPalette palette264; palette264.setBrush(QPalette::Active, QPalette::WindowText, brush); palette264.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14669,10 +14701,10 @@ public: palette264.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette264.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette264.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R8ActuatorsButton->setPalette(palette264); - R9ActuatorsButton = new QPushButton(frame); - R9ActuatorsButton->setObjectName(QString::fromUtf8("R9ActuatorsButton")); - R9ActuatorsButton->setGeometry(QRect(830, 250, 20, 20)); + R4ActuatorsButton->setPalette(palette264); + R5ActuatorsButton = new QPushButton(frame); + R5ActuatorsButton->setObjectName(QString::fromUtf8("R5ActuatorsButton")); + R5ActuatorsButton->setGeometry(QRect(680, 100, 20, 20)); QPalette palette265; palette265.setBrush(QPalette::Active, QPalette::WindowText, brush); palette265.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14722,10 +14754,10 @@ public: palette265.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette265.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette265.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R9ActuatorsButton->setPalette(palette265); - R10ActuatorsButton = new QPushButton(frame); - R10ActuatorsButton->setObjectName(QString::fromUtf8("R10ActuatorsButton")); - R10ActuatorsButton->setGeometry(QRect(860, 300, 20, 20)); + R5ActuatorsButton->setPalette(palette265); + R6ActuatorsButton = new QPushButton(frame); + R6ActuatorsButton->setObjectName(QString::fromUtf8("R6ActuatorsButton")); + R6ActuatorsButton->setGeometry(QRect(730, 130, 20, 20)); QPalette palette266; palette266.setBrush(QPalette::Active, QPalette::WindowText, brush); palette266.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14775,10 +14807,10 @@ public: palette266.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette266.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette266.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R10ActuatorsButton->setPalette(palette266); - R11ActuatorsButton = new QPushButton(frame); - R11ActuatorsButton->setObjectName(QString::fromUtf8("R11ActuatorsButton")); - R11ActuatorsButton->setGeometry(QRect(870, 360, 20, 20)); + R6ActuatorsButton->setPalette(palette266); + R7ActuatorsButton = new QPushButton(frame); + R7ActuatorsButton->setObjectName(QString::fromUtf8("R7ActuatorsButton")); + R7ActuatorsButton->setGeometry(QRect(770, 160, 20, 20)); QPalette palette267; palette267.setBrush(QPalette::Active, QPalette::WindowText, brush); palette267.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14828,10 +14860,10 @@ public: palette267.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette267.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette267.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R11ActuatorsButton->setPalette(palette267); - R12ActuatorsButton = new QPushButton(frame); - R12ActuatorsButton->setObjectName(QString::fromUtf8("R12ActuatorsButton")); - R12ActuatorsButton->setGeometry(QRect(880, 410, 20, 20)); + R7ActuatorsButton->setPalette(palette267); + R8ActuatorsButton = new QPushButton(frame); + R8ActuatorsButton->setObjectName(QString::fromUtf8("R8ActuatorsButton")); + R8ActuatorsButton->setGeometry(QRect(800, 210, 20, 20)); QPalette palette268; palette268.setBrush(QPalette::Active, QPalette::WindowText, brush); palette268.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14881,10 +14913,10 @@ public: palette268.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette268.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette268.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R12ActuatorsButton->setPalette(palette268); - R13ActuatorsButton = new QPushButton(frame); - R13ActuatorsButton->setObjectName(QString::fromUtf8("R13ActuatorsButton")); - R13ActuatorsButton->setGeometry(QRect(890, 470, 20, 20)); + R8ActuatorsButton->setPalette(palette268); + R9ActuatorsButton = new QPushButton(frame); + R9ActuatorsButton->setObjectName(QString::fromUtf8("R9ActuatorsButton")); + R9ActuatorsButton->setGeometry(QRect(830, 250, 20, 20)); QPalette palette269; palette269.setBrush(QPalette::Active, QPalette::WindowText, brush); palette269.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14934,10 +14966,10 @@ public: palette269.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette269.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette269.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R13ActuatorsButton->setPalette(palette269); - R14ActuatorsButton = new QPushButton(frame); - R14ActuatorsButton->setObjectName(QString::fromUtf8("R14ActuatorsButton")); - R14ActuatorsButton->setGeometry(QRect(890, 520, 20, 20)); + R9ActuatorsButton->setPalette(palette269); + R10ActuatorsButton = new QPushButton(frame); + R10ActuatorsButton->setObjectName(QString::fromUtf8("R10ActuatorsButton")); + R10ActuatorsButton->setGeometry(QRect(860, 300, 20, 20)); QPalette palette270; palette270.setBrush(QPalette::Active, QPalette::WindowText, brush); palette270.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -14987,10 +15019,10 @@ public: palette270.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette270.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette270.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R14ActuatorsButton->setPalette(palette270); - R15ActuatorsButton = new QPushButton(frame); - R15ActuatorsButton->setObjectName(QString::fromUtf8("R15ActuatorsButton")); - R15ActuatorsButton->setGeometry(QRect(870, 580, 20, 20)); + R10ActuatorsButton->setPalette(palette270); + R11ActuatorsButton = new QPushButton(frame); + R11ActuatorsButton->setObjectName(QString::fromUtf8("R11ActuatorsButton")); + R11ActuatorsButton->setGeometry(QRect(870, 360, 20, 20)); QPalette palette271; palette271.setBrush(QPalette::Active, QPalette::WindowText, brush); palette271.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15040,10 +15072,10 @@ public: palette271.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette271.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette271.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R15ActuatorsButton->setPalette(palette271); - R16ActuatorsButton = new QPushButton(frame); - R16ActuatorsButton->setObjectName(QString::fromUtf8("R16ActuatorsButton")); - R16ActuatorsButton->setGeometry(QRect(855, 630, 20, 20)); + R11ActuatorsButton->setPalette(palette271); + R12ActuatorsButton = new QPushButton(frame); + R12ActuatorsButton->setObjectName(QString::fromUtf8("R12ActuatorsButton")); + R12ActuatorsButton->setGeometry(QRect(880, 410, 20, 20)); QPalette palette272; palette272.setBrush(QPalette::Active, QPalette::WindowText, brush); palette272.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15093,10 +15125,10 @@ public: palette272.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette272.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette272.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R16ActuatorsButton->setPalette(palette272); - R17ActuatorsButton = new QPushButton(frame); - R17ActuatorsButton->setObjectName(QString::fromUtf8("R17ActuatorsButton")); - R17ActuatorsButton->setGeometry(QRect(830, 680, 20, 20)); + R12ActuatorsButton->setPalette(palette272); + R13ActuatorsButton = new QPushButton(frame); + R13ActuatorsButton->setObjectName(QString::fromUtf8("R13ActuatorsButton")); + R13ActuatorsButton->setGeometry(QRect(890, 470, 20, 20)); QPalette palette273; palette273.setBrush(QPalette::Active, QPalette::WindowText, brush); palette273.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15146,10 +15178,10 @@ public: palette273.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette273.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette273.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R17ActuatorsButton->setPalette(palette273); - R24ActuatorsButton = new QPushButton(frame); - R24ActuatorsButton->setObjectName(QString::fromUtf8("R24ActuatorsButton")); - R24ActuatorsButton->setGeometry(QRect(520, 880, 20, 20)); + R13ActuatorsButton->setPalette(palette273); + R14ActuatorsButton = new QPushButton(frame); + R14ActuatorsButton->setObjectName(QString::fromUtf8("R14ActuatorsButton")); + R14ActuatorsButton->setGeometry(QRect(890, 520, 20, 20)); QPalette palette274; palette274.setBrush(QPalette::Active, QPalette::WindowText, brush); palette274.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15199,11 +15231,10 @@ public: palette274.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette274.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette274.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R24ActuatorsButton->setPalette(palette274); - R24ActuatorsButton->setFont(font1); - R25ActuatorsButton = new QPushButton(frame); - R25ActuatorsButton->setObjectName(QString::fromUtf8("R25ActuatorsButton")); - R25ActuatorsButton->setGeometry(QRect(470, 890, 20, 20)); + R14ActuatorsButton->setPalette(palette274); + R15ActuatorsButton = new QPushButton(frame); + R15ActuatorsButton->setObjectName(QString::fromUtf8("R15ActuatorsButton")); + R15ActuatorsButton->setGeometry(QRect(870, 580, 20, 20)); QPalette palette275; palette275.setBrush(QPalette::Active, QPalette::WindowText, brush); palette275.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15253,11 +15284,10 @@ public: palette275.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette275.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette275.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R25ActuatorsButton->setPalette(palette275); - R25ActuatorsButton->setFont(font1); - R26ActuatorsButton = new QPushButton(frame); - R26ActuatorsButton->setObjectName(QString::fromUtf8("R26ActuatorsButton")); - R26ActuatorsButton->setGeometry(QRect(410, 880, 20, 20)); + R15ActuatorsButton->setPalette(palette275); + R16ActuatorsButton = new QPushButton(frame); + R16ActuatorsButton->setObjectName(QString::fromUtf8("R16ActuatorsButton")); + R16ActuatorsButton->setGeometry(QRect(855, 630, 20, 20)); QPalette palette276; palette276.setBrush(QPalette::Active, QPalette::WindowText, brush); palette276.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15307,11 +15337,10 @@ public: palette276.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette276.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette276.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R26ActuatorsButton->setPalette(palette276); - R26ActuatorsButton->setFont(font1); - R27ActuatorsButton = new QPushButton(frame); - R27ActuatorsButton->setObjectName(QString::fromUtf8("R27ActuatorsButton")); - R27ActuatorsButton->setGeometry(QRect(350, 870, 20, 20)); + R16ActuatorsButton->setPalette(palette276); + R17ActuatorsButton = new QPushButton(frame); + R17ActuatorsButton->setObjectName(QString::fromUtf8("R17ActuatorsButton")); + R17ActuatorsButton->setGeometry(QRect(830, 680, 20, 20)); QPalette palette277; palette277.setBrush(QPalette::Active, QPalette::WindowText, brush); palette277.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15361,11 +15390,10 @@ public: palette277.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette277.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette277.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R27ActuatorsButton->setPalette(palette277); - R27ActuatorsButton->setFont(font1); - R47ActuatorsButton = new QPushButton(frame); - R47ActuatorsButton->setObjectName(QString::fromUtf8("R47ActuatorsButton")); - R47ActuatorsButton->setGeometry(QRect(350, 60, 20, 20)); + R17ActuatorsButton->setPalette(palette277); + R24ActuatorsButton = new QPushButton(frame); + R24ActuatorsButton->setObjectName(QString::fromUtf8("R24ActuatorsButton")); + R24ActuatorsButton->setGeometry(QRect(520, 880, 20, 20)); QPalette palette278; palette278.setBrush(QPalette::Active, QPalette::WindowText, brush); palette278.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15415,11 +15443,11 @@ public: palette278.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette278.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette278.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R47ActuatorsButton->setPalette(palette278); - R47ActuatorsButton->setFont(font1); - R48ActuatorsButton = new QPushButton(frame); - R48ActuatorsButton->setObjectName(QString::fromUtf8("R48ActuatorsButton")); - R48ActuatorsButton->setGeometry(QRect(410, 50, 20, 20)); + R24ActuatorsButton->setPalette(palette278); + R24ActuatorsButton->setFont(font1); + R25ActuatorsButton = new QPushButton(frame); + R25ActuatorsButton->setObjectName(QString::fromUtf8("R25ActuatorsButton")); + R25ActuatorsButton->setGeometry(QRect(470, 890, 20, 20)); QPalette palette279; palette279.setBrush(QPalette::Active, QPalette::WindowText, brush); palette279.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15469,11 +15497,11 @@ public: palette279.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette279.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette279.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R48ActuatorsButton->setPalette(palette279); - R48ActuatorsButton->setFont(font1); - R18ActuatorsButton = new QPushButton(frame); - R18ActuatorsButton->setObjectName(QString::fromUtf8("R18ActuatorsButton")); - R18ActuatorsButton->setGeometry(QRect(800, 730, 20, 20)); + R25ActuatorsButton->setPalette(palette279); + R25ActuatorsButton->setFont(font1); + R26ActuatorsButton = new QPushButton(frame); + R26ActuatorsButton->setObjectName(QString::fromUtf8("R26ActuatorsButton")); + R26ActuatorsButton->setGeometry(QRect(410, 880, 20, 20)); QPalette palette280; palette280.setBrush(QPalette::Active, QPalette::WindowText, brush); palette280.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15523,11 +15551,11 @@ public: palette280.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette280.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette280.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R18ActuatorsButton->setPalette(palette280); - R18ActuatorsButton->setFont(font1); - R19ActuatorsButton = new QPushButton(frame); - R19ActuatorsButton->setObjectName(QString::fromUtf8("R19ActuatorsButton")); - R19ActuatorsButton->setGeometry(QRect(770, 770, 20, 20)); + R26ActuatorsButton->setPalette(palette280); + R26ActuatorsButton->setFont(font1); + R27ActuatorsButton = new QPushButton(frame); + R27ActuatorsButton->setObjectName(QString::fromUtf8("R27ActuatorsButton")); + R27ActuatorsButton->setGeometry(QRect(350, 870, 20, 20)); QPalette palette281; palette281.setBrush(QPalette::Active, QPalette::WindowText, brush); palette281.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15577,11 +15605,11 @@ public: palette281.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette281.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette281.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R19ActuatorsButton->setPalette(palette281); - R19ActuatorsButton->setFont(font1); - R23ActuatorsButton = new QPushButton(frame); - R23ActuatorsButton->setObjectName(QString::fromUtf8("R23ActuatorsButton")); - R23ActuatorsButton->setGeometry(QRect(580, 870, 20, 20)); + R27ActuatorsButton->setPalette(palette281); + R27ActuatorsButton->setFont(font1); + R47ActuatorsButton = new QPushButton(frame); + R47ActuatorsButton->setObjectName(QString::fromUtf8("R47ActuatorsButton")); + R47ActuatorsButton->setGeometry(QRect(350, 60, 20, 20)); QPalette palette282; palette282.setBrush(QPalette::Active, QPalette::WindowText, brush); palette282.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15631,11 +15659,11 @@ public: palette282.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette282.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette282.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R23ActuatorsButton->setPalette(palette282); - R23ActuatorsButton->setFont(font1); - R22ActuatorsButton = new QPushButton(frame); - R22ActuatorsButton->setObjectName(QString::fromUtf8("R22ActuatorsButton")); - R22ActuatorsButton->setGeometry(QRect(630, 850, 20, 20)); + R47ActuatorsButton->setPalette(palette282); + R47ActuatorsButton->setFont(font1); + R48ActuatorsButton = new QPushButton(frame); + R48ActuatorsButton->setObjectName(QString::fromUtf8("R48ActuatorsButton")); + R48ActuatorsButton->setGeometry(QRect(410, 50, 20, 20)); QPalette palette283; palette283.setBrush(QPalette::Active, QPalette::WindowText, brush); palette283.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15685,11 +15713,11 @@ public: palette283.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette283.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette283.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R22ActuatorsButton->setPalette(palette283); - R22ActuatorsButton->setFont(font1); - R21ActuatorsButton = new QPushButton(frame); - R21ActuatorsButton->setObjectName(QString::fromUtf8("R21ActuatorsButton")); - R21ActuatorsButton->setGeometry(QRect(680, 830, 20, 20)); + R48ActuatorsButton->setPalette(palette283); + R48ActuatorsButton->setFont(font1); + R18ActuatorsButton = new QPushButton(frame); + R18ActuatorsButton->setObjectName(QString::fromUtf8("R18ActuatorsButton")); + R18ActuatorsButton->setGeometry(QRect(800, 730, 20, 20)); QPalette palette284; palette284.setBrush(QPalette::Active, QPalette::WindowText, brush); palette284.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15739,11 +15767,11 @@ public: palette284.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette284.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette284.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R21ActuatorsButton->setPalette(palette284); - R21ActuatorsButton->setFont(font1); - R20ActuatorsButton = new QPushButton(frame); - R20ActuatorsButton->setObjectName(QString::fromUtf8("R20ActuatorsButton")); - R20ActuatorsButton->setGeometry(QRect(730, 800, 20, 20)); + R18ActuatorsButton->setPalette(palette284); + R18ActuatorsButton->setFont(font1); + R19ActuatorsButton = new QPushButton(frame); + R19ActuatorsButton->setObjectName(QString::fromUtf8("R19ActuatorsButton")); + R19ActuatorsButton->setGeometry(QRect(770, 770, 20, 20)); QPalette palette285; palette285.setBrush(QPalette::Active, QPalette::WindowText, brush); palette285.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15793,11 +15821,11 @@ public: palette285.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette285.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette285.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R20ActuatorsButton->setPalette(palette285); - R20ActuatorsButton->setFont(font1); - R28ActuatorsButton = new QPushButton(frame); - R28ActuatorsButton->setObjectName(QString::fromUtf8("R28ActuatorsButton")); - R28ActuatorsButton->setGeometry(QRect(300, 850, 20, 20)); + R19ActuatorsButton->setPalette(palette285); + R19ActuatorsButton->setFont(font1); + R23ActuatorsButton = new QPushButton(frame); + R23ActuatorsButton->setObjectName(QString::fromUtf8("R23ActuatorsButton")); + R23ActuatorsButton->setGeometry(QRect(580, 870, 20, 20)); QPalette palette286; palette286.setBrush(QPalette::Active, QPalette::WindowText, brush); palette286.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15847,11 +15875,11 @@ public: palette286.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette286.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette286.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R28ActuatorsButton->setPalette(palette286); - R28ActuatorsButton->setFont(font1); - R29ActuatorsButton = new QPushButton(frame); - R29ActuatorsButton->setObjectName(QString::fromUtf8("R29ActuatorsButton")); - R29ActuatorsButton->setGeometry(QRect(250, 830, 20, 20)); + R23ActuatorsButton->setPalette(palette286); + R23ActuatorsButton->setFont(font1); + R22ActuatorsButton = new QPushButton(frame); + R22ActuatorsButton->setObjectName(QString::fromUtf8("R22ActuatorsButton")); + R22ActuatorsButton->setGeometry(QRect(630, 850, 20, 20)); QPalette palette287; palette287.setBrush(QPalette::Active, QPalette::WindowText, brush); palette287.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15901,11 +15929,11 @@ public: palette287.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette287.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette287.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R29ActuatorsButton->setPalette(palette287); - R29ActuatorsButton->setFont(font1); - R30ActuatorsButton = new QPushButton(frame); - R30ActuatorsButton->setObjectName(QString::fromUtf8("R30ActuatorsButton")); - R30ActuatorsButton->setGeometry(QRect(200, 790, 20, 20)); + R22ActuatorsButton->setPalette(palette287); + R22ActuatorsButton->setFont(font1); + R21ActuatorsButton = new QPushButton(frame); + R21ActuatorsButton->setObjectName(QString::fromUtf8("R21ActuatorsButton")); + R21ActuatorsButton->setGeometry(QRect(680, 830, 20, 20)); QPalette palette288; palette288.setBrush(QPalette::Active, QPalette::WindowText, brush); palette288.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -15955,11 +15983,11 @@ public: palette288.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette288.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette288.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R30ActuatorsButton->setPalette(palette288); - R30ActuatorsButton->setFont(font1); - R31ActuatorsButton = new QPushButton(frame); - R31ActuatorsButton->setObjectName(QString::fromUtf8("R31ActuatorsButton")); - R31ActuatorsButton->setGeometry(QRect(160, 760, 20, 20)); + R21ActuatorsButton->setPalette(palette288); + R21ActuatorsButton->setFont(font1); + R20ActuatorsButton = new QPushButton(frame); + R20ActuatorsButton->setObjectName(QString::fromUtf8("R20ActuatorsButton")); + R20ActuatorsButton->setGeometry(QRect(730, 800, 20, 20)); QPalette palette289; palette289.setBrush(QPalette::Active, QPalette::WindowText, brush); palette289.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16009,11 +16037,11 @@ public: palette289.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette289.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette289.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R31ActuatorsButton->setPalette(palette289); - R31ActuatorsButton->setFont(font1); - R32ActuatorsButton = new QPushButton(frame); - R32ActuatorsButton->setObjectName(QString::fromUtf8("R32ActuatorsButton")); - R32ActuatorsButton->setGeometry(QRect(130, 720, 20, 20)); + R20ActuatorsButton->setPalette(palette289); + R20ActuatorsButton->setFont(font1); + R28ActuatorsButton = new QPushButton(frame); + R28ActuatorsButton->setObjectName(QString::fromUtf8("R28ActuatorsButton")); + R28ActuatorsButton->setGeometry(QRect(300, 850, 20, 20)); QPalette palette290; palette290.setBrush(QPalette::Active, QPalette::WindowText, brush); palette290.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16063,11 +16091,11 @@ public: palette290.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette290.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette290.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R32ActuatorsButton->setPalette(palette290); - R32ActuatorsButton->setFont(font1); - R33ActuatorsButton = new QPushButton(frame); - R33ActuatorsButton->setObjectName(QString::fromUtf8("R33ActuatorsButton")); - R33ActuatorsButton->setGeometry(QRect(100, 680, 20, 20)); + R28ActuatorsButton->setPalette(palette290); + R28ActuatorsButton->setFont(font1); + R29ActuatorsButton = new QPushButton(frame); + R29ActuatorsButton->setObjectName(QString::fromUtf8("R29ActuatorsButton")); + R29ActuatorsButton->setGeometry(QRect(250, 830, 20, 20)); QPalette palette291; palette291.setBrush(QPalette::Active, QPalette::WindowText, brush); palette291.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16117,11 +16145,11 @@ public: palette291.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette291.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette291.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R33ActuatorsButton->setPalette(palette291); - R33ActuatorsButton->setFont(font1); - R34ActuatorsButton = new QPushButton(frame); - R34ActuatorsButton->setObjectName(QString::fromUtf8("R34ActuatorsButton")); - R34ActuatorsButton->setGeometry(QRect(80, 630, 20, 20)); + R29ActuatorsButton->setPalette(palette291); + R29ActuatorsButton->setFont(font1); + R30ActuatorsButton = new QPushButton(frame); + R30ActuatorsButton->setObjectName(QString::fromUtf8("R30ActuatorsButton")); + R30ActuatorsButton->setGeometry(QRect(200, 790, 20, 20)); QPalette palette292; palette292.setBrush(QPalette::Active, QPalette::WindowText, brush); palette292.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16171,11 +16199,11 @@ public: palette292.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette292.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette292.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R34ActuatorsButton->setPalette(palette292); - R34ActuatorsButton->setFont(font1); - R35ActuatorsButton = new QPushButton(frame); - R35ActuatorsButton->setObjectName(QString::fromUtf8("R35ActuatorsButton")); - R35ActuatorsButton->setGeometry(QRect(60, 580, 20, 20)); + R30ActuatorsButton->setPalette(palette292); + R30ActuatorsButton->setFont(font1); + R31ActuatorsButton = new QPushButton(frame); + R31ActuatorsButton->setObjectName(QString::fromUtf8("R31ActuatorsButton")); + R31ActuatorsButton->setGeometry(QRect(160, 760, 20, 20)); QPalette palette293; palette293.setBrush(QPalette::Active, QPalette::WindowText, brush); palette293.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16225,11 +16253,11 @@ public: palette293.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette293.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette293.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R35ActuatorsButton->setPalette(palette293); - R35ActuatorsButton->setFont(font1); - R36ActuatorsButton = new QPushButton(frame); - R36ActuatorsButton->setObjectName(QString::fromUtf8("R36ActuatorsButton")); - R36ActuatorsButton->setGeometry(QRect(50, 520, 20, 20)); + R31ActuatorsButton->setPalette(palette293); + R31ActuatorsButton->setFont(font1); + R32ActuatorsButton = new QPushButton(frame); + R32ActuatorsButton->setObjectName(QString::fromUtf8("R32ActuatorsButton")); + R32ActuatorsButton->setGeometry(QRect(130, 720, 20, 20)); QPalette palette294; palette294.setBrush(QPalette::Active, QPalette::WindowText, brush); palette294.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16279,11 +16307,11 @@ public: palette294.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette294.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette294.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R36ActuatorsButton->setPalette(palette294); - R36ActuatorsButton->setFont(font1); - R37ActuatorsButton = new QPushButton(frame); - R37ActuatorsButton->setObjectName(QString::fromUtf8("R37ActuatorsButton")); - R37ActuatorsButton->setGeometry(QRect(50, 470, 20, 20)); + R32ActuatorsButton->setPalette(palette294); + R32ActuatorsButton->setFont(font1); + R33ActuatorsButton = new QPushButton(frame); + R33ActuatorsButton->setObjectName(QString::fromUtf8("R33ActuatorsButton")); + R33ActuatorsButton->setGeometry(QRect(100, 680, 20, 20)); QPalette palette295; palette295.setBrush(QPalette::Active, QPalette::WindowText, brush); palette295.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16333,11 +16361,11 @@ public: palette295.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette295.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette295.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R37ActuatorsButton->setPalette(palette295); - R37ActuatorsButton->setFont(font1); - R38ActuatorsButton = new QPushButton(frame); - R38ActuatorsButton->setObjectName(QString::fromUtf8("R38ActuatorsButton")); - R38ActuatorsButton->setGeometry(QRect(50, 410, 20, 20)); + R33ActuatorsButton->setPalette(palette295); + R33ActuatorsButton->setFont(font1); + R34ActuatorsButton = new QPushButton(frame); + R34ActuatorsButton->setObjectName(QString::fromUtf8("R34ActuatorsButton")); + R34ActuatorsButton->setGeometry(QRect(80, 630, 20, 20)); QPalette palette296; palette296.setBrush(QPalette::Active, QPalette::WindowText, brush); palette296.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16387,11 +16415,11 @@ public: palette296.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette296.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette296.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R38ActuatorsButton->setPalette(palette296); - R38ActuatorsButton->setFont(font1); - R39ActuatorsButton = new QPushButton(frame); - R39ActuatorsButton->setObjectName(QString::fromUtf8("R39ActuatorsButton")); - R39ActuatorsButton->setGeometry(QRect(60, 350, 20, 20)); + R34ActuatorsButton->setPalette(palette296); + R34ActuatorsButton->setFont(font1); + R35ActuatorsButton = new QPushButton(frame); + R35ActuatorsButton->setObjectName(QString::fromUtf8("R35ActuatorsButton")); + R35ActuatorsButton->setGeometry(QRect(60, 580, 20, 20)); QPalette palette297; palette297.setBrush(QPalette::Active, QPalette::WindowText, brush); palette297.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16441,11 +16469,11 @@ public: palette297.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette297.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette297.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R39ActuatorsButton->setPalette(palette297); - R39ActuatorsButton->setFont(font1); - R40ActuatorsButton = new QPushButton(frame); - R40ActuatorsButton->setObjectName(QString::fromUtf8("R40ActuatorsButton")); - R40ActuatorsButton->setGeometry(QRect(70, 300, 20, 20)); + R35ActuatorsButton->setPalette(palette297); + R35ActuatorsButton->setFont(font1); + R36ActuatorsButton = new QPushButton(frame); + R36ActuatorsButton->setObjectName(QString::fromUtf8("R36ActuatorsButton")); + R36ActuatorsButton->setGeometry(QRect(50, 520, 20, 20)); QPalette palette298; palette298.setBrush(QPalette::Active, QPalette::WindowText, brush); palette298.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16495,11 +16523,11 @@ public: palette298.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette298.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette298.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R40ActuatorsButton->setPalette(palette298); - R40ActuatorsButton->setFont(font1); - R41ActuatorsButton = new QPushButton(frame); - R41ActuatorsButton->setObjectName(QString::fromUtf8("R41ActuatorsButton")); - R41ActuatorsButton->setGeometry(QRect(100, 250, 20, 20)); + R36ActuatorsButton->setPalette(palette298); + R36ActuatorsButton->setFont(font1); + R37ActuatorsButton = new QPushButton(frame); + R37ActuatorsButton->setObjectName(QString::fromUtf8("R37ActuatorsButton")); + R37ActuatorsButton->setGeometry(QRect(50, 470, 20, 20)); QPalette palette299; palette299.setBrush(QPalette::Active, QPalette::WindowText, brush); palette299.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16549,11 +16577,11 @@ public: palette299.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette299.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette299.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R41ActuatorsButton->setPalette(palette299); - R41ActuatorsButton->setFont(font1); - R42ActuatorsButton = new QPushButton(frame); - R42ActuatorsButton->setObjectName(QString::fromUtf8("R42ActuatorsButton")); - R42ActuatorsButton->setGeometry(QRect(130, 210, 20, 20)); + R37ActuatorsButton->setPalette(palette299); + R37ActuatorsButton->setFont(font1); + R38ActuatorsButton = new QPushButton(frame); + R38ActuatorsButton->setObjectName(QString::fromUtf8("R38ActuatorsButton")); + R38ActuatorsButton->setGeometry(QRect(50, 410, 20, 20)); QPalette palette300; palette300.setBrush(QPalette::Active, QPalette::WindowText, brush); palette300.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16603,11 +16631,11 @@ public: palette300.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette300.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette300.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R42ActuatorsButton->setPalette(palette300); - R42ActuatorsButton->setFont(font1); - R43ActuatorsButton = new QPushButton(frame); - R43ActuatorsButton->setObjectName(QString::fromUtf8("R43ActuatorsButton")); - R43ActuatorsButton->setGeometry(QRect(160, 160, 20, 20)); + R38ActuatorsButton->setPalette(palette300); + R38ActuatorsButton->setFont(font1); + R39ActuatorsButton = new QPushButton(frame); + R39ActuatorsButton->setObjectName(QString::fromUtf8("R39ActuatorsButton")); + R39ActuatorsButton->setGeometry(QRect(60, 350, 20, 20)); QPalette palette301; palette301.setBrush(QPalette::Active, QPalette::WindowText, brush); palette301.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16657,11 +16685,11 @@ public: palette301.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette301.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette301.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R43ActuatorsButton->setPalette(palette301); - R43ActuatorsButton->setFont(font1); - R44ActuatorsButton = new QPushButton(frame); - R44ActuatorsButton->setObjectName(QString::fromUtf8("R44ActuatorsButton")); - R44ActuatorsButton->setGeometry(QRect(210, 130, 20, 20)); + R39ActuatorsButton->setPalette(palette301); + R39ActuatorsButton->setFont(font1); + R40ActuatorsButton = new QPushButton(frame); + R40ActuatorsButton->setObjectName(QString::fromUtf8("R40ActuatorsButton")); + R40ActuatorsButton->setGeometry(QRect(70, 300, 20, 20)); QPalette palette302; palette302.setBrush(QPalette::Active, QPalette::WindowText, brush); palette302.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16711,11 +16739,11 @@ public: palette302.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette302.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette302.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R44ActuatorsButton->setPalette(palette302); - R44ActuatorsButton->setFont(font1); - R45ActuatorsButton = new QPushButton(frame); - R45ActuatorsButton->setObjectName(QString::fromUtf8("R45ActuatorsButton")); - R45ActuatorsButton->setGeometry(QRect(250, 100, 20, 20)); + R40ActuatorsButton->setPalette(palette302); + R40ActuatorsButton->setFont(font1); + R41ActuatorsButton = new QPushButton(frame); + R41ActuatorsButton->setObjectName(QString::fromUtf8("R41ActuatorsButton")); + R41ActuatorsButton->setGeometry(QRect(100, 250, 20, 20)); QPalette palette303; palette303.setBrush(QPalette::Active, QPalette::WindowText, brush); palette303.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16765,11 +16793,11 @@ public: palette303.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette303.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette303.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R45ActuatorsButton->setPalette(palette303); - R45ActuatorsButton->setFont(font1); - R46ActuatorsButton = new QPushButton(frame); - R46ActuatorsButton->setObjectName(QString::fromUtf8("R46ActuatorsButton")); - R46ActuatorsButton->setGeometry(QRect(300, 80, 20, 20)); + R41ActuatorsButton->setPalette(palette303); + R41ActuatorsButton->setFont(font1); + R42ActuatorsButton = new QPushButton(frame); + R42ActuatorsButton->setObjectName(QString::fromUtf8("R42ActuatorsButton")); + R42ActuatorsButton->setGeometry(QRect(130, 210, 20, 20)); QPalette palette304; palette304.setBrush(QPalette::Active, QPalette::WindowText, brush); palette304.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16819,11 +16847,11 @@ public: palette304.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette304.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette304.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - R46ActuatorsButton->setPalette(palette304); - R46ActuatorsButton->setFont(font1); - ActuatorButton04_01 = new QPushButton(frame); - ActuatorButton04_01->setObjectName(QString::fromUtf8("ActuatorButton04_01")); - ActuatorButton04_01->setGeometry(QRect(471, 181, 10, 10)); + R42ActuatorsButton->setPalette(palette304); + R42ActuatorsButton->setFont(font1); + R43ActuatorsButton = new QPushButton(frame); + R43ActuatorsButton->setObjectName(QString::fromUtf8("R43ActuatorsButton")); + R43ActuatorsButton->setGeometry(QRect(160, 160, 20, 20)); QPalette palette305; palette305.setBrush(QPalette::Active, QPalette::WindowText, brush); palette305.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16873,10 +16901,11 @@ public: palette305.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette305.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette305.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_01->setPalette(palette305); - ActuatorButton04_06 = new QPushButton(frame); - ActuatorButton04_06->setObjectName(QString::fromUtf8("ActuatorButton04_06")); - ActuatorButton04_06->setGeometry(QRect(648, 240, 10, 10)); + R43ActuatorsButton->setPalette(palette305); + R43ActuatorsButton->setFont(font1); + R44ActuatorsButton = new QPushButton(frame); + R44ActuatorsButton->setObjectName(QString::fromUtf8("R44ActuatorsButton")); + R44ActuatorsButton->setGeometry(QRect(210, 130, 20, 20)); QPalette palette306; palette306.setBrush(QPalette::Active, QPalette::WindowText, brush); palette306.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16926,10 +16955,11 @@ public: palette306.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette306.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette306.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_06->setPalette(palette306); - ActuatorButton04_08 = new QPushButton(frame); - ActuatorButton04_08->setObjectName(QString::fromUtf8("ActuatorButton04_08")); - ActuatorButton04_08->setGeometry(QRect(702, 294, 10, 10)); + R44ActuatorsButton->setPalette(palette306); + R44ActuatorsButton->setFont(font1); + R45ActuatorsButton = new QPushButton(frame); + R45ActuatorsButton->setObjectName(QString::fromUtf8("R45ActuatorsButton")); + R45ActuatorsButton->setGeometry(QRect(250, 100, 20, 20)); QPalette palette307; palette307.setBrush(QPalette::Active, QPalette::WindowText, brush); palette307.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -16979,10 +17009,11 @@ public: palette307.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette307.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette307.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_08->setPalette(palette307); - ActuatorButton04_18 = new QPushButton(frame); - ActuatorButton04_18->setObjectName(QString::fromUtf8("ActuatorButton04_18")); - ActuatorButton04_18->setGeometry(QRect(702, 649, 10, 10)); + R45ActuatorsButton->setPalette(palette307); + R45ActuatorsButton->setFont(font1); + R46ActuatorsButton = new QPushButton(frame); + R46ActuatorsButton->setObjectName(QString::fromUtf8("R46ActuatorsButton")); + R46ActuatorsButton->setGeometry(QRect(300, 80, 20, 20)); QPalette palette308; palette308.setBrush(QPalette::Active, QPalette::WindowText, brush); palette308.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17032,10 +17063,11 @@ public: palette308.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette308.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette308.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_18->setPalette(palette308); - ActuatorButton04_20 = new QPushButton(frame); - ActuatorButton04_20->setObjectName(QString::fromUtf8("ActuatorButton04_20")); - ActuatorButton04_20->setGeometry(QRect(648, 702, 10, 10)); + R46ActuatorsButton->setPalette(palette308); + R46ActuatorsButton->setFont(font1); + ActuatorButton04_01 = new QPushButton(frame); + ActuatorButton04_01->setObjectName(QString::fromUtf8("ActuatorButton04_01")); + ActuatorButton04_01->setGeometry(QRect(471, 181, 10, 10)); QPalette palette309; palette309.setBrush(QPalette::Active, QPalette::WindowText, brush); palette309.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17085,10 +17117,10 @@ public: palette309.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette309.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette309.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_20->setPalette(palette309); - ActuatorButton04_30 = new QPushButton(frame); - ActuatorButton04_30->setObjectName(QString::fromUtf8("ActuatorButton04_30")); - ActuatorButton04_30->setGeometry(QRect(293, 702, 10, 10)); + ActuatorButton04_01->setPalette(palette309); + ActuatorButton04_06 = new QPushButton(frame); + ActuatorButton04_06->setObjectName(QString::fromUtf8("ActuatorButton04_06")); + ActuatorButton04_06->setGeometry(QRect(648, 240, 10, 10)); QPalette palette310; palette310.setBrush(QPalette::Active, QPalette::WindowText, brush); palette310.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17138,10 +17170,10 @@ public: palette310.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette310.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette310.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_30->setPalette(palette310); - ActuatorButton04_32 = new QPushButton(frame); - ActuatorButton04_32->setObjectName(QString::fromUtf8("ActuatorButton04_32")); - ActuatorButton04_32->setGeometry(QRect(240, 648, 10, 10)); + ActuatorButton04_06->setPalette(palette310); + ActuatorButton04_08 = new QPushButton(frame); + ActuatorButton04_08->setObjectName(QString::fromUtf8("ActuatorButton04_08")); + ActuatorButton04_08->setGeometry(QRect(702, 294, 10, 10)); QPalette palette311; palette311.setBrush(QPalette::Active, QPalette::WindowText, brush); palette311.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17191,10 +17223,10 @@ public: palette311.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette311.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette311.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_32->setPalette(palette311); - ActuatorButton04_42 = new QPushButton(frame); - ActuatorButton04_42->setObjectName(QString::fromUtf8("ActuatorButton04_42")); - ActuatorButton04_42->setGeometry(QRect(240, 294, 10, 10)); + ActuatorButton04_08->setPalette(palette311); + ActuatorButton04_18 = new QPushButton(frame); + ActuatorButton04_18->setObjectName(QString::fromUtf8("ActuatorButton04_18")); + ActuatorButton04_18->setGeometry(QRect(702, 649, 10, 10)); QPalette palette312; palette312.setBrush(QPalette::Active, QPalette::WindowText, brush); palette312.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17244,10 +17276,10 @@ public: palette312.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette312.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette312.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_42->setPalette(palette312); - ActuatorButton04_44 = new QPushButton(frame); - ActuatorButton04_44->setObjectName(QString::fromUtf8("ActuatorButton04_44")); - ActuatorButton04_44->setGeometry(QRect(293, 240, 10, 10)); + ActuatorButton04_18->setPalette(palette312); + ActuatorButton04_20 = new QPushButton(frame); + ActuatorButton04_20->setObjectName(QString::fromUtf8("ActuatorButton04_20")); + ActuatorButton04_20->setGeometry(QRect(648, 702, 10, 10)); QPalette palette313; palette313.setBrush(QPalette::Active, QPalette::WindowText, brush); palette313.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17297,10 +17329,10 @@ public: palette313.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette313.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette313.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton04_44->setPalette(palette313); - ActuatorButton05_07 = new QPushButton(frame); - ActuatorButton05_07->setObjectName(QString::fromUtf8("ActuatorButton05_07")); - ActuatorButton05_07->setGeometry(QRect(713, 229, 10, 10)); + ActuatorButton04_20->setPalette(palette313); + ActuatorButton04_30 = new QPushButton(frame); + ActuatorButton04_30->setObjectName(QString::fromUtf8("ActuatorButton04_30")); + ActuatorButton04_30->setGeometry(QRect(293, 702, 10, 10)); QPalette palette314; palette314.setBrush(QPalette::Active, QPalette::WindowText, brush); palette314.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17350,10 +17382,10 @@ public: palette314.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette314.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette314.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_07->setPalette(palette314); - ActuatorButton05_19 = new QPushButton(frame); - ActuatorButton05_19->setObjectName(QString::fromUtf8("ActuatorButton05_19")); - ActuatorButton05_19->setGeometry(QRect(712, 713, 10, 10)); + ActuatorButton04_30->setPalette(palette314); + ActuatorButton04_32 = new QPushButton(frame); + ActuatorButton04_32->setObjectName(QString::fromUtf8("ActuatorButton04_32")); + ActuatorButton04_32->setGeometry(QRect(240, 648, 10, 10)); QPalette palette315; palette315.setBrush(QPalette::Active, QPalette::WindowText, brush); palette315.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17403,10 +17435,10 @@ public: palette315.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette315.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette315.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_19->setPalette(palette315); - ActuatorButton05_31 = new QPushButton(frame); - ActuatorButton05_31->setObjectName(QString::fromUtf8("ActuatorButton05_31")); - ActuatorButton05_31->setGeometry(QRect(229, 713, 10, 10)); + ActuatorButton04_32->setPalette(palette315); + ActuatorButton04_42 = new QPushButton(frame); + ActuatorButton04_42->setObjectName(QString::fromUtf8("ActuatorButton04_42")); + ActuatorButton04_42->setGeometry(QRect(240, 294, 10, 10)); QPalette palette316; palette316.setBrush(QPalette::Active, QPalette::WindowText, brush); palette316.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17456,10 +17488,10 @@ public: palette316.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette316.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette316.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_31->setPalette(palette316); - ActuatorButton05_43 = new QPushButton(frame); - ActuatorButton05_43->setObjectName(QString::fromUtf8("ActuatorButton05_43")); - ActuatorButton05_43->setGeometry(QRect(229, 229, 10, 10)); + ActuatorButton04_42->setPalette(palette316); + ActuatorButton04_44 = new QPushButton(frame); + ActuatorButton04_44->setObjectName(QString::fromUtf8("ActuatorButton04_44")); + ActuatorButton04_44->setGeometry(QRect(293, 240, 10, 10)); QPalette palette317; palette317.setBrush(QPalette::Active, QPalette::WindowText, brush); palette317.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17509,10 +17541,10 @@ public: palette317.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette317.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette317.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton05_43->setPalette(palette317); - AllActuatorsButton = new QPushButton(frame); - AllActuatorsButton->setObjectName(QString::fromUtf8("AllActuatorsButton")); - AllActuatorsButton->setGeometry(QRect(450, 443, 50, 50)); + ActuatorButton04_44->setPalette(palette317); + ActuatorButton05_07 = new QPushButton(frame); + ActuatorButton05_07->setObjectName(QString::fromUtf8("ActuatorButton05_07")); + ActuatorButton05_07->setGeometry(QRect(713, 229, 10, 10)); QPalette palette318; palette318.setBrush(QPalette::Active, QPalette::WindowText, brush); palette318.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17562,10 +17594,10 @@ public: palette318.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette318.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette318.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - AllActuatorsButton->setPalette(palette318); - ActuatorButton06_11 = new QPushButton(frame); - ActuatorButton06_11->setObjectName(QString::fromUtf8("ActuatorButton06_11")); - ActuatorButton06_11->setGeometry(QRect(851, 370, 10, 10)); + ActuatorButton05_07->setPalette(palette318); + ActuatorButton05_19 = new QPushButton(frame); + ActuatorButton05_19->setObjectName(QString::fromUtf8("ActuatorButton05_19")); + ActuatorButton05_19->setGeometry(QRect(712, 713, 10, 10)); QPalette palette319; palette319.setBrush(QPalette::Active, QPalette::WindowText, brush); palette319.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17615,10 +17647,10 @@ public: palette319.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette319.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette319.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ActuatorButton06_11->setPalette(palette319); - QuitButton = new QPushButton(NotoActiveSurfaceGUI); - QuitButton->setObjectName(QString::fromUtf8("QuitButton")); - QuitButton->setGeometry(QRect(1070, 880, 91, 31)); + ActuatorButton05_19->setPalette(palette319); + ActuatorButton05_31 = new QPushButton(frame); + ActuatorButton05_31->setObjectName(QString::fromUtf8("ActuatorButton05_31")); + ActuatorButton05_31->setGeometry(QRect(229, 713, 10, 10)); QPalette palette320; palette320.setBrush(QPalette::Active, QPalette::WindowText, brush); palette320.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17668,14 +17700,10 @@ public: palette320.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette320.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette320.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - QuitButton->setPalette(palette320); - buttonGroup1 = new Q3ButtonGroup(NotoActiveSurfaceGUI); - buttonGroup1->setObjectName(QString::fromUtf8("buttonGroup1")); - buttonGroup1->setEnabled(false); - buttonGroup1->setGeometry(QRect(970, 448, 288, 291)); - CalibrateButton = new QPushButton(buttonGroup1); - CalibrateButton->setObjectName(QString::fromUtf8("CalibrateButton")); - CalibrateButton->setGeometry(QRect(192, 45, 90, 35)); + ActuatorButton05_31->setPalette(palette320); + ActuatorButton05_43 = new QPushButton(frame); + ActuatorButton05_43->setObjectName(QString::fromUtf8("ActuatorButton05_43")); + ActuatorButton05_43->setGeometry(QRect(229, 229, 10, 10)); QPalette palette321; palette321.setBrush(QPalette::Active, QPalette::WindowText, brush); palette321.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17725,10 +17753,10 @@ public: palette321.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette321.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette321.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - CalibrateButton->setPalette(palette321); - StopButton = new QPushButton(buttonGroup1); - StopButton->setObjectName(QString::fromUtf8("StopButton")); - StopButton->setGeometry(QRect(4, 5, 90, 35)); + ActuatorButton05_43->setPalette(palette321); + AllActuatorsButton = new QPushButton(frame); + AllActuatorsButton->setObjectName(QString::fromUtf8("AllActuatorsButton")); + AllActuatorsButton->setGeometry(QRect(450, 443, 50, 50)); QPalette palette322; palette322.setBrush(QPalette::Active, QPalette::WindowText, brush); palette322.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17778,10 +17806,10 @@ public: palette322.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette322.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette322.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - StopButton->setPalette(palette322); - ResetButton = new QPushButton(buttonGroup1); - ResetButton->setObjectName(QString::fromUtf8("ResetButton")); - ResetButton->setGeometry(QRect(98, 5, 90, 35)); + AllActuatorsButton->setPalette(palette322); + ActuatorButton06_11 = new QPushButton(frame); + ActuatorButton06_11->setObjectName(QString::fromUtf8("ActuatorButton06_11")); + ActuatorButton06_11->setGeometry(QRect(851, 370, 10, 10)); QPalette palette323; palette323.setBrush(QPalette::Active, QPalette::WindowText, brush); palette323.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17831,10 +17859,10 @@ public: palette323.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette323.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette323.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ResetButton->setPalette(palette323); - RefPosButton = new QPushButton(buttonGroup1); - RefPosButton->setObjectName(QString::fromUtf8("RefPosButton")); - RefPosButton->setGeometry(QRect(4, 45, 90, 35)); + ActuatorButton06_11->setPalette(palette323); + QuitButton = new QPushButton(NotoActiveSurfaceGUI); + QuitButton->setObjectName(QString::fromUtf8("QuitButton")); + QuitButton->setGeometry(QRect(1070, 880, 91, 31)); QPalette palette324; palette324.setBrush(QPalette::Active, QPalette::WindowText, brush); palette324.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17884,10 +17912,14 @@ public: palette324.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette324.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette324.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - RefPosButton->setPalette(palette324); - TopButton = new QPushButton(buttonGroup1); - TopButton->setObjectName(QString::fromUtf8("TopButton")); - TopButton->setGeometry(QRect(5, 125, 90, 35)); + QuitButton->setPalette(palette324); + buttonGroup1 = new Q3ButtonGroup(NotoActiveSurfaceGUI); + buttonGroup1->setObjectName(QString::fromUtf8("buttonGroup1")); + buttonGroup1->setEnabled(false); + buttonGroup1->setGeometry(QRect(970, 448, 288, 291)); + CalibrateButton = new QPushButton(buttonGroup1); + CalibrateButton->setObjectName(QString::fromUtf8("CalibrateButton")); + CalibrateButton->setGeometry(QRect(192, 45, 90, 35)); QPalette palette325; palette325.setBrush(QPalette::Active, QPalette::WindowText, brush); palette325.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17937,10 +17969,10 @@ public: palette325.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette325.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette325.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - TopButton->setPalette(palette325); - StowButton = new QPushButton(buttonGroup1); - StowButton->setObjectName(QString::fromUtf8("StowButton")); - StowButton->setGeometry(QRect(98, 45, 90, 35)); + CalibrateButton->setPalette(palette325); + StopButton = new QPushButton(buttonGroup1); + StopButton->setObjectName(QString::fromUtf8("StopButton")); + StopButton->setGeometry(QRect(4, 5, 90, 35)); QPalette palette326; palette326.setBrush(QPalette::Active, QPalette::WindowText, brush); palette326.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -17990,10 +18022,10 @@ public: palette326.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette326.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette326.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - StowButton->setPalette(palette326); - BottomButton = new QPushButton(buttonGroup1); - BottomButton->setObjectName(QString::fromUtf8("BottomButton")); - BottomButton->setGeometry(QRect(98, 125, 90, 35)); + StopButton->setPalette(palette326); + ResetButton = new QPushButton(buttonGroup1); + ResetButton->setObjectName(QString::fromUtf8("ResetButton")); + ResetButton->setGeometry(QRect(98, 5, 90, 35)); QPalette palette327; palette327.setBrush(QPalette::Active, QPalette::WindowText, brush); palette327.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18043,10 +18075,10 @@ public: palette327.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette327.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette327.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - BottomButton->setPalette(palette327); - SetupButton = new QPushButton(buttonGroup1); - SetupButton->setObjectName(QString::fromUtf8("SetupButton")); - SetupButton->setGeometry(QRect(192, 5, 90, 35)); + ResetButton->setPalette(palette327); + RefPosButton = new QPushButton(buttonGroup1); + RefPosButton->setObjectName(QString::fromUtf8("RefPosButton")); + RefPosButton->setGeometry(QRect(4, 45, 90, 35)); QPalette palette328; palette328.setBrush(QPalette::Active, QPalette::WindowText, brush); palette328.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18096,10 +18128,10 @@ public: palette328.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette328.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette328.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - SetupButton->setPalette(palette328); - DownButton = new QPushButton(buttonGroup1); - DownButton->setObjectName(QString::fromUtf8("DownButton")); - DownButton->setGeometry(QRect(98, 85, 90, 35)); + RefPosButton->setPalette(palette328); + TopButton = new QPushButton(buttonGroup1); + TopButton->setObjectName(QString::fromUtf8("TopButton")); + TopButton->setGeometry(QRect(5, 125, 90, 35)); QPalette palette329; palette329.setBrush(QPalette::Active, QPalette::WindowText, brush); palette329.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18149,10 +18181,10 @@ public: palette329.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette329.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette329.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - DownButton->setPalette(palette329); - UpButton = new QPushButton(buttonGroup1); - UpButton->setObjectName(QString::fromUtf8("UpButton")); - UpButton->setGeometry(QRect(4, 85, 90, 35)); + TopButton->setPalette(palette329); + StowButton = new QPushButton(buttonGroup1); + StowButton->setObjectName(QString::fromUtf8("StowButton")); + StowButton->setGeometry(QRect(98, 45, 90, 35)); QPalette palette330; palette330.setBrush(QPalette::Active, QPalette::WindowText, brush); palette330.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18202,10 +18234,10 @@ public: palette330.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette330.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette330.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - UpButton->setPalette(palette330); - MoveButton = new QPushButton(buttonGroup1); - MoveButton->setObjectName(QString::fromUtf8("MoveButton")); - MoveButton->setGeometry(QRect(5, 165, 90, 35)); + StowButton->setPalette(palette330); + BottomButton = new QPushButton(buttonGroup1); + BottomButton->setObjectName(QString::fromUtf8("BottomButton")); + BottomButton->setGeometry(QRect(98, 125, 90, 35)); QPalette palette331; palette331.setBrush(QPalette::Active, QPalette::WindowText, brush); palette331.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18255,18 +18287,10 @@ public: palette331.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette331.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette331.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - MoveButton->setPalette(palette331); - ActuatorMovelineEdit = new QLineEdit(buttonGroup1); - ActuatorMovelineEdit->setObjectName(QString::fromUtf8("ActuatorMovelineEdit")); - ActuatorMovelineEdit->setGeometry(QRect(140, 165, 100, 35)); - QFont font5; - font5.setPointSize(12); - ActuatorMovelineEdit->setFont(font5); - ActuatorMovelineEdit->setAlignment(Qt::AlignRight); - ActuatorMovelineEdit->setReadOnly(false); - CorrectionButton = new QPushButton(buttonGroup1); - CorrectionButton->setObjectName(QString::fromUtf8("CorrectionButton")); - CorrectionButton->setGeometry(QRect(5, 205, 90, 35)); + BottomButton->setPalette(palette331); + SetupButton = new QPushButton(buttonGroup1); + SetupButton->setObjectName(QString::fromUtf8("SetupButton")); + SetupButton->setGeometry(QRect(192, 5, 90, 35)); QPalette palette332; palette332.setBrush(QPalette::Active, QPalette::WindowText, brush); palette332.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18316,16 +18340,10 @@ public: palette332.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette332.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette332.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - CorrectionButton->setPalette(palette332); - ActuatorCorrectionlineEdit = new QLineEdit(buttonGroup1); - ActuatorCorrectionlineEdit->setObjectName(QString::fromUtf8("ActuatorCorrectionlineEdit")); - ActuatorCorrectionlineEdit->setGeometry(QRect(140, 205, 100, 35)); - ActuatorCorrectionlineEdit->setFont(font5); - ActuatorCorrectionlineEdit->setAlignment(Qt::AlignRight); - ActuatorCorrectionlineEdit->setReadOnly(false); - UpdateButton = new QPushButton(buttonGroup1); - UpdateButton->setObjectName(QString::fromUtf8("UpdateButton")); - UpdateButton->setGeometry(QRect(5, 245, 90, 35)); + SetupButton->setPalette(palette332); + DownButton = new QPushButton(buttonGroup1); + DownButton->setObjectName(QString::fromUtf8("DownButton")); + DownButton->setGeometry(QRect(98, 85, 90, 35)); QPalette palette333; palette333.setBrush(QPalette::Active, QPalette::WindowText, brush); palette333.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18375,22 +18393,10 @@ public: palette333.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette333.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette333.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - UpdateButton->setPalette(palette333); - ActuatorUpdatelineEdit = new QLineEdit(buttonGroup1); - ActuatorUpdatelineEdit->setObjectName(QString::fromUtf8("ActuatorUpdatelineEdit")); - ActuatorUpdatelineEdit->setGeometry(QRect(140, 245, 100, 35)); - ActuatorUpdatelineEdit->setFont(font5); - ActuatorUpdatelineEdit->setAlignment(Qt::AlignRight); - ActuatorUpdatelineEdit->setReadOnly(false); - lineEdit = new QLineEdit(NotoActiveSurfaceGUI); - lineEdit->setObjectName(QString::fromUtf8("lineEdit")); - lineEdit->setGeometry(QRect(970, 750, 288, 40)); - lineEdit->setAutoFillBackground(false); - lineEdit->setAlignment(Qt::AlignCenter); - lineEdit->setReadOnly(true); - ParabolicProfilebutton = new QPushButton(NotoActiveSurfaceGUI); - ParabolicProfilebutton->setObjectName(QString::fromUtf8("ParabolicProfilebutton")); - ParabolicProfilebutton->setGeometry(QRect(970, 800, 90, 30)); + DownButton->setPalette(palette333); + UpButton = new QPushButton(buttonGroup1); + UpButton->setObjectName(QString::fromUtf8("UpButton")); + UpButton->setGeometry(QRect(4, 85, 90, 35)); QPalette palette334; palette334.setBrush(QPalette::Active, QPalette::WindowText, brush); palette334.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18440,10 +18446,10 @@ public: palette334.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette334.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette334.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ParabolicProfilebutton->setPalette(palette334); - stowASbutton = new QPushButton(NotoActiveSurfaceGUI); - stowASbutton->setObjectName(QString::fromUtf8("stowASbutton")); - stowASbutton->setGeometry(QRect(1193, 800, 61, 30)); + UpButton->setPalette(palette334); + MoveButton = new QPushButton(buttonGroup1); + MoveButton->setObjectName(QString::fromUtf8("MoveButton")); + MoveButton->setGeometry(QRect(5, 165, 90, 35)); QPalette palette335; palette335.setBrush(QPalette::Active, QPalette::WindowText, brush); palette335.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18493,10 +18499,18 @@ public: palette335.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette335.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette335.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - stowASbutton->setPalette(palette335); - ParabolicFixedProfileSbutton = new QPushButton(NotoActiveSurfaceGUI); - ParabolicFixedProfileSbutton->setObjectName(QString::fromUtf8("ParabolicFixedProfileSbutton")); - ParabolicFixedProfileSbutton->setGeometry(QRect(1067, 800, 111, 30)); + MoveButton->setPalette(palette335); + ActuatorMovelineEdit = new QLineEdit(buttonGroup1); + ActuatorMovelineEdit->setObjectName(QString::fromUtf8("ActuatorMovelineEdit")); + ActuatorMovelineEdit->setGeometry(QRect(140, 165, 100, 35)); + QFont font5; + font5.setPointSize(12); + ActuatorMovelineEdit->setFont(font5); + ActuatorMovelineEdit->setAlignment(Qt::AlignRight); + ActuatorMovelineEdit->setReadOnly(false); + CorrectionButton = new QPushButton(buttonGroup1); + CorrectionButton->setObjectName(QString::fromUtf8("CorrectionButton")); + CorrectionButton->setGeometry(QRect(5, 205, 90, 35)); QPalette palette336; palette336.setBrush(QPalette::Active, QPalette::WindowText, brush); palette336.setBrush(QPalette::Active, QPalette::Button, brush1); @@ -18546,7 +18560,237 @@ public: palette336.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); palette336.setBrush(QPalette::Disabled, QPalette::Link, brush9); palette336.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); - ParabolicFixedProfileSbutton->setPalette(palette336); + CorrectionButton->setPalette(palette336); + ActuatorCorrectionlineEdit = new QLineEdit(buttonGroup1); + ActuatorCorrectionlineEdit->setObjectName(QString::fromUtf8("ActuatorCorrectionlineEdit")); + ActuatorCorrectionlineEdit->setGeometry(QRect(140, 205, 100, 35)); + ActuatorCorrectionlineEdit->setFont(font5); + ActuatorCorrectionlineEdit->setAlignment(Qt::AlignRight); + ActuatorCorrectionlineEdit->setReadOnly(false); + UpdateButton = new QPushButton(buttonGroup1); + UpdateButton->setObjectName(QString::fromUtf8("UpdateButton")); + UpdateButton->setGeometry(QRect(5, 245, 90, 35)); + QPalette palette337; + palette337.setBrush(QPalette::Active, QPalette::WindowText, brush); + palette337.setBrush(QPalette::Active, QPalette::Button, brush1); + palette337.setBrush(QPalette::Active, QPalette::Light, brush2); + palette337.setBrush(QPalette::Active, QPalette::Midlight, brush3); + palette337.setBrush(QPalette::Active, QPalette::Dark, brush4); + palette337.setBrush(QPalette::Active, QPalette::Mid, brush5); + palette337.setBrush(QPalette::Active, QPalette::Text, brush); + palette337.setBrush(QPalette::Active, QPalette::BrightText, brush6); + palette337.setBrush(QPalette::Active, QPalette::ButtonText, brush); + palette337.setBrush(QPalette::Active, QPalette::Base, brush1); + palette337.setBrush(QPalette::Active, QPalette::Window, brush1); + palette337.setBrush(QPalette::Active, QPalette::Shadow, brush); + palette337.setBrush(QPalette::Active, QPalette::Highlight, brush7); + palette337.setBrush(QPalette::Active, QPalette::HighlightedText, brush6); + palette337.setBrush(QPalette::Active, QPalette::Link, brush); + palette337.setBrush(QPalette::Active, QPalette::LinkVisited, brush); + palette337.setBrush(QPalette::Inactive, QPalette::WindowText, brush); + palette337.setBrush(QPalette::Inactive, QPalette::Button, brush1); + palette337.setBrush(QPalette::Inactive, QPalette::Light, brush2); + palette337.setBrush(QPalette::Inactive, QPalette::Midlight, brush8); + palette337.setBrush(QPalette::Inactive, QPalette::Dark, brush4); + palette337.setBrush(QPalette::Inactive, QPalette::Mid, brush5); + palette337.setBrush(QPalette::Inactive, QPalette::Text, brush); + palette337.setBrush(QPalette::Inactive, QPalette::BrightText, brush6); + palette337.setBrush(QPalette::Inactive, QPalette::ButtonText, brush); + palette337.setBrush(QPalette::Inactive, QPalette::Base, brush1); + palette337.setBrush(QPalette::Inactive, QPalette::Window, brush1); + palette337.setBrush(QPalette::Inactive, QPalette::Shadow, brush); + palette337.setBrush(QPalette::Inactive, QPalette::Highlight, brush7); + palette337.setBrush(QPalette::Inactive, QPalette::HighlightedText, brush6); + palette337.setBrush(QPalette::Inactive, QPalette::Link, brush9); + palette337.setBrush(QPalette::Inactive, QPalette::LinkVisited, brush10); + palette337.setBrush(QPalette::Disabled, QPalette::WindowText, brush11); + palette337.setBrush(QPalette::Disabled, QPalette::Button, brush1); + palette337.setBrush(QPalette::Disabled, QPalette::Light, brush2); + palette337.setBrush(QPalette::Disabled, QPalette::Midlight, brush8); + palette337.setBrush(QPalette::Disabled, QPalette::Dark, brush4); + palette337.setBrush(QPalette::Disabled, QPalette::Mid, brush5); + palette337.setBrush(QPalette::Disabled, QPalette::Text, brush11); + palette337.setBrush(QPalette::Disabled, QPalette::BrightText, brush6); + palette337.setBrush(QPalette::Disabled, QPalette::ButtonText, brush11); + palette337.setBrush(QPalette::Disabled, QPalette::Base, brush1); + palette337.setBrush(QPalette::Disabled, QPalette::Window, brush1); + palette337.setBrush(QPalette::Disabled, QPalette::Shadow, brush); + palette337.setBrush(QPalette::Disabled, QPalette::Highlight, brush7); + palette337.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); + palette337.setBrush(QPalette::Disabled, QPalette::Link, brush9); + palette337.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); + UpdateButton->setPalette(palette337); + ActuatorUpdatelineEdit = new QLineEdit(buttonGroup1); + ActuatorUpdatelineEdit->setObjectName(QString::fromUtf8("ActuatorUpdatelineEdit")); + ActuatorUpdatelineEdit->setGeometry(QRect(140, 245, 100, 35)); + ActuatorUpdatelineEdit->setFont(font5); + ActuatorUpdatelineEdit->setAlignment(Qt::AlignRight); + ActuatorUpdatelineEdit->setReadOnly(false); + lineEdit = new QLineEdit(NotoActiveSurfaceGUI); + lineEdit->setObjectName(QString::fromUtf8("lineEdit")); + lineEdit->setGeometry(QRect(970, 750, 288, 40)); + lineEdit->setAutoFillBackground(false); + lineEdit->setAlignment(Qt::AlignCenter); + lineEdit->setReadOnly(true); + ParabolicProfilebutton = new QPushButton(NotoActiveSurfaceGUI); + ParabolicProfilebutton->setObjectName(QString::fromUtf8("ParabolicProfilebutton")); + ParabolicProfilebutton->setGeometry(QRect(970, 800, 90, 30)); + QPalette palette338; + palette338.setBrush(QPalette::Active, QPalette::WindowText, brush); + palette338.setBrush(QPalette::Active, QPalette::Button, brush1); + palette338.setBrush(QPalette::Active, QPalette::Light, brush2); + palette338.setBrush(QPalette::Active, QPalette::Midlight, brush3); + palette338.setBrush(QPalette::Active, QPalette::Dark, brush4); + palette338.setBrush(QPalette::Active, QPalette::Mid, brush5); + palette338.setBrush(QPalette::Active, QPalette::Text, brush); + palette338.setBrush(QPalette::Active, QPalette::BrightText, brush6); + palette338.setBrush(QPalette::Active, QPalette::ButtonText, brush); + palette338.setBrush(QPalette::Active, QPalette::Base, brush1); + palette338.setBrush(QPalette::Active, QPalette::Window, brush1); + palette338.setBrush(QPalette::Active, QPalette::Shadow, brush); + palette338.setBrush(QPalette::Active, QPalette::Highlight, brush7); + palette338.setBrush(QPalette::Active, QPalette::HighlightedText, brush6); + palette338.setBrush(QPalette::Active, QPalette::Link, brush); + palette338.setBrush(QPalette::Active, QPalette::LinkVisited, brush); + palette338.setBrush(QPalette::Inactive, QPalette::WindowText, brush); + palette338.setBrush(QPalette::Inactive, QPalette::Button, brush1); + palette338.setBrush(QPalette::Inactive, QPalette::Light, brush2); + palette338.setBrush(QPalette::Inactive, QPalette::Midlight, brush8); + palette338.setBrush(QPalette::Inactive, QPalette::Dark, brush4); + palette338.setBrush(QPalette::Inactive, QPalette::Mid, brush5); + palette338.setBrush(QPalette::Inactive, QPalette::Text, brush); + palette338.setBrush(QPalette::Inactive, QPalette::BrightText, brush6); + palette338.setBrush(QPalette::Inactive, QPalette::ButtonText, brush); + palette338.setBrush(QPalette::Inactive, QPalette::Base, brush1); + palette338.setBrush(QPalette::Inactive, QPalette::Window, brush1); + palette338.setBrush(QPalette::Inactive, QPalette::Shadow, brush); + palette338.setBrush(QPalette::Inactive, QPalette::Highlight, brush7); + palette338.setBrush(QPalette::Inactive, QPalette::HighlightedText, brush6); + palette338.setBrush(QPalette::Inactive, QPalette::Link, brush9); + palette338.setBrush(QPalette::Inactive, QPalette::LinkVisited, brush10); + palette338.setBrush(QPalette::Disabled, QPalette::WindowText, brush11); + palette338.setBrush(QPalette::Disabled, QPalette::Button, brush1); + palette338.setBrush(QPalette::Disabled, QPalette::Light, brush2); + palette338.setBrush(QPalette::Disabled, QPalette::Midlight, brush8); + palette338.setBrush(QPalette::Disabled, QPalette::Dark, brush4); + palette338.setBrush(QPalette::Disabled, QPalette::Mid, brush5); + palette338.setBrush(QPalette::Disabled, QPalette::Text, brush11); + palette338.setBrush(QPalette::Disabled, QPalette::BrightText, brush6); + palette338.setBrush(QPalette::Disabled, QPalette::ButtonText, brush11); + palette338.setBrush(QPalette::Disabled, QPalette::Base, brush1); + palette338.setBrush(QPalette::Disabled, QPalette::Window, brush1); + palette338.setBrush(QPalette::Disabled, QPalette::Shadow, brush); + palette338.setBrush(QPalette::Disabled, QPalette::Highlight, brush7); + palette338.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); + palette338.setBrush(QPalette::Disabled, QPalette::Link, brush9); + palette338.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); + ParabolicProfilebutton->setPalette(palette338); + stowASbutton = new QPushButton(NotoActiveSurfaceGUI); + stowASbutton->setObjectName(QString::fromUtf8("stowASbutton")); + stowASbutton->setGeometry(QRect(1193, 800, 61, 30)); + QPalette palette339; + palette339.setBrush(QPalette::Active, QPalette::WindowText, brush); + palette339.setBrush(QPalette::Active, QPalette::Button, brush1); + palette339.setBrush(QPalette::Active, QPalette::Light, brush2); + palette339.setBrush(QPalette::Active, QPalette::Midlight, brush3); + palette339.setBrush(QPalette::Active, QPalette::Dark, brush4); + palette339.setBrush(QPalette::Active, QPalette::Mid, brush5); + palette339.setBrush(QPalette::Active, QPalette::Text, brush); + palette339.setBrush(QPalette::Active, QPalette::BrightText, brush6); + palette339.setBrush(QPalette::Active, QPalette::ButtonText, brush); + palette339.setBrush(QPalette::Active, QPalette::Base, brush1); + palette339.setBrush(QPalette::Active, QPalette::Window, brush1); + palette339.setBrush(QPalette::Active, QPalette::Shadow, brush); + palette339.setBrush(QPalette::Active, QPalette::Highlight, brush7); + palette339.setBrush(QPalette::Active, QPalette::HighlightedText, brush6); + palette339.setBrush(QPalette::Active, QPalette::Link, brush); + palette339.setBrush(QPalette::Active, QPalette::LinkVisited, brush); + palette339.setBrush(QPalette::Inactive, QPalette::WindowText, brush); + palette339.setBrush(QPalette::Inactive, QPalette::Button, brush1); + palette339.setBrush(QPalette::Inactive, QPalette::Light, brush2); + palette339.setBrush(QPalette::Inactive, QPalette::Midlight, brush8); + palette339.setBrush(QPalette::Inactive, QPalette::Dark, brush4); + palette339.setBrush(QPalette::Inactive, QPalette::Mid, brush5); + palette339.setBrush(QPalette::Inactive, QPalette::Text, brush); + palette339.setBrush(QPalette::Inactive, QPalette::BrightText, brush6); + palette339.setBrush(QPalette::Inactive, QPalette::ButtonText, brush); + palette339.setBrush(QPalette::Inactive, QPalette::Base, brush1); + palette339.setBrush(QPalette::Inactive, QPalette::Window, brush1); + palette339.setBrush(QPalette::Inactive, QPalette::Shadow, brush); + palette339.setBrush(QPalette::Inactive, QPalette::Highlight, brush7); + palette339.setBrush(QPalette::Inactive, QPalette::HighlightedText, brush6); + palette339.setBrush(QPalette::Inactive, QPalette::Link, brush9); + palette339.setBrush(QPalette::Inactive, QPalette::LinkVisited, brush10); + palette339.setBrush(QPalette::Disabled, QPalette::WindowText, brush11); + palette339.setBrush(QPalette::Disabled, QPalette::Button, brush1); + palette339.setBrush(QPalette::Disabled, QPalette::Light, brush2); + palette339.setBrush(QPalette::Disabled, QPalette::Midlight, brush8); + palette339.setBrush(QPalette::Disabled, QPalette::Dark, brush4); + palette339.setBrush(QPalette::Disabled, QPalette::Mid, brush5); + palette339.setBrush(QPalette::Disabled, QPalette::Text, brush11); + palette339.setBrush(QPalette::Disabled, QPalette::BrightText, brush6); + palette339.setBrush(QPalette::Disabled, QPalette::ButtonText, brush11); + palette339.setBrush(QPalette::Disabled, QPalette::Base, brush1); + palette339.setBrush(QPalette::Disabled, QPalette::Window, brush1); + palette339.setBrush(QPalette::Disabled, QPalette::Shadow, brush); + palette339.setBrush(QPalette::Disabled, QPalette::Highlight, brush7); + palette339.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); + palette339.setBrush(QPalette::Disabled, QPalette::Link, brush9); + palette339.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); + stowASbutton->setPalette(palette339); + ParabolicFixedProfileSbutton = new QPushButton(NotoActiveSurfaceGUI); + ParabolicFixedProfileSbutton->setObjectName(QString::fromUtf8("ParabolicFixedProfileSbutton")); + ParabolicFixedProfileSbutton->setGeometry(QRect(1067, 800, 111, 30)); + QPalette palette340; + palette340.setBrush(QPalette::Active, QPalette::WindowText, brush); + palette340.setBrush(QPalette::Active, QPalette::Button, brush1); + palette340.setBrush(QPalette::Active, QPalette::Light, brush2); + palette340.setBrush(QPalette::Active, QPalette::Midlight, brush3); + palette340.setBrush(QPalette::Active, QPalette::Dark, brush4); + palette340.setBrush(QPalette::Active, QPalette::Mid, brush5); + palette340.setBrush(QPalette::Active, QPalette::Text, brush); + palette340.setBrush(QPalette::Active, QPalette::BrightText, brush6); + palette340.setBrush(QPalette::Active, QPalette::ButtonText, brush); + palette340.setBrush(QPalette::Active, QPalette::Base, brush1); + palette340.setBrush(QPalette::Active, QPalette::Window, brush1); + palette340.setBrush(QPalette::Active, QPalette::Shadow, brush); + palette340.setBrush(QPalette::Active, QPalette::Highlight, brush7); + palette340.setBrush(QPalette::Active, QPalette::HighlightedText, brush6); + palette340.setBrush(QPalette::Active, QPalette::Link, brush); + palette340.setBrush(QPalette::Active, QPalette::LinkVisited, brush); + palette340.setBrush(QPalette::Inactive, QPalette::WindowText, brush); + palette340.setBrush(QPalette::Inactive, QPalette::Button, brush1); + palette340.setBrush(QPalette::Inactive, QPalette::Light, brush2); + palette340.setBrush(QPalette::Inactive, QPalette::Midlight, brush8); + palette340.setBrush(QPalette::Inactive, QPalette::Dark, brush4); + palette340.setBrush(QPalette::Inactive, QPalette::Mid, brush5); + palette340.setBrush(QPalette::Inactive, QPalette::Text, brush); + palette340.setBrush(QPalette::Inactive, QPalette::BrightText, brush6); + palette340.setBrush(QPalette::Inactive, QPalette::ButtonText, brush); + palette340.setBrush(QPalette::Inactive, QPalette::Base, brush1); + palette340.setBrush(QPalette::Inactive, QPalette::Window, brush1); + palette340.setBrush(QPalette::Inactive, QPalette::Shadow, brush); + palette340.setBrush(QPalette::Inactive, QPalette::Highlight, brush7); + palette340.setBrush(QPalette::Inactive, QPalette::HighlightedText, brush6); + palette340.setBrush(QPalette::Inactive, QPalette::Link, brush9); + palette340.setBrush(QPalette::Inactive, QPalette::LinkVisited, brush10); + palette340.setBrush(QPalette::Disabled, QPalette::WindowText, brush11); + palette340.setBrush(QPalette::Disabled, QPalette::Button, brush1); + palette340.setBrush(QPalette::Disabled, QPalette::Light, brush2); + palette340.setBrush(QPalette::Disabled, QPalette::Midlight, brush8); + palette340.setBrush(QPalette::Disabled, QPalette::Dark, brush4); + palette340.setBrush(QPalette::Disabled, QPalette::Mid, brush5); + palette340.setBrush(QPalette::Disabled, QPalette::Text, brush11); + palette340.setBrush(QPalette::Disabled, QPalette::BrightText, brush6); + palette340.setBrush(QPalette::Disabled, QPalette::ButtonText, brush11); + palette340.setBrush(QPalette::Disabled, QPalette::Base, brush1); + palette340.setBrush(QPalette::Disabled, QPalette::Window, brush1); + palette340.setBrush(QPalette::Disabled, QPalette::Shadow, brush); + palette340.setBrush(QPalette::Disabled, QPalette::Highlight, brush7); + palette340.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush6); + palette340.setBrush(QPalette::Disabled, QPalette::Link, brush9); + palette340.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush10); + ParabolicFixedProfileSbutton->setPalette(palette340); StatuslineEdit_2 = new QLineEdit(NotoActiveSurfaceGUI); StatuslineEdit_2->setObjectName(QString::fromUtf8("StatuslineEdit_2")); StatuslineEdit_2->setGeometry(QRect(1129, 840, 131, 30)); @@ -18625,6 +18869,10 @@ public: QObject::connect(ActuatorButton01_09, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); QObject::connect(ActuatorButton01_10, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); QObject::connect(ActuatorButton01_05, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); + QObject::connect(ActuatorButton07_01, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); + QObject::connect(ActuatorButton07_02, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); + QObject::connect(ActuatorButton07_03, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); + QObject::connect(ActuatorButton07_04, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); QObject::connect(ActuatorButton01_02, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); QObject::connect(ActuatorButton01_18, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); QObject::connect(ActuatorButton01_17, SIGNAL(clicked()), NotoActiveSurfaceGUI, SLOT(setactuator())); @@ -18986,11 +19234,31 @@ public: #endif // QT_NO_TOOLTIP ActuatorButton01_02->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); ActuatorButton01_02->setText(QString()); +#ifndef QT_NO_TOOLTIP + ActuatorButton07_01->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "07_01", 0, QApplication::UnicodeUTF8)); +#endif // QT_NO_TOOLTIP + ActuatorButton07_01->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); + ActuatorButton07_01->setText(QString()); +#ifndef QT_NO_TOOLTIP + ActuatorButton07_02->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "07_02", 0, QApplication::UnicodeUTF8)); +#endif // QT_NO_TOOLTIP + ActuatorButton07_02->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); + ActuatorButton07_02->setText(QString()); #ifndef QT_NO_TOOLTIP ActuatorButton01_03->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "01_03", 0, QApplication::UnicodeUTF8)); #endif // QT_NO_TOOLTIP ActuatorButton01_03->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); ActuatorButton01_03->setText(QString()); +#ifndef QT_NO_TOOLTIP + ActuatorButton07_03->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "07_03", 0, QApplication::UnicodeUTF8)); +#endif // QT_NO_TOOLTIP + ActuatorButton07_03->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); + ActuatorButton07_03->setText(QString()); +#ifndef QT_NO_TOOLTIP + ActuatorButton07_04->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "07_04", 0, QApplication::UnicodeUTF8)); +#endif // QT_NO_TOOLTIP + ActuatorButton07_04->setStyleSheet(QApplication::translate("NotoActiveSurfaceGUI", "background-color: rgb(0, 85, 255);", 0, QApplication::UnicodeUTF8)); + ActuatorButton07_04->setText(QString()); #ifndef QT_NO_TOOLTIP ActuatorButton01_04->setToolTip(QApplication::translate("NotoActiveSurfaceGUI", "01_04", 0, QApplication::UnicodeUTF8)); #endif // QT_NO_TOOLTIP diff --git a/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceCore.cpp b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceCore.cpp index 7b261c822..ff44bff1b 100644 --- a/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceCore.cpp +++ b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceCore.cpp @@ -59,8 +59,6 @@ void NotoActiveSurfaceCore::run(void) Management::ROTSystemStatus_var bossStatus_var; ActiveSurface::ROTASProfile_var asProfile_var; - ACS_SHORT_LOG((LM_INFO, "NotoActiveSurfaceCore %s ","UNO")); - while (monitor == true) { TIMEVALUE clock; @@ -73,10 +71,12 @@ void NotoActiveSurfaceCore::run(void) asProfile_var = tASBoss->pprofile(); emit setGUIasProfileCode((int)asProfile_var->get_sync(completion.out())); - ACS::longSeq_var asStatus; - tASBoss->asStatus4GUIClient(asStatus); + //ACS::longSeq_var asStatus; + CORBA::Long usdStatus; + //tASBoss->asStatus4GUIClient(asStatus); + //tASBoss->usdStatus4GUIClient(asStatus); - for(unsigned int actuator = 1, i, l; actuator < 265; actuator++, l++) + for(unsigned int actuator = 1, i, l; actuator < 269; actuator++, l++) { if (actuator >= 1 && actuator <= 24) // 1 circle i = 1; @@ -90,28 +90,52 @@ void NotoActiveSurfaceCore::run(void) i = 5; if (actuator >= 217 && actuator <= 264) // 6 circle i = 6; + if (actuator >= 265 && actuator <= 268) // 7 circle + i = 7; if (actuator == 1 || actuator == 25 || actuator == 73 || - actuator == 121 || actuator == 169 || actuator == 217) + actuator == 121 || actuator == 169 || actuator == 217 || actuator == 265) { l = 1; CIRATools::Wait(100000); //100ms } - CORBA::Long status = asStatus[actuator - 1]; + //CORBA::Long status; + //if (i > 1) + // status = asStatus[actuator - 1 - 24]; bool active; - if ((status & ENBL) == 0) + try { + tASBoss->usdStatus4GUIClient(i, l, usdStatus); + if ((usdStatus & ENBL) == 0) + active = false; + else + active = true; + } + catch (ComponentErrors::ComponentNotActiveExImpl& ex) { + active = false; + ex.log(LM_DEBUG); + } + catch (ComponentErrors::ComponentErrorsExImpl& ex) { + active = false; + ex.log(LM_DEBUG); + } + catch (CORBA::SystemException& sysEx) { + active = false; + _EXCPT(ClientErrors::CORBAProblemExImpl,impl,"NotoActiveSurfaceGUIClient::NotoActiveSurfaceCore::setactuator()"); + impl.setName(sysEx._name()); + impl.setMinor(sysEx.minor()); + impl.log(); + } + catch (...) { active = false; - else + _EXCPT(ClientErrors::UnknownExImpl,impl,"NotoActiveSurfaceGUIClient::NotoActiveSurfaceCore::setactuator()"); + impl.log(); + } + if (i == 1) active = true; - emit setGUIActuatorColor(i, l, active, true); - - ACS_SHORT_LOG((LM_INFO, "NotoActiveSurfaceCore %s ","DUE")); } - ACS_SHORT_LOG((LM_INFO, "NotoActiveSurfaceCore %s ","TRE")); - /*CIRATools::getTime(clock); ACS::Time t1 = clock.value().value; int elapsed = (t1 - t0) / 10; diff --git a/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui index 43ba300a6..1c5e7b0e1 100755 --- a/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui +++ b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui @@ -1096,6 +1096,9 @@ </property> </widget> <widget class="QPushButton" name="ActuatorButton01_01"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> <x>471</x> @@ -1557,6 +1560,9 @@ </property> </widget> <widget class="QPushButton" name="ActuatorButton01_02"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> <x>501</x> @@ -2017,11 +2023,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_03"> + <widget class="QPushButton" name="ActuatorButton07_01"> + <property name="enabled"> + <bool>true</bool> + </property> <property name="geometry"> <rect> - <x>528</x> - <y>372</y> + <x>690</x> + <y>250</y> <width>10</width> <height>10</height> </rect> @@ -2469,7 +2478,7 @@ </palette> </property> <property name="toolTip"> - <string>01_03</string> + <string>07_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -2478,11 +2487,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_04"> + <widget class="QPushButton" name="ActuatorButton07_02"> + <property name="enabled"> + <bool>true</bool> + </property> <property name="geometry"> <rect> - <x>552</x> - <y>390</y> + <x>690</x> + <y>690</y> <width>10</width> <height>10</height> </rect> @@ -2930,7 +2942,7 @@ </palette> </property> <property name="toolTip"> - <string>01_04</string> + <string>07_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -2939,11 +2951,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_05"> + <widget class="QPushButton" name="ActuatorButton01_03"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>569</x> - <y>414</y> + <x>528</x> + <y>372</y> <width>10</width> <height>10</height> </rect> @@ -3391,7 +3406,7 @@ </palette> </property> <property name="toolTip"> - <string>01_05</string> + <string>01_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -3400,11 +3415,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_06"> + <widget class="QPushButton" name="ActuatorButton07_03"> + <property name="enabled"> + <bool>true</bool> + </property> <property name="geometry"> <rect> - <x>580</x> - <y>442</y> + <x>250</x> + <y>690</y> <width>10</width> <height>10</height> </rect> @@ -3852,7 +3870,7 @@ </palette> </property> <property name="toolTip"> - <string>01_06</string> + <string>07_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -3861,11 +3879,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_07"> + <widget class="QPushButton" name="ActuatorButton07_04"> + <property name="enabled"> + <bool>true</bool> + </property> <property name="geometry"> <rect> - <x>584</x> - <y>471</y> + <x>250</x> + <y>250</y> <width>10</width> <height>10</height> </rect> @@ -4313,7 +4334,7 @@ </palette> </property> <property name="toolTip"> - <string>01_07</string> + <string>07_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -4322,11 +4343,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_08"> + <widget class="QPushButton" name="ActuatorButton01_04"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>581</x> - <y>500</y> + <x>552</x> + <y>390</y> <width>10</width> <height>10</height> </rect> @@ -4774,7 +4798,7 @@ </palette> </property> <property name="toolTip"> - <string>01_08</string> + <string>01_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -4783,11 +4807,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_09"> + <widget class="QPushButton" name="ActuatorButton01_05"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>571</x> - <y>528</y> + <x>569</x> + <y>414</y> <width>10</width> <height>10</height> </rect> @@ -5235,7 +5262,7 @@ </palette> </property> <property name="toolTip"> - <string>01_09</string> + <string>01_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -5244,11 +5271,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_10"> + <widget class="QPushButton" name="ActuatorButton01_06"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>552</x> - <y>552</y> + <x>580</x> + <y>442</y> <width>10</width> <height>10</height> </rect> @@ -5696,7 +5726,7 @@ </palette> </property> <property name="toolTip"> - <string>01_10</string> + <string>01_06</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -5705,11 +5735,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_11"> + <widget class="QPushButton" name="ActuatorButton01_07"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>528</x> - <y>570</y> + <x>584</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -6157,7 +6190,7 @@ </palette> </property> <property name="toolTip"> - <string>01_11</string> + <string>01_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -6166,11 +6199,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_12"> + <widget class="QPushButton" name="ActuatorButton01_08"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>500</x> - <y>581</y> + <x>581</x> + <y>500</y> <width>10</width> <height>10</height> </rect> @@ -6618,7 +6654,7 @@ </palette> </property> <property name="toolTip"> - <string>01_12</string> + <string>01_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -6627,11 +6663,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_13"> + <widget class="QPushButton" name="ActuatorButton01_09"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>470</x> - <y>585</y> + <x>571</x> + <y>528</y> <width>10</width> <height>10</height> </rect> @@ -7079,7 +7118,7 @@ </palette> </property> <property name="toolTip"> - <string>01_13</string> + <string>01_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -7088,11 +7127,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_14"> + <widget class="QPushButton" name="ActuatorButton01_10"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>441</x> - <y>581</y> + <x>552</x> + <y>552</y> <width>10</width> <height>10</height> </rect> @@ -7540,7 +7582,7 @@ </palette> </property> <property name="toolTip"> - <string>01_14</string> + <string>01_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -7549,10 +7591,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_15"> + <widget class="QPushButton" name="ActuatorButton01_11"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>413</x> + <x>528</x> <y>570</y> <width>10</width> <height>10</height> @@ -8001,7 +8046,7 @@ </palette> </property> <property name="toolTip"> - <string>01_15</string> + <string>01_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -8010,11 +8055,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_16"> + <widget class="QPushButton" name="ActuatorButton01_12"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>390</x> - <y>552</y> + <x>500</x> + <y>581</y> <width>10</width> <height>10</height> </rect> @@ -8462,7 +8510,7 @@ </palette> </property> <property name="toolTip"> - <string>01_16</string> + <string>01_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -8471,11 +8519,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_17"> + <widget class="QPushButton" name="ActuatorButton01_13"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>372</x> - <y>528</y> + <x>470</x> + <y>585</y> <width>10</width> <height>10</height> </rect> @@ -8923,7 +8974,7 @@ </palette> </property> <property name="toolTip"> - <string>01_17</string> + <string>01_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -8932,11 +8983,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_18"> + <widget class="QPushButton" name="ActuatorButton01_14"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>362</x> - <y>500</y> + <x>441</x> + <y>581</y> <width>10</width> <height>10</height> </rect> @@ -9384,7 +9438,7 @@ </palette> </property> <property name="toolTip"> - <string>01_18</string> + <string>01_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -9393,11 +9447,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_19"> + <widget class="QPushButton" name="ActuatorButton01_15"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>357</x> - <y>471</y> + <x>413</x> + <y>570</y> <width>10</width> <height>10</height> </rect> @@ -9845,7 +9902,7 @@ </palette> </property> <property name="toolTip"> - <string>01_19</string> + <string>01_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -9854,11 +9911,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_20"> + <widget class="QPushButton" name="ActuatorButton01_16"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>361</x> - <y>442</y> + <x>390</x> + <y>552</y> <width>10</width> <height>10</height> </rect> @@ -10306,7 +10366,7 @@ </palette> </property> <property name="toolTip"> - <string>01_20</string> + <string>01_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -10315,11 +10375,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_21"> + <widget class="QPushButton" name="ActuatorButton01_17"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>371</x> - <y>413</y> + <x>372</x> + <y>528</y> <width>10</width> <height>10</height> </rect> @@ -10767,7 +10830,7 @@ </palette> </property> <property name="toolTip"> - <string>01_21</string> + <string>01_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -10776,11 +10839,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_22"> + <widget class="QPushButton" name="ActuatorButton01_18"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>390</x> - <y>391</y> + <x>362</x> + <y>500</y> <width>10</width> <height>10</height> </rect> @@ -11228,7 +11294,7 @@ </palette> </property> <property name="toolTip"> - <string>01_22</string> + <string>01_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -11237,11 +11303,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_23"> + <widget class="QPushButton" name="ActuatorButton01_19"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>414</x> - <y>373</y> + <x>357</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -11689,7 +11758,7 @@ </palette> </property> <property name="toolTip"> - <string>01_23</string> + <string>01_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -11698,11 +11767,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton01_24"> + <widget class="QPushButton" name="ActuatorButton01_20"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>442</x> - <y>361</y> + <x>361</x> + <y>442</y> <width>10</width> <height>10</height> </rect> @@ -12150,7 +12222,7 @@ </palette> </property> <property name="toolTip"> - <string>01_24</string> + <string>01_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -12159,11 +12231,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_01"> + <widget class="QPushButton" name="ActuatorButton01_21"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>471</x> - <y>298</y> + <x>371</x> + <y>413</y> <width>10</width> <height>10</height> </rect> @@ -12611,7 +12686,7 @@ </palette> </property> <property name="toolTip"> - <string>02_01</string> + <string>01_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -12620,11 +12695,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_02"> + <widget class="QPushButton" name="ActuatorButton01_22"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>494</x> - <y>300</y> + <x>390</x> + <y>391</y> <width>10</width> <height>10</height> </rect> @@ -13072,7 +13150,7 @@ </palette> </property> <property name="toolTip"> - <string>02_02</string> + <string>01_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -13081,11 +13159,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_03"> + <widget class="QPushButton" name="ActuatorButton01_23"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>516</x> - <y>304</y> + <x>414</x> + <y>373</y> <width>10</width> <height>10</height> </rect> @@ -13533,7 +13614,7 @@ </palette> </property> <property name="toolTip"> - <string>02_03</string> + <string>01_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -13542,11 +13623,14 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_04"> + <widget class="QPushButton" name="ActuatorButton01_24"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="geometry"> <rect> - <x>537</x> - <y>312</y> + <x>442</x> + <y>361</y> <width>10</width> <height>10</height> </rect> @@ -13994,7 +14078,7 @@ </palette> </property> <property name="toolTip"> - <string>02_04</string> + <string>01_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -14003,11 +14087,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_05"> + <widget class="QPushButton" name="ActuatorButton02_01"> <property name="geometry"> <rect> - <x>557</x> - <y>321</y> + <x>471</x> + <y>298</y> <width>10</width> <height>10</height> </rect> @@ -14455,7 +14539,7 @@ </palette> </property> <property name="toolTip"> - <string>02_05</string> + <string>02_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -14464,11 +14548,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_06"> + <widget class="QPushButton" name="ActuatorButton02_02"> <property name="geometry"> <rect> - <x>576</x> - <y>334</y> + <x>494</x> + <y>300</y> <width>10</width> <height>10</height> </rect> @@ -14916,7 +15000,7 @@ </palette> </property> <property name="toolTip"> - <string>02_06</string> + <string>02_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -14925,11 +15009,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_07"> + <widget class="QPushButton" name="ActuatorButton02_03"> <property name="geometry"> <rect> - <x>594</x> - <y>349</y> + <x>516</x> + <y>304</y> <width>10</width> <height>10</height> </rect> @@ -15377,7 +15461,7 @@ </palette> </property> <property name="toolTip"> - <string>02_07</string> + <string>02_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -15386,11 +15470,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_08"> + <widget class="QPushButton" name="ActuatorButton02_04"> <property name="geometry"> <rect> - <x>607</x> - <y>365</y> + <x>537</x> + <y>312</y> <width>10</width> <height>10</height> </rect> @@ -15838,7 +15922,7 @@ </palette> </property> <property name="toolTip"> - <string>02_08</string> + <string>02_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -15847,11 +15931,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_09"> + <widget class="QPushButton" name="ActuatorButton02_05"> <property name="geometry"> <rect> - <x>620</x> - <y>385</y> + <x>557</x> + <y>321</y> <width>10</width> <height>10</height> </rect> @@ -16299,7 +16383,7 @@ </palette> </property> <property name="toolTip"> - <string>02_09</string> + <string>02_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -16308,11 +16392,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_10"> + <widget class="QPushButton" name="ActuatorButton02_06"> <property name="geometry"> <rect> - <x>630</x> - <y>405</y> + <x>576</x> + <y>334</y> <width>10</width> <height>10</height> </rect> @@ -16760,7 +16844,7 @@ </palette> </property> <property name="toolTip"> - <string>02_10</string> + <string>02_06</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -16769,11 +16853,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_11"> + <widget class="QPushButton" name="ActuatorButton02_07"> <property name="geometry"> <rect> - <x>637</x> - <y>426</y> + <x>594</x> + <y>349</y> <width>10</width> <height>10</height> </rect> @@ -17221,7 +17305,7 @@ </palette> </property> <property name="toolTip"> - <string>02_11</string> + <string>02_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -17230,11 +17314,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_12"> + <widget class="QPushButton" name="ActuatorButton02_08"> <property name="geometry"> <rect> - <x>642</x> - <y>448</y> + <x>607</x> + <y>365</y> <width>10</width> <height>10</height> </rect> @@ -17682,7 +17766,7 @@ </palette> </property> <property name="toolTip"> - <string>02_12</string> + <string>02_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -17691,11 +17775,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_13"> + <widget class="QPushButton" name="ActuatorButton02_09"> <property name="geometry"> <rect> - <x>643</x> - <y>472</y> + <x>620</x> + <y>385</y> <width>10</width> <height>10</height> </rect> @@ -18143,7 +18227,7 @@ </palette> </property> <property name="toolTip"> - <string>02_13</string> + <string>02_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -18152,11 +18236,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_14"> + <widget class="QPushButton" name="ActuatorButton02_10"> <property name="geometry"> <rect> - <x>642</x> - <y>494</y> + <x>630</x> + <y>405</y> <width>10</width> <height>10</height> </rect> @@ -18604,7 +18688,7 @@ </palette> </property> <property name="toolTip"> - <string>02_14</string> + <string>02_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -18613,11 +18697,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_15"> + <widget class="QPushButton" name="ActuatorButton02_11"> <property name="geometry"> <rect> - <x>638</x> - <y>516</y> + <x>637</x> + <y>426</y> <width>10</width> <height>10</height> </rect> @@ -19065,7 +19149,7 @@ </palette> </property> <property name="toolTip"> - <string>02_15</string> + <string>02_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -19074,11 +19158,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_16"> + <widget class="QPushButton" name="ActuatorButton02_12"> <property name="geometry"> <rect> - <x>630</x> - <y>537</y> + <x>642</x> + <y>448</y> <width>10</width> <height>10</height> </rect> @@ -19526,7 +19610,7 @@ </palette> </property> <property name="toolTip"> - <string>02_16</string> + <string>02_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -19535,11 +19619,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_17"> + <widget class="QPushButton" name="ActuatorButton02_13"> <property name="geometry"> <rect> - <x>620</x> - <y>557</y> + <x>643</x> + <y>472</y> <width>10</width> <height>10</height> </rect> @@ -19987,7 +20071,7 @@ </palette> </property> <property name="toolTip"> - <string>02_17</string> + <string>02_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -19996,11 +20080,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_18"> + <widget class="QPushButton" name="ActuatorButton02_14"> <property name="geometry"> <rect> - <x>608</x> - <y>576</y> + <x>642</x> + <y>494</y> <width>10</width> <height>10</height> </rect> @@ -20448,7 +20532,7 @@ </palette> </property> <property name="toolTip"> - <string>02_18</string> + <string>02_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -20457,11 +20541,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_19"> + <widget class="QPushButton" name="ActuatorButton02_15"> <property name="geometry"> <rect> - <x>593</x> - <y>593</y> + <x>638</x> + <y>516</y> <width>10</width> <height>10</height> </rect> @@ -20909,7 +20993,7 @@ </palette> </property> <property name="toolTip"> - <string>02_19</string> + <string>02_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -20918,11 +21002,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_20"> + <widget class="QPushButton" name="ActuatorButton02_16"> <property name="geometry"> <rect> - <x>576</x> - <y>607</y> + <x>630</x> + <y>537</y> <width>10</width> <height>10</height> </rect> @@ -21370,7 +21454,7 @@ </palette> </property> <property name="toolTip"> - <string>02_20</string> + <string>02_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -21379,11 +21463,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_21"> + <widget class="QPushButton" name="ActuatorButton02_17"> <property name="geometry"> <rect> - <x>557</x> - <y>620</y> + <x>620</x> + <y>557</y> <width>10</width> <height>10</height> </rect> @@ -21831,7 +21915,7 @@ </palette> </property> <property name="toolTip"> - <string>02_21</string> + <string>02_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -21840,11 +21924,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_22"> + <widget class="QPushButton" name="ActuatorButton02_18"> <property name="geometry"> <rect> - <x>536</x> - <y>630</y> + <x>608</x> + <y>576</y> <width>10</width> <height>10</height> </rect> @@ -22292,7 +22376,7 @@ </palette> </property> <property name="toolTip"> - <string>02_22</string> + <string>02_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -22301,11 +22385,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_23"> + <widget class="QPushButton" name="ActuatorButton02_19"> <property name="geometry"> <rect> - <x>515</x> - <y>637</y> + <x>593</x> + <y>593</y> <width>10</width> <height>10</height> </rect> @@ -22753,7 +22837,7 @@ </palette> </property> <property name="toolTip"> - <string>02_23</string> + <string>02_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -22762,11 +22846,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_24"> + <widget class="QPushButton" name="ActuatorButton02_20"> <property name="geometry"> <rect> - <x>493</x> - <y>642</y> + <x>576</x> + <y>607</y> <width>10</width> <height>10</height> </rect> @@ -23214,7 +23298,7 @@ </palette> </property> <property name="toolTip"> - <string>02_24</string> + <string>02_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -23223,11 +23307,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_25"> + <widget class="QPushButton" name="ActuatorButton02_21"> <property name="geometry"> <rect> - <x>471</x> - <y>644</y> + <x>557</x> + <y>620</y> <width>10</width> <height>10</height> </rect> @@ -23675,7 +23759,7 @@ </palette> </property> <property name="toolTip"> - <string>02_25</string> + <string>02_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -23684,11 +23768,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_26"> + <widget class="QPushButton" name="ActuatorButton02_22"> <property name="geometry"> <rect> - <x>449</x> - <y>642</y> + <x>536</x> + <y>630</y> <width>10</width> <height>10</height> </rect> @@ -24136,7 +24220,7 @@ </palette> </property> <property name="toolTip"> - <string>02_26</string> + <string>02_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -24145,10 +24229,10 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_27"> + <widget class="QPushButton" name="ActuatorButton02_23"> <property name="geometry"> <rect> - <x>427</x> + <x>515</x> <y>637</y> <width>10</width> <height>10</height> @@ -24597,7 +24681,7 @@ </palette> </property> <property name="toolTip"> - <string>02_27</string> + <string>02_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -24606,11 +24690,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_28"> + <widget class="QPushButton" name="ActuatorButton02_24"> <property name="geometry"> <rect> - <x>405</x> - <y>631</y> + <x>493</x> + <y>642</y> <width>10</width> <height>10</height> </rect> @@ -25058,7 +25142,7 @@ </palette> </property> <property name="toolTip"> - <string>02_28</string> + <string>02_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -25067,11 +25151,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_29"> + <widget class="QPushButton" name="ActuatorButton02_25"> <property name="geometry"> <rect> - <x>385</x> - <y>620</y> + <x>471</x> + <y>644</y> <width>10</width> <height>10</height> </rect> @@ -25519,7 +25603,7 @@ </palette> </property> <property name="toolTip"> - <string>02_29</string> + <string>02_25</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -25528,11 +25612,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_30"> + <widget class="QPushButton" name="ActuatorButton02_26"> <property name="geometry"> <rect> - <x>365</x> - <y>607</y> + <x>449</x> + <y>642</y> <width>10</width> <height>10</height> </rect> @@ -25980,7 +26064,7 @@ </palette> </property> <property name="toolTip"> - <string>02_30</string> + <string>02_26</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -25989,11 +26073,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_31"> + <widget class="QPushButton" name="ActuatorButton02_27"> <property name="geometry"> <rect> - <x>349</x> - <y>592</y> + <x>427</x> + <y>637</y> <width>10</width> <height>10</height> </rect> @@ -26441,7 +26525,7 @@ </palette> </property> <property name="toolTip"> - <string>02_31</string> + <string>02_27</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -26450,11 +26534,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_32"> + <widget class="QPushButton" name="ActuatorButton02_28"> <property name="geometry"> <rect> - <x>333</x> - <y>576</y> + <x>405</x> + <y>631</y> <width>10</width> <height>10</height> </rect> @@ -26902,7 +26986,7 @@ </palette> </property> <property name="toolTip"> - <string>02_32</string> + <string>02_28</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -26911,11 +26995,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_33"> + <widget class="QPushButton" name="ActuatorButton02_29"> <property name="geometry"> <rect> - <x>321</x> - <y>557</y> + <x>385</x> + <y>620</y> <width>10</width> <height>10</height> </rect> @@ -27363,7 +27447,7 @@ </palette> </property> <property name="toolTip"> - <string>02_33</string> + <string>02_29</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -27372,11 +27456,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_34"> + <widget class="QPushButton" name="ActuatorButton02_30"> <property name="geometry"> <rect> - <x>312</x> - <y>536</y> + <x>365</x> + <y>607</y> <width>10</width> <height>10</height> </rect> @@ -27824,7 +27908,7 @@ </palette> </property> <property name="toolTip"> - <string>02_34</string> + <string>02_30</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -27833,11 +27917,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_35"> + <widget class="QPushButton" name="ActuatorButton02_31"> <property name="geometry"> <rect> - <x>304</x> - <y>515</y> + <x>349</x> + <y>592</y> <width>10</width> <height>10</height> </rect> @@ -28285,7 +28369,7 @@ </palette> </property> <property name="toolTip"> - <string>02_35</string> + <string>02_31</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -28294,11 +28378,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_36"> + <widget class="QPushButton" name="ActuatorButton02_32"> <property name="geometry"> <rect> - <x>300</x> - <y>493</y> + <x>333</x> + <y>576</y> <width>10</width> <height>10</height> </rect> @@ -28746,7 +28830,7 @@ </palette> </property> <property name="toolTip"> - <string>02_36</string> + <string>02_32</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -28755,11 +28839,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_37"> + <widget class="QPushButton" name="ActuatorButton02_33"> <property name="geometry"> <rect> - <x>299</x> - <y>471</y> + <x>321</x> + <y>557</y> <width>10</width> <height>10</height> </rect> @@ -29207,7 +29291,7 @@ </palette> </property> <property name="toolTip"> - <string>02_37</string> + <string>02_33</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -29216,11 +29300,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_38"> + <widget class="QPushButton" name="ActuatorButton02_34"> <property name="geometry"> <rect> - <x>300</x> - <y>449</y> + <x>312</x> + <y>536</y> <width>10</width> <height>10</height> </rect> @@ -29668,7 +29752,7 @@ </palette> </property> <property name="toolTip"> - <string>02_38</string> + <string>02_34</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -29677,11 +29761,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_39"> + <widget class="QPushButton" name="ActuatorButton02_35"> <property name="geometry"> <rect> <x>304</x> - <y>427</y> + <y>515</y> <width>10</width> <height>10</height> </rect> @@ -30129,7 +30213,7 @@ </palette> </property> <property name="toolTip"> - <string>02_39</string> + <string>02_35</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -30138,11 +30222,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_40"> + <widget class="QPushButton" name="ActuatorButton02_36"> <property name="geometry"> <rect> - <x>312</x> - <y>405</y> + <x>300</x> + <y>493</y> <width>10</width> <height>10</height> </rect> @@ -30590,7 +30674,7 @@ </palette> </property> <property name="toolTip"> - <string>02_40</string> + <string>02_36</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -30599,11 +30683,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_41"> + <widget class="QPushButton" name="ActuatorButton02_37"> <property name="geometry"> <rect> - <x>321</x> - <y>385</y> + <x>299</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -31051,7 +31135,7 @@ </palette> </property> <property name="toolTip"> - <string>02_41</string> + <string>02_37</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -31060,11 +31144,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_42"> + <widget class="QPushButton" name="ActuatorButton02_38"> <property name="geometry"> <rect> - <x>334</x> - <y>366</y> + <x>300</x> + <y>449</y> <width>10</width> <height>10</height> </rect> @@ -31512,7 +31596,7 @@ </palette> </property> <property name="toolTip"> - <string>02_42</string> + <string>02_38</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -31521,11 +31605,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_43"> + <widget class="QPushButton" name="ActuatorButton02_39"> <property name="geometry"> <rect> - <x>349</x> - <y>350</y> + <x>304</x> + <y>427</y> <width>10</width> <height>10</height> </rect> @@ -31973,7 +32057,7 @@ </palette> </property> <property name="toolTip"> - <string>02_43</string> + <string>02_39</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -31982,11 +32066,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_44"> + <widget class="QPushButton" name="ActuatorButton02_40"> <property name="geometry"> <rect> - <x>366</x> - <y>334</y> + <x>312</x> + <y>405</y> <width>10</width> <height>10</height> </rect> @@ -32434,7 +32518,7 @@ </palette> </property> <property name="toolTip"> - <string>02_44</string> + <string>02_40</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -32443,11 +32527,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_45"> + <widget class="QPushButton" name="ActuatorButton02_41"> <property name="geometry"> <rect> - <x>384</x> - <y>322</y> + <x>321</x> + <y>385</y> <width>10</width> <height>10</height> </rect> @@ -32895,7 +32979,7 @@ </palette> </property> <property name="toolTip"> - <string>02_45</string> + <string>02_41</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -32904,11 +32988,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_46"> + <widget class="QPushButton" name="ActuatorButton02_42"> <property name="geometry"> <rect> - <x>404</x> - <y>311</y> + <x>334</x> + <y>366</y> <width>10</width> <height>10</height> </rect> @@ -33356,7 +33440,7 @@ </palette> </property> <property name="toolTip"> - <string>02_46</string> + <string>02_42</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -33365,11 +33449,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_47"> + <widget class="QPushButton" name="ActuatorButton02_43"> <property name="geometry"> <rect> - <x>427</x> - <y>305</y> + <x>349</x> + <y>350</y> <width>10</width> <height>10</height> </rect> @@ -33817,7 +33901,7 @@ </palette> </property> <property name="toolTip"> - <string>02_47</string> + <string>02_43</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -33826,11 +33910,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton02_48"> + <widget class="QPushButton" name="ActuatorButton02_44"> <property name="geometry"> <rect> - <x>448</x> - <y>300</y> + <x>366</x> + <y>334</y> <width>10</width> <height>10</height> </rect> @@ -34278,7 +34362,7 @@ </palette> </property> <property name="toolTip"> - <string>02_48</string> + <string>02_44</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -34287,11 +34371,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_01"> + <widget class="QPushButton" name="ActuatorButton02_45"> <property name="geometry"> <rect> - <x>471</x> - <y>239</y> + <x>384</x> + <y>322</y> <width>10</width> <height>10</height> </rect> @@ -34739,7 +34823,7 @@ </palette> </property> <property name="toolTip"> - <string>03_01</string> + <string>02_45</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -34748,11 +34832,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_02"> + <widget class="QPushButton" name="ActuatorButton02_46"> <property name="geometry"> <rect> - <x>502</x> - <y>241</y> + <x>404</x> + <y>311</y> <width>10</width> <height>10</height> </rect> @@ -35200,7 +35284,7 @@ </palette> </property> <property name="toolTip"> - <string>03_02</string> + <string>02_46</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -35209,11 +35293,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_03"> + <widget class="QPushButton" name="ActuatorButton02_47"> <property name="geometry"> <rect> - <x>532</x> - <y>248</y> + <x>427</x> + <y>305</y> <width>10</width> <height>10</height> </rect> @@ -35661,7 +35745,7 @@ </palette> </property> <property name="toolTip"> - <string>03_03</string> + <string>02_47</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -35670,11 +35754,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_04"> + <widget class="QPushButton" name="ActuatorButton02_48"> <property name="geometry"> <rect> - <x>560</x> - <y>257</y> + <x>448</x> + <y>300</y> <width>10</width> <height>10</height> </rect> @@ -36122,7 +36206,7 @@ </palette> </property> <property name="toolTip"> - <string>03_04</string> + <string>02_48</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -36131,11 +36215,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_05"> + <widget class="QPushButton" name="ActuatorButton03_01"> <property name="geometry"> <rect> - <x>588</x> - <y>270</y> + <x>471</x> + <y>239</y> <width>10</width> <height>10</height> </rect> @@ -36583,7 +36667,7 @@ </palette> </property> <property name="toolTip"> - <string>03_05</string> + <string>03_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -36592,11 +36676,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_06"> + <widget class="QPushButton" name="ActuatorButton03_02"> <property name="geometry"> <rect> - <x>612</x> - <y>288</y> + <x>502</x> + <y>241</y> <width>10</width> <height>10</height> </rect> @@ -37044,7 +37128,7 @@ </palette> </property> <property name="toolTip"> - <string>03_06</string> + <string>03_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -37053,11 +37137,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_07"> + <widget class="QPushButton" name="ActuatorButton03_03"> <property name="geometry"> <rect> - <x>635</x> - <y>307</y> + <x>532</x> + <y>248</y> <width>10</width> <height>10</height> </rect> @@ -37505,7 +37589,7 @@ </palette> </property> <property name="toolTip"> - <string>03_07</string> + <string>03_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -37514,11 +37598,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_08"> + <widget class="QPushButton" name="ActuatorButton03_04"> <property name="geometry"> <rect> - <x>654</x> - <y>330</y> + <x>560</x> + <y>257</y> <width>10</width> <height>10</height> </rect> @@ -37966,7 +38050,7 @@ </palette> </property> <property name="toolTip"> - <string>03_08</string> + <string>03_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -37975,11 +38059,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_09"> + <widget class="QPushButton" name="ActuatorButton03_05"> <property name="geometry"> <rect> - <x>672</x> - <y>355</y> + <x>588</x> + <y>270</y> <width>10</width> <height>10</height> </rect> @@ -38427,7 +38511,7 @@ </palette> </property> <property name="toolTip"> - <string>03_09</string> + <string>03_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -38436,11 +38520,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_10"> + <widget class="QPushButton" name="ActuatorButton03_06"> <property name="geometry"> <rect> - <x>685</x> - <y>382</y> + <x>612</x> + <y>288</y> <width>10</width> <height>10</height> </rect> @@ -38888,7 +38972,7 @@ </palette> </property> <property name="toolTip"> - <string>03_10</string> + <string>03_06</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -38897,11 +38981,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_11"> + <widget class="QPushButton" name="ActuatorButton03_07"> <property name="geometry"> <rect> - <x>695</x> - <y>411</y> + <x>635</x> + <y>307</y> <width>10</width> <height>10</height> </rect> @@ -39349,7 +39433,7 @@ </palette> </property> <property name="toolTip"> - <string>03_11</string> + <string>03_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -39358,11 +39442,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_12"> + <widget class="QPushButton" name="ActuatorButton03_08"> <property name="geometry"> <rect> - <x>701</x> - <y>441</y> + <x>654</x> + <y>330</y> <width>10</width> <height>10</height> </rect> @@ -39810,7 +39894,7 @@ </palette> </property> <property name="toolTip"> - <string>03_12</string> + <string>03_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -39819,11 +39903,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_13"> + <widget class="QPushButton" name="ActuatorButton03_09"> <property name="geometry"> <rect> - <x>703</x> - <y>471</y> + <x>672</x> + <y>355</y> <width>10</width> <height>10</height> </rect> @@ -40271,7 +40355,7 @@ </palette> </property> <property name="toolTip"> - <string>03_13</string> + <string>03_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -40280,11 +40364,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_14"> + <widget class="QPushButton" name="ActuatorButton03_10"> <property name="geometry"> <rect> - <x>701</x> - <y>502</y> + <x>685</x> + <y>382</y> <width>10</width> <height>10</height> </rect> @@ -40732,7 +40816,7 @@ </palette> </property> <property name="toolTip"> - <string>03_14</string> + <string>03_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -40741,11 +40825,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_15"> + <widget class="QPushButton" name="ActuatorButton03_11"> <property name="geometry"> <rect> <x>695</x> - <y>532</y> + <y>411</y> <width>10</width> <height>10</height> </rect> @@ -41193,7 +41277,7 @@ </palette> </property> <property name="toolTip"> - <string>03_15</string> + <string>03_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -41202,11 +41286,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_16"> + <widget class="QPushButton" name="ActuatorButton03_12"> <property name="geometry"> <rect> - <x>685</x> - <y>560</y> + <x>701</x> + <y>441</y> <width>10</width> <height>10</height> </rect> @@ -41654,7 +41738,7 @@ </palette> </property> <property name="toolTip"> - <string>03_16</string> + <string>03_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -41663,11 +41747,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_17"> + <widget class="QPushButton" name="ActuatorButton03_13"> <property name="geometry"> <rect> - <x>672</x> - <y>588</y> + <x>703</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -42115,7 +42199,7 @@ </palette> </property> <property name="toolTip"> - <string>03_17</string> + <string>03_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -42124,11 +42208,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_18"> + <widget class="QPushButton" name="ActuatorButton03_14"> <property name="geometry"> <rect> - <x>655</x> - <y>613</y> + <x>701</x> + <y>502</y> <width>10</width> <height>10</height> </rect> @@ -42576,7 +42660,7 @@ </palette> </property> <property name="toolTip"> - <string>03_18</string> + <string>03_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -42585,11 +42669,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_19"> + <widget class="QPushButton" name="ActuatorButton03_15"> <property name="geometry"> <rect> - <x>635</x> - <y>636</y> + <x>695</x> + <y>532</y> <width>10</width> <height>10</height> </rect> @@ -43037,7 +43121,7 @@ </palette> </property> <property name="toolTip"> - <string>03_19</string> + <string>03_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -43046,11 +43130,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_20"> + <widget class="QPushButton" name="ActuatorButton03_16"> <property name="geometry"> <rect> - <x>612</x> - <y>656</y> + <x>685</x> + <y>560</y> <width>10</width> <height>10</height> </rect> @@ -43498,7 +43582,7 @@ </palette> </property> <property name="toolTip"> - <string>03_20</string> + <string>03_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -43507,11 +43591,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_21"> + <widget class="QPushButton" name="ActuatorButton03_17"> <property name="geometry"> <rect> - <x>587</x> - <y>673</y> + <x>672</x> + <y>588</y> <width>10</width> <height>10</height> </rect> @@ -43959,7 +44043,7 @@ </palette> </property> <property name="toolTip"> - <string>03_21</string> + <string>03_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -43968,11 +44052,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_22"> + <widget class="QPushButton" name="ActuatorButton03_18"> <property name="geometry"> <rect> - <x>560</x> - <y>687</y> + <x>655</x> + <y>613</y> <width>10</width> <height>10</height> </rect> @@ -44420,7 +44504,7 @@ </palette> </property> <property name="toolTip"> - <string>03_22</string> + <string>03_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -44429,11 +44513,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_23"> + <widget class="QPushButton" name="ActuatorButton03_19"> <property name="geometry"> <rect> - <x>531</x> - <y>696</y> + <x>635</x> + <y>636</y> <width>10</width> <height>10</height> </rect> @@ -44881,7 +44965,7 @@ </palette> </property> <property name="toolTip"> - <string>03_23</string> + <string>03_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -44890,11 +44974,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_24"> + <widget class="QPushButton" name="ActuatorButton03_20"> <property name="geometry"> <rect> - <x>501</x> - <y>701</y> + <x>612</x> + <y>656</y> <width>10</width> <height>10</height> </rect> @@ -45342,7 +45426,7 @@ </palette> </property> <property name="toolTip"> - <string>03_24</string> + <string>03_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -45351,11 +45435,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_25"> + <widget class="QPushButton" name="ActuatorButton03_21"> <property name="geometry"> <rect> - <x>471</x> - <y>704</y> + <x>587</x> + <y>673</y> <width>10</width> <height>10</height> </rect> @@ -45803,7 +45887,7 @@ </palette> </property> <property name="toolTip"> - <string>03_25</string> + <string>03_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -45812,11 +45896,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_26"> + <widget class="QPushButton" name="ActuatorButton03_22"> <property name="geometry"> <rect> - <x>440</x> - <y>702</y> + <x>560</x> + <y>687</y> <width>10</width> <height>10</height> </rect> @@ -46264,7 +46348,7 @@ </palette> </property> <property name="toolTip"> - <string>03_26</string> + <string>03_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -46273,11 +46357,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_27"> + <widget class="QPushButton" name="ActuatorButton03_23"> <property name="geometry"> <rect> - <x>410</x> - <y>695</y> + <x>531</x> + <y>696</y> <width>10</width> <height>10</height> </rect> @@ -46725,7 +46809,7 @@ </palette> </property> <property name="toolTip"> - <string>03_27</string> + <string>03_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -46734,11 +46818,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_28"> + <widget class="QPushButton" name="ActuatorButton03_24"> <property name="geometry"> <rect> - <x>382</x> - <y>686</y> + <x>501</x> + <y>701</y> <width>10</width> <height>10</height> </rect> @@ -47186,7 +47270,7 @@ </palette> </property> <property name="toolTip"> - <string>03_28</string> + <string>03_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -47195,11 +47279,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_29"> + <widget class="QPushButton" name="ActuatorButton03_25"> <property name="geometry"> <rect> - <x>354</x> - <y>672</y> + <x>471</x> + <y>704</y> <width>10</width> <height>10</height> </rect> @@ -47647,7 +47731,7 @@ </palette> </property> <property name="toolTip"> - <string>03_29</string> + <string>03_25</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -47656,11 +47740,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_30"> + <widget class="QPushButton" name="ActuatorButton03_26"> <property name="geometry"> <rect> - <x>329</x> - <y>656</y> + <x>440</x> + <y>702</y> <width>10</width> <height>10</height> </rect> @@ -48108,7 +48192,7 @@ </palette> </property> <property name="toolTip"> - <string>03_30</string> + <string>03_26</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -48117,11 +48201,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_31"> + <widget class="QPushButton" name="ActuatorButton03_27"> <property name="geometry"> <rect> - <x>306</x> - <y>635</y> + <x>410</x> + <y>695</y> <width>10</width> <height>10</height> </rect> @@ -48569,7 +48653,7 @@ </palette> </property> <property name="toolTip"> - <string>03_31</string> + <string>03_27</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -48578,11 +48662,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_32"> + <widget class="QPushButton" name="ActuatorButton03_28"> <property name="geometry"> <rect> - <x>286</x> - <y>613</y> + <x>382</x> + <y>686</y> <width>10</width> <height>10</height> </rect> @@ -49030,7 +49114,7 @@ </palette> </property> <property name="toolTip"> - <string>03_32</string> + <string>03_28</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -49039,11 +49123,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_33"> + <widget class="QPushButton" name="ActuatorButton03_29"> <property name="geometry"> <rect> - <x>269</x> - <y>587</y> + <x>354</x> + <y>672</y> <width>10</width> <height>10</height> </rect> @@ -49491,7 +49575,7 @@ </palette> </property> <property name="toolTip"> - <string>03_33</string> + <string>03_29</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -49500,11 +49584,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_34"> + <widget class="QPushButton" name="ActuatorButton03_30"> <property name="geometry"> <rect> - <x>257</x> - <y>559</y> + <x>329</x> + <y>656</y> <width>10</width> <height>10</height> </rect> @@ -49952,7 +50036,7 @@ </palette> </property> <property name="toolTip"> - <string>03_34</string> + <string>03_30</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -49961,11 +50045,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_35"> + <widget class="QPushButton" name="ActuatorButton03_31"> <property name="geometry"> <rect> - <x>247</x> - <y>531</y> + <x>306</x> + <y>635</y> <width>10</width> <height>10</height> </rect> @@ -50413,7 +50497,7 @@ </palette> </property> <property name="toolTip"> - <string>03_35</string> + <string>03_31</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -50422,11 +50506,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_36"> + <widget class="QPushButton" name="ActuatorButton03_32"> <property name="geometry"> <rect> - <x>240</x> - <y>501</y> + <x>286</x> + <y>613</y> <width>10</width> <height>10</height> </rect> @@ -50874,7 +50958,7 @@ </palette> </property> <property name="toolTip"> - <string>03_36</string> + <string>03_32</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -50883,11 +50967,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_37"> + <widget class="QPushButton" name="ActuatorButton03_33"> <property name="geometry"> <rect> - <x>238</x> - <y>471</y> + <x>269</x> + <y>587</y> <width>10</width> <height>10</height> </rect> @@ -51335,7 +51419,7 @@ </palette> </property> <property name="toolTip"> - <string>03_37</string> + <string>03_33</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -51344,11 +51428,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_38"> + <widget class="QPushButton" name="ActuatorButton03_34"> <property name="geometry"> <rect> - <x>240</x> - <y>441</y> + <x>257</x> + <y>559</y> <width>10</width> <height>10</height> </rect> @@ -51796,7 +51880,7 @@ </palette> </property> <property name="toolTip"> - <string>03_38</string> + <string>03_34</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -51805,11 +51889,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_39"> + <widget class="QPushButton" name="ActuatorButton03_35"> <property name="geometry"> <rect> - <x>246</x> - <y>411</y> + <x>247</x> + <y>531</y> <width>10</width> <height>10</height> </rect> @@ -52257,7 +52341,7 @@ </palette> </property> <property name="toolTip"> - <string>03_39</string> + <string>03_35</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -52266,11 +52350,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_40"> + <widget class="QPushButton" name="ActuatorButton03_36"> <property name="geometry"> <rect> - <x>256</x> - <y>383</y> + <x>240</x> + <y>501</y> <width>10</width> <height>10</height> </rect> @@ -52718,7 +52802,7 @@ </palette> </property> <property name="toolTip"> - <string>03_40</string> + <string>03_36</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -52727,11 +52811,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_41"> + <widget class="QPushButton" name="ActuatorButton03_37"> <property name="geometry"> <rect> - <x>269</x> - <y>355</y> + <x>238</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -53179,7 +53263,7 @@ </palette> </property> <property name="toolTip"> - <string>03_41</string> + <string>03_37</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -53188,11 +53272,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_42"> + <widget class="QPushButton" name="ActuatorButton03_38"> <property name="geometry"> <rect> - <x>287</x> - <y>330</y> + <x>240</x> + <y>441</y> <width>10</width> <height>10</height> </rect> @@ -53640,7 +53724,7 @@ </palette> </property> <property name="toolTip"> - <string>03_42</string> + <string>03_38</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -53649,11 +53733,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_43"> + <widget class="QPushButton" name="ActuatorButton03_39"> <property name="geometry"> <rect> - <x>306</x> - <y>307</y> + <x>246</x> + <y>411</y> <width>10</width> <height>10</height> </rect> @@ -54101,7 +54185,7 @@ </palette> </property> <property name="toolTip"> - <string>03_43</string> + <string>03_39</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -54110,11 +54194,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_44"> + <widget class="QPushButton" name="ActuatorButton03_40"> <property name="geometry"> <rect> - <x>329</x> - <y>287</y> + <x>256</x> + <y>383</y> <width>10</width> <height>10</height> </rect> @@ -54562,7 +54646,7 @@ </palette> </property> <property name="toolTip"> - <string>03_44</string> + <string>03_40</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -54571,11 +54655,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_45"> + <widget class="QPushButton" name="ActuatorButton03_41"> <property name="geometry"> <rect> - <x>354</x> - <y>270</y> + <x>269</x> + <y>355</y> <width>10</width> <height>10</height> </rect> @@ -55023,7 +55107,7 @@ </palette> </property> <property name="toolTip"> - <string>03_45</string> + <string>03_41</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -55032,11 +55116,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_46"> + <widget class="QPushButton" name="ActuatorButton03_42"> <property name="geometry"> <rect> - <x>382</x> - <y>257</y> + <x>287</x> + <y>330</y> <width>10</width> <height>10</height> </rect> @@ -55484,7 +55568,7 @@ </palette> </property> <property name="toolTip"> - <string>03_46</string> + <string>03_42</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -55493,11 +55577,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_47"> + <widget class="QPushButton" name="ActuatorButton03_43"> <property name="geometry"> <rect> - <x>410</x> - <y>247</y> + <x>306</x> + <y>307</y> <width>10</width> <height>10</height> </rect> @@ -55945,7 +56029,7 @@ </palette> </property> <property name="toolTip"> - <string>03_47</string> + <string>03_43</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -55954,11 +56038,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton03_48"> + <widget class="QPushButton" name="ActuatorButton03_44"> <property name="geometry"> <rect> - <x>440</x> - <y>241</y> + <x>329</x> + <y>287</y> <width>10</width> <height>10</height> </rect> @@ -56406,7 +56490,7 @@ </palette> </property> <property name="toolTip"> - <string>03_48</string> + <string>03_44</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -56415,11 +56499,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_02"> + <widget class="QPushButton" name="ActuatorButton03_45"> <property name="geometry"> <rect> - <x>509</x> - <y>183</y> + <x>354</x> + <y>270</y> <width>10</width> <height>10</height> </rect> @@ -56867,7 +56951,7 @@ </palette> </property> <property name="toolTip"> - <string>04_02</string> + <string>03_45</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -56876,11 +56960,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_03"> + <widget class="QPushButton" name="ActuatorButton03_46"> <property name="geometry"> <rect> - <x>546</x> - <y>190</y> + <x>382</x> + <y>257</y> <width>10</width> <height>10</height> </rect> @@ -57328,7 +57412,7 @@ </palette> </property> <property name="toolTip"> - <string>04_03</string> + <string>03_46</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -57337,11 +57421,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_04"> + <widget class="QPushButton" name="ActuatorButton03_47"> <property name="geometry"> <rect> - <x>582</x> - <y>202</y> + <x>410</x> + <y>247</y> <width>10</width> <height>10</height> </rect> @@ -57789,7 +57873,7 @@ </palette> </property> <property name="toolTip"> - <string>04_04</string> + <string>03_47</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -57798,11 +57882,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_05"> + <widget class="QPushButton" name="ActuatorButton03_48"> <property name="geometry"> <rect> - <x>616</x> - <y>220</y> + <x>440</x> + <y>241</y> <width>10</width> <height>10</height> </rect> @@ -58250,7 +58334,7 @@ </palette> </property> <property name="toolTip"> - <string>04_05</string> + <string>03_48</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -58259,11 +58343,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_07"> + <widget class="QPushButton" name="ActuatorButton04_02"> <property name="geometry"> <rect> - <x>677</x> - <y>265</y> + <x>509</x> + <y>183</y> <width>10</width> <height>10</height> </rect> @@ -58711,7 +58795,7 @@ </palette> </property> <property name="toolTip"> - <string>04_07</string> + <string>04_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -58720,11 +58804,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_09"> + <widget class="QPushButton" name="ActuatorButton04_03"> <property name="geometry"> <rect> - <x>723</x> - <y>326</y> + <x>546</x> + <y>190</y> <width>10</width> <height>10</height> </rect> @@ -59172,7 +59256,7 @@ </palette> </property> <property name="toolTip"> - <string>04_09</string> + <string>04_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -59181,11 +59265,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_10"> + <widget class="QPushButton" name="ActuatorButton04_04"> <property name="geometry"> <rect> - <x>740</x> - <y>360</y> + <x>582</x> + <y>202</y> <width>10</width> <height>10</height> </rect> @@ -59633,7 +59717,7 @@ </palette> </property> <property name="toolTip"> - <string>04_10</string> + <string>04_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -59642,11 +59726,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_11"> + <widget class="QPushButton" name="ActuatorButton04_05"> <property name="geometry"> <rect> - <x>752</x> - <y>395</y> + <x>616</x> + <y>220</y> <width>10</width> <height>10</height> </rect> @@ -60094,7 +60178,7 @@ </palette> </property> <property name="toolTip"> - <string>04_11</string> + <string>04_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -60103,11 +60187,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_12"> + <widget class="QPushButton" name="ActuatorButton04_07"> <property name="geometry"> <rect> - <x>759</x> - <y>433</y> + <x>677</x> + <y>265</y> <width>10</width> <height>10</height> </rect> @@ -60555,7 +60639,7 @@ </palette> </property> <property name="toolTip"> - <string>04_12</string> + <string>04_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -60564,11 +60648,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_13"> + <widget class="QPushButton" name="ActuatorButton04_09"> <property name="geometry"> <rect> - <x>762</x> - <y>471</y> + <x>723</x> + <y>326</y> <width>10</width> <height>10</height> </rect> @@ -61016,7 +61100,7 @@ </palette> </property> <property name="toolTip"> - <string>04_13</string> + <string>04_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -61025,11 +61109,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_14"> + <widget class="QPushButton" name="ActuatorButton04_10"> <property name="geometry"> <rect> - <x>760</x> - <y>509</y> + <x>740</x> + <y>360</y> <width>10</width> <height>10</height> </rect> @@ -61477,7 +61561,7 @@ </palette> </property> <property name="toolTip"> - <string>04_14</string> + <string>04_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -61486,11 +61570,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_15"> + <widget class="QPushButton" name="ActuatorButton04_11"> <property name="geometry"> <rect> <x>752</x> - <y>547</y> + <y>395</y> <width>10</width> <height>10</height> </rect> @@ -61938,7 +62022,7 @@ </palette> </property> <property name="toolTip"> - <string>04_15</string> + <string>04_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -61947,11 +62031,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_16"> + <widget class="QPushButton" name="ActuatorButton04_12"> <property name="geometry"> <rect> - <x>740</x> - <y>582</y> + <x>759</x> + <y>433</y> <width>10</width> <height>10</height> </rect> @@ -62399,7 +62483,7 @@ </palette> </property> <property name="toolTip"> - <string>04_16</string> + <string>04_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -62408,11 +62492,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_17"> + <widget class="QPushButton" name="ActuatorButton04_13"> <property name="geometry"> <rect> - <x>723</x> - <y>616</y> + <x>762</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -62860,7 +62944,7 @@ </palette> </property> <property name="toolTip"> - <string>04_17</string> + <string>04_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -62869,11 +62953,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_19"> + <widget class="QPushButton" name="ActuatorButton04_14"> <property name="geometry"> <rect> - <x>677</x> - <y>677</y> + <x>760</x> + <y>509</y> <width>10</width> <height>10</height> </rect> @@ -63321,7 +63405,7 @@ </palette> </property> <property name="toolTip"> - <string>04_19</string> + <string>04_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -63330,11 +63414,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_21"> + <widget class="QPushButton" name="ActuatorButton04_15"> <property name="geometry"> <rect> - <x>616</x> - <y>724</y> + <x>752</x> + <y>547</y> <width>10</width> <height>10</height> </rect> @@ -63782,7 +63866,7 @@ </palette> </property> <property name="toolTip"> - <string>04_21</string> + <string>04_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -63791,11 +63875,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_22"> + <widget class="QPushButton" name="ActuatorButton04_16"> <property name="geometry"> <rect> - <x>583</x> - <y>740</y> + <x>740</x> + <y>582</y> <width>10</width> <height>10</height> </rect> @@ -64243,7 +64327,7 @@ </palette> </property> <property name="toolTip"> - <string>04_22</string> + <string>04_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -64252,11 +64336,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_23"> + <widget class="QPushButton" name="ActuatorButton04_17"> <property name="geometry"> <rect> - <x>546</x> - <y>753</y> + <x>723</x> + <y>616</y> <width>10</width> <height>10</height> </rect> @@ -64704,7 +64788,7 @@ </palette> </property> <property name="toolTip"> - <string>04_23</string> + <string>04_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -64713,11 +64797,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_24"> + <widget class="QPushButton" name="ActuatorButton04_19"> <property name="geometry"> <rect> - <x>508</x> - <y>760</y> + <x>677</x> + <y>677</y> <width>10</width> <height>10</height> </rect> @@ -65165,7 +65249,7 @@ </palette> </property> <property name="toolTip"> - <string>04_24</string> + <string>04_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -65174,11 +65258,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_25"> + <widget class="QPushButton" name="ActuatorButton04_21"> <property name="geometry"> <rect> - <x>470</x> - <y>763</y> + <x>616</x> + <y>724</y> <width>10</width> <height>10</height> </rect> @@ -65626,7 +65710,7 @@ </palette> </property> <property name="toolTip"> - <string>04_25</string> + <string>04_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -65635,11 +65719,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_26"> + <widget class="QPushButton" name="ActuatorButton04_22"> <property name="geometry"> <rect> - <x>433</x> - <y>760</y> + <x>583</x> + <y>740</y> <width>10</width> <height>10</height> </rect> @@ -66087,7 +66171,7 @@ </palette> </property> <property name="toolTip"> - <string>04_26</string> + <string>04_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -66096,10 +66180,10 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_27"> + <widget class="QPushButton" name="ActuatorButton04_23"> <property name="geometry"> <rect> - <x>395</x> + <x>546</x> <y>753</y> <width>10</width> <height>10</height> @@ -66548,7 +66632,7 @@ </palette> </property> <property name="toolTip"> - <string>04_27</string> + <string>04_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -66557,11 +66641,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_28"> + <widget class="QPushButton" name="ActuatorButton04_24"> <property name="geometry"> <rect> - <x>359</x> - <y>741</y> + <x>508</x> + <y>760</y> <width>10</width> <height>10</height> </rect> @@ -67009,7 +67093,7 @@ </palette> </property> <property name="toolTip"> - <string>04_28</string> + <string>04_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -67018,11 +67102,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_29"> + <widget class="QPushButton" name="ActuatorButton04_25"> <property name="geometry"> <rect> - <x>325</x> - <y>723</y> + <x>470</x> + <y>763</y> <width>10</width> <height>10</height> </rect> @@ -67470,7 +67554,7 @@ </palette> </property> <property name="toolTip"> - <string>04_29</string> + <string>04_25</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -67479,11 +67563,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_31"> + <widget class="QPushButton" name="ActuatorButton04_26"> <property name="geometry"> <rect> - <x>264</x> - <y>677</y> + <x>433</x> + <y>760</y> <width>10</width> <height>10</height> </rect> @@ -67931,7 +68015,7 @@ </palette> </property> <property name="toolTip"> - <string>04_31</string> + <string>04_26</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -67940,11 +68024,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_33"> + <widget class="QPushButton" name="ActuatorButton04_27"> <property name="geometry"> <rect> - <x>218</x> - <y>616</y> + <x>395</x> + <y>753</y> <width>10</width> <height>10</height> </rect> @@ -68392,7 +68476,7 @@ </palette> </property> <property name="toolTip"> - <string>04_33</string> + <string>04_27</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -68401,11 +68485,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_34"> + <widget class="QPushButton" name="ActuatorButton04_28"> <property name="geometry"> <rect> - <x>201</x> - <y>582</y> + <x>359</x> + <y>741</y> <width>10</width> <height>10</height> </rect> @@ -68853,7 +68937,7 @@ </palette> </property> <property name="toolTip"> - <string>04_34</string> + <string>04_28</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -68862,11 +68946,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_35"> + <widget class="QPushButton" name="ActuatorButton04_29"> <property name="geometry"> <rect> - <x>189</x> - <y>546</y> + <x>325</x> + <y>723</y> <width>10</width> <height>10</height> </rect> @@ -69314,7 +69398,7 @@ </palette> </property> <property name="toolTip"> - <string>04_35</string> + <string>04_29</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -69323,11 +69407,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_36"> + <widget class="QPushButton" name="ActuatorButton04_31"> <property name="geometry"> <rect> - <x>182</x> - <y>509</y> + <x>264</x> + <y>677</y> <width>10</width> <height>10</height> </rect> @@ -69775,7 +69859,7 @@ </palette> </property> <property name="toolTip"> - <string>04_36</string> + <string>04_31</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -69784,11 +69868,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_37"> + <widget class="QPushButton" name="ActuatorButton04_33"> <property name="geometry"> <rect> - <x>179</x> - <y>471</y> + <x>218</x> + <y>616</y> <width>10</width> <height>10</height> </rect> @@ -70236,7 +70320,7 @@ </palette> </property> <property name="toolTip"> - <string>04_37</string> + <string>04_33</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -70245,11 +70329,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_38"> + <widget class="QPushButton" name="ActuatorButton04_34"> <property name="geometry"> <rect> - <x>181</x> - <y>433</y> + <x>201</x> + <y>582</y> <width>10</width> <height>10</height> </rect> @@ -70697,7 +70781,7 @@ </palette> </property> <property name="toolTip"> - <string>04_38</string> + <string>04_34</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -70706,11 +70790,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_39"> + <widget class="QPushButton" name="ActuatorButton04_35"> <property name="geometry"> <rect> <x>189</x> - <y>396</y> + <y>546</y> <width>10</width> <height>10</height> </rect> @@ -71158,7 +71242,7 @@ </palette> </property> <property name="toolTip"> - <string>04_39</string> + <string>04_35</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -71167,11 +71251,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_40"> + <widget class="QPushButton" name="ActuatorButton04_36"> <property name="geometry"> <rect> - <x>201</x> - <y>360</y> + <x>182</x> + <y>509</y> <width>10</width> <height>10</height> </rect> @@ -71619,7 +71703,7 @@ </palette> </property> <property name="toolTip"> - <string>04_40</string> + <string>04_36</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -71628,11 +71712,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_41"> + <widget class="QPushButton" name="ActuatorButton04_37"> <property name="geometry"> <rect> - <x>218</x> - <y>325</y> + <x>179</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -72080,7 +72164,7 @@ </palette> </property> <property name="toolTip"> - <string>04_41</string> + <string>04_37</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -72089,11 +72173,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_43"> + <widget class="QPushButton" name="ActuatorButton04_38"> <property name="geometry"> <rect> - <x>264</x> - <y>265</y> + <x>181</x> + <y>433</y> <width>10</width> <height>10</height> </rect> @@ -72541,7 +72625,7 @@ </palette> </property> <property name="toolTip"> - <string>04_43</string> + <string>04_38</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -72550,11 +72634,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_45"> + <widget class="QPushButton" name="ActuatorButton04_39"> <property name="geometry"> <rect> - <x>325</x> - <y>219</y> + <x>189</x> + <y>396</y> <width>10</width> <height>10</height> </rect> @@ -73002,7 +73086,7 @@ </palette> </property> <property name="toolTip"> - <string>04_45</string> + <string>04_39</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -73011,11 +73095,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_46"> + <widget class="QPushButton" name="ActuatorButton04_40"> <property name="geometry"> <rect> - <x>359</x> - <y>202</y> + <x>201</x> + <y>360</y> <width>10</width> <height>10</height> </rect> @@ -73463,7 +73547,7 @@ </palette> </property> <property name="toolTip"> - <string>04_46</string> + <string>04_40</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -73472,11 +73556,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_47"> + <widget class="QPushButton" name="ActuatorButton04_41"> <property name="geometry"> <rect> - <x>395</x> - <y>189</y> + <x>218</x> + <y>325</y> <width>10</width> <height>10</height> </rect> @@ -73924,7 +74008,7 @@ </palette> </property> <property name="toolTip"> - <string>04_47</string> + <string>04_41</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -73933,11 +74017,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_48"> + <widget class="QPushButton" name="ActuatorButton04_43"> <property name="geometry"> <rect> - <x>433</x> - <y>182</y> + <x>264</x> + <y>265</y> <width>10</width> <height>10</height> </rect> @@ -74385,7 +74469,7 @@ </palette> </property> <property name="toolTip"> - <string>04_48</string> + <string>04_43</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -74394,13 +74478,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="C1ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton04_45"> <property name="geometry"> <rect> - <x>468</x> - <y>370</y> - <width>20</width> - <height>15</height> + <x>325</x> + <y>219</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -74845,28 +74929,23 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 1 circle</string> + <string>04_45</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C1</string> + <string/> </property> </widget> - <widget class="QPushButton" name="C2ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton04_46"> <property name="geometry"> <rect> - <x>470</x> - <y>310</y> - <width>20</width> - <height>15</height> + <x>359</x> + <y>202</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -75311,28 +75390,23 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 2 circle</string> + <string>04_46</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C2</string> + <string/> </property> </widget> - <widget class="QPushButton" name="C3ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton04_47"> <property name="geometry"> <rect> - <x>470</x> - <y>252</y> - <width>20</width> - <height>15</height> + <x>395</x> + <y>189</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -75777,26 +75851,21 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 3 circle</string> + <string>04_47</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C3</string> + <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_01"> + <widget class="QPushButton" name="ActuatorButton04_48"> <property name="geometry"> <rect> - <x>471</x> - <y>129</y> + <x>433</x> + <y>182</y> <width>10</width> <height>10</height> </rect> @@ -76244,7 +76313,7 @@ </palette> </property> <property name="toolTip"> - <string>05_01</string> + <string>04_48</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -76253,13 +76322,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_02"> + <widget class="QPushButton" name="C1ActuatorsButton"> <property name="geometry"> <rect> - <x>516</x> - <y>132</y> - <width>10</width> - <height>10</height> + <x>468</x> + <y>370</y> + <width>20</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -76704,23 +76773,28 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>05_02</string> + <string>Controls actuators in 1 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>C1</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_03"> + <widget class="QPushButton" name="C2ActuatorsButton"> <property name="geometry"> <rect> - <x>559</x> - <y>142</y> - <width>10</width> - <height>10</height> + <x>470</x> + <y>310</y> + <width>20</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -77165,23 +77239,28 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>05_03</string> + <string>Controls actuators in 2 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>C2</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_04"> + <widget class="QPushButton" name="C3ActuatorsButton"> <property name="geometry"> <rect> - <x>602</x> - <y>155</y> - <width>10</width> - <height>10</height> + <x>470</x> + <y>252</y> + <width>20</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -77626,21 +77705,26 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>05_04</string> + <string>Controls actuators in 3 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>C3</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_05"> + <widget class="QPushButton" name="ActuatorButton05_01"> <property name="geometry"> <rect> - <x>642</x> - <y>175</y> + <x>471</x> + <y>129</y> <width>10</width> <height>10</height> </rect> @@ -78088,7 +78172,7 @@ </palette> </property> <property name="toolTip"> - <string>05_05</string> + <string>05_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -78097,11 +78181,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_06"> + <widget class="QPushButton" name="ActuatorButton05_02"> <property name="geometry"> <rect> - <x>680</x> - <y>200</y> + <x>516</x> + <y>132</y> <width>10</width> <height>10</height> </rect> @@ -78549,7 +78633,7 @@ </palette> </property> <property name="toolTip"> - <string>11_11</string> + <string>05_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -78558,11 +78642,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_08"> + <widget class="QPushButton" name="ActuatorButton05_03"> <property name="geometry"> <rect> - <x>743</x> - <y>264</y> + <x>559</x> + <y>142</y> <width>10</width> <height>10</height> </rect> @@ -79010,7 +79094,7 @@ </palette> </property> <property name="toolTip"> - <string>05_08</string> + <string>05_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -79019,11 +79103,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_09"> + <widget class="QPushButton" name="ActuatorButton05_04"> <property name="geometry"> <rect> - <x>767</x> - <y>300</y> + <x>602</x> + <y>155</y> <width>10</width> <height>10</height> </rect> @@ -79471,7 +79555,7 @@ </palette> </property> <property name="toolTip"> - <string>05_09</string> + <string>05_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -79480,11 +79564,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_10"> + <widget class="QPushButton" name="ActuatorButton05_05"> <property name="geometry"> <rect> - <x>787</x> - <y>340</y> + <x>642</x> + <y>175</y> <width>10</width> <height>10</height> </rect> @@ -79932,7 +80016,7 @@ </palette> </property> <property name="toolTip"> - <string>05_10</string> + <string>05_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -79941,11 +80025,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_11"> + <widget class="QPushButton" name="ActuatorButton05_06"> <property name="geometry"> <rect> - <x>801</x> - <y>383</y> + <x>680</x> + <y>200</y> <width>10</width> <height>10</height> </rect> @@ -80393,7 +80477,7 @@ </palette> </property> <property name="toolTip"> - <string>05_11</string> + <string>11_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -80402,11 +80486,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_12"> + <widget class="QPushButton" name="ActuatorButton05_08"> <property name="geometry"> <rect> - <x>810</x> - <y>426</y> + <x>743</x> + <y>264</y> <width>10</width> <height>10</height> </rect> @@ -80854,7 +80938,7 @@ </palette> </property> <property name="toolTip"> - <string>05_12</string> + <string>05_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -80863,11 +80947,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_13"> + <widget class="QPushButton" name="ActuatorButton05_09"> <property name="geometry"> <rect> - <x>813</x> - <y>471</y> + <x>767</x> + <y>300</y> <width>10</width> <height>10</height> </rect> @@ -81315,7 +81399,7 @@ </palette> </property> <property name="toolTip"> - <string>05_13</string> + <string>05_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -81324,11 +81408,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_14"> + <widget class="QPushButton" name="ActuatorButton05_10"> <property name="geometry"> <rect> - <x>810</x> - <y>516</y> + <x>787</x> + <y>340</y> <width>10</width> <height>10</height> </rect> @@ -81776,7 +81860,7 @@ </palette> </property> <property name="toolTip"> - <string>05_14</string> + <string>05_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -81785,11 +81869,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_15"> + <widget class="QPushButton" name="ActuatorButton05_11"> <property name="geometry"> <rect> <x>801</x> - <y>560</y> + <y>383</y> <width>10</width> <height>10</height> </rect> @@ -82237,7 +82321,7 @@ </palette> </property> <property name="toolTip"> - <string>05_15</string> + <string>05_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -82246,11 +82330,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_16"> + <widget class="QPushButton" name="ActuatorButton05_12"> <property name="geometry"> <rect> - <x>787</x> - <y>602</y> + <x>810</x> + <y>426</y> <width>10</width> <height>10</height> </rect> @@ -82698,7 +82782,7 @@ </palette> </property> <property name="toolTip"> - <string>05_16</string> + <string>05_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -82707,11 +82791,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_17"> + <widget class="QPushButton" name="ActuatorButton05_13"> <property name="geometry"> <rect> - <x>767</x> - <y>642</y> + <x>813</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -83159,7 +83243,7 @@ </palette> </property> <property name="toolTip"> - <string>05_17</string> + <string>05_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -83168,11 +83252,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_18"> + <widget class="QPushButton" name="ActuatorButton05_14"> <property name="geometry"> <rect> - <x>742</x> - <y>679</y> + <x>810</x> + <y>516</y> <width>10</width> <height>10</height> </rect> @@ -83620,7 +83704,7 @@ </palette> </property> <property name="toolTip"> - <string>05_18</string> + <string>05_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -83629,11 +83713,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_20"> + <widget class="QPushButton" name="ActuatorButton05_15"> <property name="geometry"> <rect> - <x>679</x> - <y>743</y> + <x>801</x> + <y>560</y> <width>10</width> <height>10</height> </rect> @@ -84081,7 +84165,7 @@ </palette> </property> <property name="toolTip"> - <string>05_20</string> + <string>05_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -84090,11 +84174,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_21"> + <widget class="QPushButton" name="ActuatorButton05_16"> <property name="geometry"> <rect> - <x>642</x> - <y>768</y> + <x>787</x> + <y>602</y> <width>10</width> <height>10</height> </rect> @@ -84542,7 +84626,7 @@ </palette> </property> <property name="toolTip"> - <string>05_21</string> + <string>05_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -84551,11 +84635,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_22"> + <widget class="QPushButton" name="ActuatorButton05_17"> <property name="geometry"> <rect> - <x>602</x> - <y>788</y> + <x>767</x> + <y>642</y> <width>10</width> <height>10</height> </rect> @@ -85003,7 +85087,7 @@ </palette> </property> <property name="toolTip"> - <string>05_22</string> + <string>05_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -85012,11 +85096,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_23"> + <widget class="QPushButton" name="ActuatorButton05_18"> <property name="geometry"> <rect> - <x>559</x> - <y>801</y> + <x>742</x> + <y>679</y> <width>10</width> <height>10</height> </rect> @@ -85464,7 +85548,7 @@ </palette> </property> <property name="toolTip"> - <string>05_23</string> + <string>05_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -85473,11 +85557,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_24"> + <widget class="QPushButton" name="ActuatorButton05_20"> <property name="geometry"> <rect> - <x>516</x> - <y>811</y> + <x>679</x> + <y>743</y> <width>10</width> <height>10</height> </rect> @@ -85925,7 +86009,7 @@ </palette> </property> <property name="toolTip"> - <string>05_24</string> + <string>05_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -85934,11 +86018,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_25"> + <widget class="QPushButton" name="ActuatorButton05_21"> <property name="geometry"> <rect> - <x>471</x> - <y>813</y> + <x>642</x> + <y>768</y> <width>10</width> <height>10</height> </rect> @@ -86386,7 +86470,7 @@ </palette> </property> <property name="toolTip"> - <string>05_25</string> + <string>05_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -86395,11 +86479,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_26"> + <widget class="QPushButton" name="ActuatorButton05_22"> <property name="geometry"> <rect> - <x>426</x> - <y>811</y> + <x>602</x> + <y>788</y> <width>10</width> <height>10</height> </rect> @@ -86847,7 +86931,7 @@ </palette> </property> <property name="toolTip"> - <string>05_26</string> + <string>05_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -86856,11 +86940,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_27"> + <widget class="QPushButton" name="ActuatorButton05_23"> <property name="geometry"> <rect> - <x>382</x> - <y>802</y> + <x>559</x> + <y>801</y> <width>10</width> <height>10</height> </rect> @@ -87308,7 +87392,7 @@ </palette> </property> <property name="toolTip"> - <string>05_27</string> + <string>05_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -87317,11 +87401,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_28"> + <widget class="QPushButton" name="ActuatorButton05_24"> <property name="geometry"> <rect> - <x>339</x> - <y>787</y> + <x>516</x> + <y>811</y> <width>10</width> <height>10</height> </rect> @@ -87769,7 +87853,7 @@ </palette> </property> <property name="toolTip"> - <string>05_28</string> + <string>05_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -87778,11 +87862,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_29"> + <widget class="QPushButton" name="ActuatorButton05_25"> <property name="geometry"> <rect> - <x>299</x> - <y>767</y> + <x>471</x> + <y>813</y> <width>10</width> <height>10</height> </rect> @@ -88230,7 +88314,7 @@ </palette> </property> <property name="toolTip"> - <string>05_29</string> + <string>05_25</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -88239,11 +88323,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_30"> + <widget class="QPushButton" name="ActuatorButton05_26"> <property name="geometry"> <rect> - <x>262</x> - <y>743</y> + <x>426</x> + <y>811</y> <width>10</width> <height>10</height> </rect> @@ -88691,7 +88775,7 @@ </palette> </property> <property name="toolTip"> - <string>05_30</string> + <string>05_26</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -88700,11 +88784,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_32"> + <widget class="QPushButton" name="ActuatorButton05_27"> <property name="geometry"> <rect> - <x>198</x> - <y>679</y> + <x>382</x> + <y>802</y> <width>10</width> <height>10</height> </rect> @@ -89152,7 +89236,7 @@ </palette> </property> <property name="toolTip"> - <string>05_32</string> + <string>05_27</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -89161,11 +89245,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_33"> + <widget class="QPushButton" name="ActuatorButton05_28"> <property name="geometry"> <rect> - <x>173</x> - <y>642</y> + <x>339</x> + <y>787</y> <width>10</width> <height>10</height> </rect> @@ -89613,7 +89697,7 @@ </palette> </property> <property name="toolTip"> - <string>05_33</string> + <string>05_28</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -89622,11 +89706,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_34"> + <widget class="QPushButton" name="ActuatorButton05_29"> <property name="geometry"> <rect> - <x>154</x> - <y>602</y> + <x>299</x> + <y>767</y> <width>10</width> <height>10</height> </rect> @@ -90074,7 +90158,7 @@ </palette> </property> <property name="toolTip"> - <string>05_34</string> + <string>05_29</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -90083,11 +90167,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_35"> + <widget class="QPushButton" name="ActuatorButton05_30"> <property name="geometry"> <rect> - <x>140</x> - <y>559</y> + <x>262</x> + <y>743</y> <width>10</width> <height>10</height> </rect> @@ -90535,7 +90619,7 @@ </palette> </property> <property name="toolTip"> - <string>05_35</string> + <string>05_30</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -90544,11 +90628,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_36"> + <widget class="QPushButton" name="ActuatorButton05_32"> <property name="geometry"> <rect> - <x>131</x> - <y>516</y> + <x>198</x> + <y>679</y> <width>10</width> <height>10</height> </rect> @@ -90996,7 +91080,7 @@ </palette> </property> <property name="toolTip"> - <string>05_36</string> + <string>05_32</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -91005,11 +91089,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_37"> + <widget class="QPushButton" name="ActuatorButton05_33"> <property name="geometry"> <rect> - <x>128</x> - <y>471</y> + <x>173</x> + <y>642</y> <width>10</width> <height>10</height> </rect> @@ -91457,7 +91541,7 @@ </palette> </property> <property name="toolTip"> - <string>05_37</string> + <string>05_33</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -91466,11 +91550,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_38"> + <widget class="QPushButton" name="ActuatorButton05_34"> <property name="geometry"> <rect> - <x>131</x> - <y>427</y> + <x>154</x> + <y>602</y> <width>10</width> <height>10</height> </rect> @@ -91918,7 +92002,7 @@ </palette> </property> <property name="toolTip"> - <string>05_38</string> + <string>05_34</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -91927,11 +92011,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_39"> + <widget class="QPushButton" name="ActuatorButton05_35"> <property name="geometry"> <rect> <x>140</x> - <y>383</y> + <y>559</y> <width>10</width> <height>10</height> </rect> @@ -92379,7 +92463,7 @@ </palette> </property> <property name="toolTip"> - <string>05_39</string> + <string>05_35</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -92388,11 +92472,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_40"> + <widget class="QPushButton" name="ActuatorButton05_36"> <property name="geometry"> <rect> - <x>154</x> - <y>341</y> + <x>131</x> + <y>516</y> <width>10</width> <height>10</height> </rect> @@ -92840,7 +92924,7 @@ </palette> </property> <property name="toolTip"> - <string>05_40</string> + <string>05_36</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -92849,11 +92933,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_41"> + <widget class="QPushButton" name="ActuatorButton05_37"> <property name="geometry"> <rect> - <x>174</x> - <y>300</y> + <x>128</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -93301,7 +93385,7 @@ </palette> </property> <property name="toolTip"> - <string>05_41</string> + <string>05_37</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -93310,11 +93394,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_42"> + <widget class="QPushButton" name="ActuatorButton05_38"> <property name="geometry"> <rect> - <x>199</x> - <y>263</y> + <x>131</x> + <y>427</y> <width>10</width> <height>10</height> </rect> @@ -93762,7 +93846,7 @@ </palette> </property> <property name="toolTip"> - <string>05_42</string> + <string>05_38</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -93771,11 +93855,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_44"> + <widget class="QPushButton" name="ActuatorButton05_39"> <property name="geometry"> <rect> - <x>262</x> - <y>199</y> + <x>140</x> + <y>383</y> <width>10</width> <height>10</height> </rect> @@ -94223,7 +94307,7 @@ </palette> </property> <property name="toolTip"> - <string>05_44</string> + <string>05_39</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -94232,11 +94316,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_45"> + <widget class="QPushButton" name="ActuatorButton05_40"> <property name="geometry"> <rect> - <x>299</x> - <y>175</y> + <x>154</x> + <y>341</y> <width>10</width> <height>10</height> </rect> @@ -94684,7 +94768,7 @@ </palette> </property> <property name="toolTip"> - <string>05_45</string> + <string>05_40</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -94693,11 +94777,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_46"> + <widget class="QPushButton" name="ActuatorButton05_41"> <property name="geometry"> <rect> - <x>339</x> - <y>155</y> + <x>174</x> + <y>300</y> <width>10</width> <height>10</height> </rect> @@ -95145,7 +95229,7 @@ </palette> </property> <property name="toolTip"> - <string>05_46</string> + <string>05_41</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -95154,11 +95238,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_47"> + <widget class="QPushButton" name="ActuatorButton05_42"> <property name="geometry"> <rect> - <x>382</x> - <y>140</y> + <x>199</x> + <y>263</y> <width>10</width> <height>10</height> </rect> @@ -95606,7 +95690,7 @@ </palette> </property> <property name="toolTip"> - <string>05_47</string> + <string>05_42</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -95615,11 +95699,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_48"> + <widget class="QPushButton" name="ActuatorButton05_44"> <property name="geometry"> <rect> - <x>426</x> - <y>131</y> + <x>262</x> + <y>199</y> <width>10</width> <height>10</height> </rect> @@ -96067,7 +96151,7 @@ </palette> </property> <property name="toolTip"> - <string>05_48</string> + <string>05_44</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -96076,13 +96160,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="C5ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton05_45"> <property name="geometry"> <rect> - <x>470</x> - <y>140</y> - <width>25</width> - <height>15</height> + <x>299</x> + <y>175</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -96527,28 +96611,23 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 5 circle</string> + <string>05_45</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C5</string> + <string/> </property> </widget> - <widget class="QPushButton" name="C4ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton05_46"> <property name="geometry"> <rect> - <x>471</x> - <y>192</y> - <width>20</width> - <height>15</height> + <x>339</x> + <y>155</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -96993,26 +97072,21 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 4 circle</string> + <string>05_46</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C4</string> + <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_01"> + <widget class="QPushButton" name="ActuatorButton05_47"> <property name="geometry"> <rect> - <x>471</x> - <y>77</y> + <x>382</x> + <y>140</y> <width>10</width> <height>10</height> </rect> @@ -97460,7 +97534,7 @@ </palette> </property> <property name="toolTip"> - <string>06_01</string> + <string>05_47</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -97469,11 +97543,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_02"> + <widget class="QPushButton" name="ActuatorButton05_48"> <property name="geometry"> <rect> - <x>522</x> - <y>81</y> + <x>426</x> + <y>131</y> <width>10</width> <height>10</height> </rect> @@ -97921,7 +97995,7 @@ </palette> </property> <property name="toolTip"> - <string>06_02</string> + <string>05_48</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -97930,13 +98004,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_03"> + <widget class="QPushButton" name="C5ActuatorsButton"> <property name="geometry"> <rect> - <x>573</x> - <y>92</y> - <width>10</width> - <height>10</height> + <x>470</x> + <y>140</y> + <width>25</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -98381,23 +98455,28 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>06_03</string> + <string>Controls actuators in 5 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>C5</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_04"> + <widget class="QPushButton" name="C4ActuatorsButton"> <property name="geometry"> <rect> - <x>621</x> - <y>108</y> - <width>10</width> - <height>10</height> + <x>471</x> + <y>192</y> + <width>20</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -98842,21 +98921,26 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>06_04</string> + <string>Controls actuators in 4 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>C4</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_05"> + <widget class="QPushButton" name="ActuatorButton06_01"> <property name="geometry"> <rect> - <x>667</x> - <y>131</y> + <x>471</x> + <y>77</y> <width>10</width> <height>10</height> </rect> @@ -99304,7 +99388,7 @@ </palette> </property> <property name="toolTip"> - <string>06_05</string> + <string>06_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -99313,11 +99397,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_06"> + <widget class="QPushButton" name="ActuatorButton06_02"> <property name="geometry"> <rect> - <x>711</x> - <y>159</y> + <x>522</x> + <y>81</y> <width>10</width> <height>10</height> </rect> @@ -99765,7 +99849,7 @@ </palette> </property> <property name="toolTip"> - <string>06_06</string> + <string>06_02</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -99774,11 +99858,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_07"> + <widget class="QPushButton" name="ActuatorButton06_03"> <property name="geometry"> <rect> - <x>749</x> - <y>193</y> + <x>573</x> + <y>92</y> <width>10</width> <height>10</height> </rect> @@ -100226,7 +100310,7 @@ </palette> </property> <property name="toolTip"> - <string>06_07</string> + <string>06_03</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -100235,11 +100319,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_08"> + <widget class="QPushButton" name="ActuatorButton06_04"> <property name="geometry"> <rect> - <x>783</x> - <y>232</y> + <x>621</x> + <y>108</y> <width>10</width> <height>10</height> </rect> @@ -100687,7 +100771,7 @@ </palette> </property> <property name="toolTip"> - <string>06_08</string> + <string>06_04</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -100696,11 +100780,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_09"> + <widget class="QPushButton" name="ActuatorButton06_05"> <property name="geometry"> <rect> - <x>811</x> - <y>275</y> + <x>667</x> + <y>131</y> <width>10</width> <height>10</height> </rect> @@ -101148,7 +101232,7 @@ </palette> </property> <property name="toolTip"> - <string>06_09</string> + <string>06_05</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -101157,11 +101241,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_10"> + <widget class="QPushButton" name="ActuatorButton06_06"> <property name="geometry"> <rect> - <x>834</x> - <y>320</y> + <x>711</x> + <y>159</y> <width>10</width> <height>10</height> </rect> @@ -101609,7 +101693,7 @@ </palette> </property> <property name="toolTip"> - <string>06_10</string> + <string>06_06</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -101618,11 +101702,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_12"> + <widget class="QPushButton" name="ActuatorButton06_07"> <property name="geometry"> <rect> - <x>861</x> - <y>420</y> + <x>749</x> + <y>193</y> <width>10</width> <height>10</height> </rect> @@ -102070,7 +102154,7 @@ </palette> </property> <property name="toolTip"> - <string>06_12</string> + <string>06_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -102079,11 +102163,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_13"> + <widget class="QPushButton" name="ActuatorButton06_08"> <property name="geometry"> <rect> - <x>865</x> - <y>471</y> + <x>783</x> + <y>232</y> <width>10</width> <height>10</height> </rect> @@ -102531,7 +102615,7 @@ </palette> </property> <property name="toolTip"> - <string>06_13</string> + <string>06_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -102540,11 +102624,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_14"> + <widget class="QPushButton" name="ActuatorButton06_09"> <property name="geometry"> <rect> - <x>862</x> - <y>522</y> + <x>811</x> + <y>275</y> <width>10</width> <height>10</height> </rect> @@ -102992,7 +103076,7 @@ </palette> </property> <property name="toolTip"> - <string>06_14</string> + <string>06_09</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -103001,11 +103085,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_15"> + <widget class="QPushButton" name="ActuatorButton06_10"> <property name="geometry"> <rect> - <x>850</x> - <y>573</y> + <x>834</x> + <y>320</y> <width>10</width> <height>10</height> </rect> @@ -103453,7 +103537,7 @@ </palette> </property> <property name="toolTip"> - <string>06_15</string> + <string>06_10</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -103462,11 +103546,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_16"> + <widget class="QPushButton" name="ActuatorButton06_12"> <property name="geometry"> <rect> - <x>834</x> - <y>622</y> + <x>861</x> + <y>420</y> <width>10</width> <height>10</height> </rect> @@ -103914,7 +103998,7 @@ </palette> </property> <property name="toolTip"> - <string>06_16</string> + <string>06_12</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -103923,11 +104007,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_17"> + <widget class="QPushButton" name="ActuatorButton06_13"> <property name="geometry"> <rect> - <x>811</x> - <y>668</y> + <x>865</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -104375,7 +104459,7 @@ </palette> </property> <property name="toolTip"> - <string>06_17</string> + <string>06_13</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -104384,11 +104468,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_18"> + <widget class="QPushButton" name="ActuatorButton06_14"> <property name="geometry"> <rect> - <x>783</x> - <y>710</y> + <x>862</x> + <y>522</y> <width>10</width> <height>10</height> </rect> @@ -104836,7 +104920,7 @@ </palette> </property> <property name="toolTip"> - <string>06_18</string> + <string>06_14</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -104845,11 +104929,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_19"> + <widget class="QPushButton" name="ActuatorButton06_15"> <property name="geometry"> <rect> - <x>749</x> - <y>749</y> + <x>850</x> + <y>573</y> <width>10</width> <height>10</height> </rect> @@ -105297,7 +105381,7 @@ </palette> </property> <property name="toolTip"> - <string>06_19</string> + <string>06_15</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -105306,11 +105390,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_20"> + <widget class="QPushButton" name="ActuatorButton06_16"> <property name="geometry"> <rect> - <x>709</x> - <y>783</y> + <x>834</x> + <y>622</y> <width>10</width> <height>10</height> </rect> @@ -105758,7 +105842,7 @@ </palette> </property> <property name="toolTip"> - <string>06_20</string> + <string>06_16</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -105767,11 +105851,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_21"> + <widget class="QPushButton" name="ActuatorButton06_17"> <property name="geometry"> <rect> - <x>668</x> - <y>812</y> + <x>811</x> + <y>668</y> <width>10</width> <height>10</height> </rect> @@ -106219,7 +106303,7 @@ </palette> </property> <property name="toolTip"> - <string>06_21</string> + <string>06_17</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -106228,11 +106312,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_22"> + <widget class="QPushButton" name="ActuatorButton06_18"> <property name="geometry"> <rect> - <x>621</x> - <y>835</y> + <x>783</x> + <y>710</y> <width>10</width> <height>10</height> </rect> @@ -106680,7 +106764,7 @@ </palette> </property> <property name="toolTip"> - <string>06_22</string> + <string>06_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -106689,11 +106773,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_23"> + <widget class="QPushButton" name="ActuatorButton06_19"> <property name="geometry"> <rect> - <x>572</x> - <y>851</y> + <x>749</x> + <y>749</y> <width>10</width> <height>10</height> </rect> @@ -107141,7 +107225,7 @@ </palette> </property> <property name="toolTip"> - <string>06_23</string> + <string>06_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -107150,11 +107234,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_24"> + <widget class="QPushButton" name="ActuatorButton06_20"> <property name="geometry"> <rect> - <x>522</x> - <y>861</y> + <x>709</x> + <y>783</y> <width>10</width> <height>10</height> </rect> @@ -107602,7 +107686,7 @@ </palette> </property> <property name="toolTip"> - <string>06_24</string> + <string>06_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -107611,11 +107695,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_25"> + <widget class="QPushButton" name="ActuatorButton06_21"> <property name="geometry"> <rect> - <x>471</x> - <y>864</y> + <x>668</x> + <y>812</y> <width>10</width> <height>10</height> </rect> @@ -108063,7 +108147,7 @@ </palette> </property> <property name="toolTip"> - <string>06_25</string> + <string>06_21</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -108072,11 +108156,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_26"> + <widget class="QPushButton" name="ActuatorButton06_22"> <property name="geometry"> <rect> - <x>419</x> - <y>861</y> + <x>621</x> + <y>835</y> <width>10</width> <height>10</height> </rect> @@ -108524,7 +108608,7 @@ </palette> </property> <property name="toolTip"> - <string>06_26</string> + <string>06_22</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -108533,10 +108617,10 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_27"> + <widget class="QPushButton" name="ActuatorButton06_23"> <property name="geometry"> <rect> - <x>369</x> + <x>572</x> <y>851</y> <width>10</width> <height>10</height> @@ -108985,7 +109069,7 @@ </palette> </property> <property name="toolTip"> - <string>06_27</string> + <string>06_23</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -108994,11 +109078,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_28"> + <widget class="QPushButton" name="ActuatorButton06_24"> <property name="geometry"> <rect> - <x>320</x> - <y>835</y> + <x>522</x> + <y>861</y> <width>10</width> <height>10</height> </rect> @@ -109446,7 +109530,7 @@ </palette> </property> <property name="toolTip"> - <string>06_28</string> + <string>06_24</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -109455,11 +109539,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_29"> + <widget class="QPushButton" name="ActuatorButton06_25"> <property name="geometry"> <rect> - <x>274</x> - <y>812</y> + <x>471</x> + <y>864</y> <width>10</width> <height>10</height> </rect> @@ -109907,7 +109991,7 @@ </palette> </property> <property name="toolTip"> - <string>06_29</string> + <string>06_25</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -109916,11 +110000,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_30"> + <widget class="QPushButton" name="ActuatorButton06_26"> <property name="geometry"> <rect> - <x>231</x> - <y>783</y> + <x>419</x> + <y>861</y> <width>10</width> <height>10</height> </rect> @@ -110368,7 +110452,7 @@ </palette> </property> <property name="toolTip"> - <string>06_30</string> + <string>06_26</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -110377,11 +110461,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_31"> + <widget class="QPushButton" name="ActuatorButton06_27"> <property name="geometry"> <rect> - <x>192</x> - <y>750</y> + <x>369</x> + <y>851</y> <width>10</width> <height>10</height> </rect> @@ -110829,7 +110913,7 @@ </palette> </property> <property name="toolTip"> - <string>06_31</string> + <string>06_27</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -110838,11 +110922,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_32"> + <widget class="QPushButton" name="ActuatorButton06_28"> <property name="geometry"> <rect> - <x>158</x> - <y>711</y> + <x>320</x> + <y>835</y> <width>10</width> <height>10</height> </rect> @@ -111290,7 +111374,7 @@ </palette> </property> <property name="toolTip"> - <string>06_32</string> + <string>06_28</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -111299,11 +111383,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_33"> + <widget class="QPushButton" name="ActuatorButton06_29"> <property name="geometry"> <rect> - <x>129</x> - <y>668</y> + <x>274</x> + <y>812</y> <width>10</width> <height>10</height> </rect> @@ -111751,7 +111835,7 @@ </palette> </property> <property name="toolTip"> - <string>06_33</string> + <string>06_29</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -111760,11 +111844,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_34"> + <widget class="QPushButton" name="ActuatorButton06_30"> <property name="geometry"> <rect> - <x>107</x> - <y>622</y> + <x>231</x> + <y>783</y> <width>10</width> <height>10</height> </rect> @@ -112212,7 +112296,7 @@ </palette> </property> <property name="toolTip"> - <string>06_34</string> + <string>06_30</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -112221,11 +112305,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_35"> + <widget class="QPushButton" name="ActuatorButton06_31"> <property name="geometry"> <rect> - <x>90</x> - <y>573</y> + <x>192</x> + <y>750</y> <width>10</width> <height>10</height> </rect> @@ -112673,7 +112757,7 @@ </palette> </property> <property name="toolTip"> - <string>06_35</string> + <string>06_31</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -112682,11 +112766,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_36"> + <widget class="QPushButton" name="ActuatorButton06_32"> <property name="geometry"> <rect> - <x>80</x> - <y>523</y> + <x>158</x> + <y>711</y> <width>10</width> <height>10</height> </rect> @@ -113134,7 +113218,7 @@ </palette> </property> <property name="toolTip"> - <string>06_36</string> + <string>06_32</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -113143,11 +113227,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_37"> + <widget class="QPushButton" name="ActuatorButton06_33"> <property name="geometry"> <rect> - <x>77</x> - <y>471</y> + <x>129</x> + <y>668</y> <width>10</width> <height>10</height> </rect> @@ -113595,7 +113679,7 @@ </palette> </property> <property name="toolTip"> - <string>06_37</string> + <string>06_33</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -113604,11 +113688,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_38"> + <widget class="QPushButton" name="ActuatorButton06_34"> <property name="geometry"> <rect> - <x>80</x> - <y>420</y> + <x>107</x> + <y>622</y> <width>10</width> <height>10</height> </rect> @@ -114056,7 +114140,7 @@ </palette> </property> <property name="toolTip"> - <string>06_38</string> + <string>06_34</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -114065,11 +114149,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_39"> + <widget class="QPushButton" name="ActuatorButton06_35"> <property name="geometry"> <rect> <x>90</x> - <y>370</y> + <y>573</y> <width>10</width> <height>10</height> </rect> @@ -114517,7 +114601,7 @@ </palette> </property> <property name="toolTip"> - <string>06_39</string> + <string>06_35</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -114526,11 +114610,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_40"> + <widget class="QPushButton" name="ActuatorButton06_36"> <property name="geometry"> <rect> - <x>107</x> - <y>321</y> + <x>80</x> + <y>523</y> <width>10</width> <height>10</height> </rect> @@ -114978,7 +115062,7 @@ </palette> </property> <property name="toolTip"> - <string>06_40</string> + <string>06_36</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -114987,11 +115071,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_41"> + <widget class="QPushButton" name="ActuatorButton06_37"> <property name="geometry"> <rect> - <x>130</x> - <y>275</y> + <x>77</x> + <y>471</y> <width>10</width> <height>10</height> </rect> @@ -115439,7 +115523,7 @@ </palette> </property> <property name="toolTip"> - <string>06_41</string> + <string>06_37</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -115448,11 +115532,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_42"> + <widget class="QPushButton" name="ActuatorButton06_38"> <property name="geometry"> <rect> - <x>159</x> - <y>232</y> + <x>80</x> + <y>420</y> <width>10</width> <height>10</height> </rect> @@ -115900,7 +115984,7 @@ </palette> </property> <property name="toolTip"> - <string>06_42</string> + <string>06_38</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -115909,11 +115993,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_43"> + <widget class="QPushButton" name="ActuatorButton06_39"> <property name="geometry"> <rect> - <x>192</x> - <y>193</y> + <x>90</x> + <y>370</y> <width>10</width> <height>10</height> </rect> @@ -116361,7 +116445,7 @@ </palette> </property> <property name="toolTip"> - <string>06_43</string> + <string>06_39</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -116370,11 +116454,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_44"> + <widget class="QPushButton" name="ActuatorButton06_40"> <property name="geometry"> <rect> - <x>231</x> - <y>159</y> + <x>107</x> + <y>321</y> <width>10</width> <height>10</height> </rect> @@ -116822,7 +116906,7 @@ </palette> </property> <property name="toolTip"> - <string>06_44</string> + <string>06_40</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -116831,11 +116915,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_45"> + <widget class="QPushButton" name="ActuatorButton06_41"> <property name="geometry"> <rect> - <x>273</x> - <y>131</y> + <x>130</x> + <y>275</y> <width>10</width> <height>10</height> </rect> @@ -117283,7 +117367,7 @@ </palette> </property> <property name="toolTip"> - <string>06_45</string> + <string>06_41</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -117292,11 +117376,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_46"> + <widget class="QPushButton" name="ActuatorButton06_42"> <property name="geometry"> <rect> - <x>320</x> - <y>107</y> + <x>159</x> + <y>232</y> <width>10</width> <height>10</height> </rect> @@ -117744,7 +117828,7 @@ </palette> </property> <property name="toolTip"> - <string>06_46</string> + <string>06_42</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -117753,11 +117837,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_47"> + <widget class="QPushButton" name="ActuatorButton06_43"> <property name="geometry"> <rect> - <x>368</x> - <y>91</y> + <x>192</x> + <y>193</y> <width>10</width> <height>10</height> </rect> @@ -118205,7 +118289,7 @@ </palette> </property> <property name="toolTip"> - <string>06_47</string> + <string>06_43</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -118214,11 +118298,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton06_48"> + <widget class="QPushButton" name="ActuatorButton06_44"> <property name="geometry"> <rect> - <x>420</x> - <y>81</y> + <x>231</x> + <y>159</y> <width>10</width> <height>10</height> </rect> @@ -118666,7 +118750,7 @@ </palette> </property> <property name="toolTip"> - <string>06_48</string> + <string>06_44</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -118675,13 +118759,13 @@ <string/> </property> </widget> - <widget class="QPushButton" name="C6ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton06_45"> <property name="geometry"> <rect> - <x>470</x> - <y>88</y> - <width>25</width> - <height>15</height> + <x>273</x> + <y>131</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -119126,28 +119210,23 @@ </disabled> </palette> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - </font> - </property> <property name="toolTip"> - <string>Controls actuators in 6 circle</string> + <string>06_45</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>C6</string> + <string/> </property> </widget> - <widget class="QPushButton" name="R1ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton06_46"> <property name="geometry"> <rect> - <x>465</x> - <y>40</y> - <width>20</width> - <height>20</height> + <x>320</x> + <y>107</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -119593,22 +119672,22 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 1 radius</string> + <string>06_46</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>1</string> + <string/> </property> </widget> - <widget class="QPushButton" name="R2ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton06_47"> <property name="geometry"> <rect> - <x>520</x> - <y>50</y> - <width>20</width> - <height>20</height> + <x>368</x> + <y>91</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -120054,22 +120133,22 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 2 radius</string> + <string>06_47</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>2</string> + <string/> </property> </widget> - <widget class="QPushButton" name="R3ActuatorsButton"> + <widget class="QPushButton" name="ActuatorButton06_48"> <property name="geometry"> <rect> - <x>570</x> - <y>60</y> - <width>20</width> - <height>20</height> + <x>420</x> + <y>81</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -120515,22 +120594,22 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 3 radius</string> + <string>06_48</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>3</string> + <string/> </property> </widget> - <widget class="QPushButton" name="R4ActuatorsButton"> + <widget class="QPushButton" name="C6ActuatorsButton"> <property name="geometry"> <rect> - <x>620</x> - <y>80</y> - <width>20</width> - <height>20</height> + <x>470</x> + <y>88</y> + <width>25</width> + <height>15</height> </rect> </property> <property name="palette"> @@ -120975,21 +121054,26 @@ </disabled> </palette> </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> <property name="toolTip"> - <string>Controls all actuators in 4 radius</string> + <string>Controls actuators in 6 circle</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>4</string> + <string>C6</string> </property> </widget> - <widget class="QPushButton" name="R5ActuatorsButton"> + <widget class="QPushButton" name="R1ActuatorsButton"> <property name="geometry"> <rect> - <x>680</x> - <y>100</y> + <x>465</x> + <y>40</y> <width>20</width> <height>20</height> </rect> @@ -121437,20 +121521,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 5 radius</string> + <string>Controls all actuators in 1 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>5</string> + <string>1</string> </property> </widget> - <widget class="QPushButton" name="R6ActuatorsButton"> + <widget class="QPushButton" name="R2ActuatorsButton"> <property name="geometry"> <rect> - <x>730</x> - <y>130</y> + <x>520</x> + <y>50</y> <width>20</width> <height>20</height> </rect> @@ -121898,20 +121982,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 6 radius</string> + <string>Controls all actuators in 2 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>6</string> + <string>2</string> </property> </widget> - <widget class="QPushButton" name="R7ActuatorsButton"> + <widget class="QPushButton" name="R3ActuatorsButton"> <property name="geometry"> <rect> - <x>770</x> - <y>160</y> + <x>570</x> + <y>60</y> <width>20</width> <height>20</height> </rect> @@ -122359,20 +122443,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 7 radius</string> + <string>Controls all actuators in 3 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>7</string> + <string>3</string> </property> </widget> - <widget class="QPushButton" name="R8ActuatorsButton"> + <widget class="QPushButton" name="R4ActuatorsButton"> <property name="geometry"> <rect> - <x>800</x> - <y>210</y> + <x>620</x> + <y>80</y> <width>20</width> <height>20</height> </rect> @@ -122820,20 +122904,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 8 radius</string> + <string>Controls all actuators in 4 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>8</string> + <string>4</string> </property> </widget> - <widget class="QPushButton" name="R9ActuatorsButton"> + <widget class="QPushButton" name="R5ActuatorsButton"> <property name="geometry"> <rect> - <x>830</x> - <y>250</y> + <x>680</x> + <y>100</y> <width>20</width> <height>20</height> </rect> @@ -123281,20 +123365,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 9 radius</string> + <string>Controls all actuators in 5 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>9</string> + <string>5</string> </property> </widget> - <widget class="QPushButton" name="R10ActuatorsButton"> + <widget class="QPushButton" name="R6ActuatorsButton"> <property name="geometry"> <rect> - <x>860</x> - <y>300</y> + <x>730</x> + <y>130</y> <width>20</width> <height>20</height> </rect> @@ -123742,20 +123826,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 10 radius</string> + <string>Controls all actuators in 6 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>10</string> + <string>6</string> </property> </widget> - <widget class="QPushButton" name="R11ActuatorsButton"> + <widget class="QPushButton" name="R7ActuatorsButton"> <property name="geometry"> <rect> - <x>870</x> - <y>360</y> + <x>770</x> + <y>160</y> <width>20</width> <height>20</height> </rect> @@ -124203,20 +124287,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 11 radius</string> + <string>Controls all actuators in 7 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>11</string> + <string>7</string> </property> </widget> - <widget class="QPushButton" name="R12ActuatorsButton"> + <widget class="QPushButton" name="R8ActuatorsButton"> <property name="geometry"> <rect> - <x>880</x> - <y>410</y> + <x>800</x> + <y>210</y> <width>20</width> <height>20</height> </rect> @@ -124664,20 +124748,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 12 radius</string> + <string>Controls all actuators in 8 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>12</string> + <string>8</string> </property> </widget> - <widget class="QPushButton" name="R13ActuatorsButton"> + <widget class="QPushButton" name="R9ActuatorsButton"> <property name="geometry"> <rect> - <x>890</x> - <y>470</y> + <x>830</x> + <y>250</y> <width>20</width> <height>20</height> </rect> @@ -125125,20 +125209,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 13 radius</string> + <string>Controls all actuators in 9 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>13</string> + <string>9</string> </property> </widget> - <widget class="QPushButton" name="R14ActuatorsButton"> + <widget class="QPushButton" name="R10ActuatorsButton"> <property name="geometry"> <rect> - <x>890</x> - <y>520</y> + <x>860</x> + <y>300</y> <width>20</width> <height>20</height> </rect> @@ -125586,20 +125670,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 14 radius</string> + <string>Controls all actuators in 10 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>14</string> + <string>10</string> </property> </widget> - <widget class="QPushButton" name="R15ActuatorsButton"> + <widget class="QPushButton" name="R11ActuatorsButton"> <property name="geometry"> <rect> <x>870</x> - <y>580</y> + <y>360</y> <width>20</width> <height>20</height> </rect> @@ -126047,20 +126131,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 15 radius</string> + <string>Controls all actuators in 11 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>15</string> + <string>11</string> </property> </widget> - <widget class="QPushButton" name="R16ActuatorsButton"> + <widget class="QPushButton" name="R12ActuatorsButton"> <property name="geometry"> <rect> - <x>855</x> - <y>630</y> + <x>880</x> + <y>410</y> <width>20</width> <height>20</height> </rect> @@ -126508,20 +126592,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 16 radius</string> + <string>Controls all actuators in 12 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>16</string> + <string>12</string> </property> </widget> - <widget class="QPushButton" name="R17ActuatorsButton"> + <widget class="QPushButton" name="R13ActuatorsButton"> <property name="geometry"> <rect> - <x>830</x> - <y>680</y> + <x>890</x> + <y>470</y> <width>20</width> <height>20</height> </rect> @@ -126969,20 +127053,20 @@ </palette> </property> <property name="toolTip"> - <string>Controls all actuators in 17 radius</string> + <string>Controls all actuators in 13 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>17</string> + <string>13</string> </property> </widget> - <widget class="QPushButton" name="R24ActuatorsButton"> + <widget class="QPushButton" name="R14ActuatorsButton"> <property name="geometry"> <rect> - <x>520</x> - <y>880</y> + <x>890</x> + <y>520</y> <width>20</width> <height>20</height> </rect> @@ -127429,24 +127513,21 @@ </disabled> </palette> </property> - <property name="font"> - <font/> - </property> <property name="toolTip"> - <string>Controls all actuators in 24 radius</string> + <string>Controls all actuators in 14 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>24</string> + <string>14</string> </property> </widget> - <widget class="QPushButton" name="R25ActuatorsButton"> + <widget class="QPushButton" name="R15ActuatorsButton"> <property name="geometry"> <rect> - <x>470</x> - <y>890</y> + <x>870</x> + <y>580</y> <width>20</width> <height>20</height> </rect> @@ -127893,24 +127974,21 @@ </disabled> </palette> </property> - <property name="font"> - <font/> - </property> <property name="toolTip"> - <string>Controls all actuators in 25 radius</string> + <string>Controls all actuators in 15 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>25</string> + <string>15</string> </property> </widget> - <widget class="QPushButton" name="R26ActuatorsButton"> + <widget class="QPushButton" name="R16ActuatorsButton"> <property name="geometry"> <rect> - <x>410</x> - <y>880</y> + <x>855</x> + <y>630</y> <width>20</width> <height>20</height> </rect> @@ -128357,24 +128435,21 @@ </disabled> </palette> </property> - <property name="font"> - <font/> - </property> <property name="toolTip"> - <string>Controls all actuators in 26 radius</string> + <string>Controls all actuators in 16 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>26</string> + <string>16</string> </property> </widget> - <widget class="QPushButton" name="R27ActuatorsButton"> + <widget class="QPushButton" name="R17ActuatorsButton"> <property name="geometry"> <rect> - <x>350</x> - <y>870</y> + <x>830</x> + <y>680</y> <width>20</width> <height>20</height> </rect> @@ -128821,24 +128896,21 @@ </disabled> </palette> </property> - <property name="font"> - <font/> - </property> <property name="toolTip"> - <string>Controls all actuators in 27 radius</string> + <string>Controls all actuators in 17 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>27</string> + <string>17</string> </property> </widget> - <widget class="QPushButton" name="R47ActuatorsButton"> + <widget class="QPushButton" name="R24ActuatorsButton"> <property name="geometry"> <rect> - <x>350</x> - <y>60</y> + <x>520</x> + <y>880</y> <width>20</width> <height>20</height> </rect> @@ -129289,20 +129361,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 47 radius</string> + <string>Controls all actuators in 24 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>47</string> + <string>24</string> </property> </widget> - <widget class="QPushButton" name="R48ActuatorsButton"> + <widget class="QPushButton" name="R25ActuatorsButton"> <property name="geometry"> <rect> - <x>410</x> - <y>50</y> + <x>470</x> + <y>890</y> <width>20</width> <height>20</height> </rect> @@ -129753,20 +129825,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 48 radius</string> + <string>Controls all actuators in 25 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>48</string> + <string>25</string> </property> </widget> - <widget class="QPushButton" name="R18ActuatorsButton"> + <widget class="QPushButton" name="R26ActuatorsButton"> <property name="geometry"> <rect> - <x>800</x> - <y>730</y> + <x>410</x> + <y>880</y> <width>20</width> <height>20</height> </rect> @@ -130217,20 +130289,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 18 radius</string> + <string>Controls all actuators in 26 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>18</string> + <string>26</string> </property> </widget> - <widget class="QPushButton" name="R19ActuatorsButton"> + <widget class="QPushButton" name="R27ActuatorsButton"> <property name="geometry"> <rect> - <x>770</x> - <y>770</y> + <x>350</x> + <y>870</y> <width>20</width> <height>20</height> </rect> @@ -130681,20 +130753,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 19 radius</string> + <string>Controls all actuators in 27 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>19</string> + <string>27</string> </property> </widget> - <widget class="QPushButton" name="R23ActuatorsButton"> + <widget class="QPushButton" name="R47ActuatorsButton"> <property name="geometry"> <rect> - <x>580</x> - <y>870</y> + <x>350</x> + <y>60</y> <width>20</width> <height>20</height> </rect> @@ -131145,20 +131217,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 23 radius</string> + <string>Controls all actuators in 47 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>23</string> + <string>47</string> </property> </widget> - <widget class="QPushButton" name="R22ActuatorsButton"> + <widget class="QPushButton" name="R48ActuatorsButton"> <property name="geometry"> <rect> - <x>630</x> - <y>850</y> + <x>410</x> + <y>50</y> <width>20</width> <height>20</height> </rect> @@ -131609,20 +131681,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 22 radius</string> + <string>Controls all actuators in 48 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>22</string> + <string>48</string> </property> </widget> - <widget class="QPushButton" name="R21ActuatorsButton"> + <widget class="QPushButton" name="R18ActuatorsButton"> <property name="geometry"> <rect> - <x>680</x> - <y>830</y> + <x>800</x> + <y>730</y> <width>20</width> <height>20</height> </rect> @@ -132073,20 +132145,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 21 radius</string> + <string>Controls all actuators in 18 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>21</string> + <string>18</string> </property> </widget> - <widget class="QPushButton" name="R20ActuatorsButton"> + <widget class="QPushButton" name="R19ActuatorsButton"> <property name="geometry"> <rect> - <x>730</x> - <y>800</y> + <x>770</x> + <y>770</y> <width>20</width> <height>20</height> </rect> @@ -132537,20 +132609,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 20 radius</string> + <string>Controls all actuators in 19 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>20</string> + <string>19</string> </property> </widget> - <widget class="QPushButton" name="R28ActuatorsButton"> + <widget class="QPushButton" name="R23ActuatorsButton"> <property name="geometry"> <rect> - <x>300</x> - <y>850</y> + <x>580</x> + <y>870</y> <width>20</width> <height>20</height> </rect> @@ -133001,20 +133073,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 28 radius</string> + <string>Controls all actuators in 23 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>28</string> + <string>23</string> </property> </widget> - <widget class="QPushButton" name="R29ActuatorsButton"> + <widget class="QPushButton" name="R22ActuatorsButton"> <property name="geometry"> <rect> - <x>250</x> - <y>830</y> + <x>630</x> + <y>850</y> <width>20</width> <height>20</height> </rect> @@ -133465,20 +133537,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 29 radius</string> + <string>Controls all actuators in 22 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>29</string> + <string>22</string> </property> </widget> - <widget class="QPushButton" name="R30ActuatorsButton"> + <widget class="QPushButton" name="R21ActuatorsButton"> <property name="geometry"> <rect> - <x>200</x> - <y>790</y> + <x>680</x> + <y>830</y> <width>20</width> <height>20</height> </rect> @@ -133929,20 +134001,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 30 radius</string> + <string>Controls all actuators in 21 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>30</string> + <string>21</string> </property> </widget> - <widget class="QPushButton" name="R31ActuatorsButton"> + <widget class="QPushButton" name="R20ActuatorsButton"> <property name="geometry"> <rect> - <x>160</x> - <y>760</y> + <x>730</x> + <y>800</y> <width>20</width> <height>20</height> </rect> @@ -134393,20 +134465,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 31 radius</string> + <string>Controls all actuators in 20 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>31</string> + <string>20</string> </property> </widget> - <widget class="QPushButton" name="R32ActuatorsButton"> + <widget class="QPushButton" name="R28ActuatorsButton"> <property name="geometry"> <rect> - <x>130</x> - <y>720</y> + <x>300</x> + <y>850</y> <width>20</width> <height>20</height> </rect> @@ -134857,20 +134929,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 32 radius</string> + <string>Controls all actuators in 28 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>32</string> + <string>28</string> </property> </widget> - <widget class="QPushButton" name="R33ActuatorsButton"> + <widget class="QPushButton" name="R29ActuatorsButton"> <property name="geometry"> <rect> - <x>100</x> - <y>680</y> + <x>250</x> + <y>830</y> <width>20</width> <height>20</height> </rect> @@ -135321,20 +135393,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 33 radius</string> + <string>Controls all actuators in 29 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>33</string> + <string>29</string> </property> </widget> - <widget class="QPushButton" name="R34ActuatorsButton"> + <widget class="QPushButton" name="R30ActuatorsButton"> <property name="geometry"> <rect> - <x>80</x> - <y>630</y> + <x>200</x> + <y>790</y> <width>20</width> <height>20</height> </rect> @@ -135785,20 +135857,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 34 radius</string> + <string>Controls all actuators in 30 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>34</string> + <string>30</string> </property> </widget> - <widget class="QPushButton" name="R35ActuatorsButton"> + <widget class="QPushButton" name="R31ActuatorsButton"> <property name="geometry"> <rect> - <x>60</x> - <y>580</y> + <x>160</x> + <y>760</y> <width>20</width> <height>20</height> </rect> @@ -136249,20 +136321,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 35 radius</string> + <string>Controls all actuators in 31 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>35</string> + <string>31</string> </property> </widget> - <widget class="QPushButton" name="R36ActuatorsButton"> + <widget class="QPushButton" name="R32ActuatorsButton"> <property name="geometry"> <rect> - <x>50</x> - <y>520</y> + <x>130</x> + <y>720</y> <width>20</width> <height>20</height> </rect> @@ -136713,20 +136785,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 36 radius</string> + <string>Controls all actuators in 32 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>36</string> + <string>32</string> </property> </widget> - <widget class="QPushButton" name="R37ActuatorsButton"> + <widget class="QPushButton" name="R33ActuatorsButton"> <property name="geometry"> <rect> - <x>50</x> - <y>470</y> + <x>100</x> + <y>680</y> <width>20</width> <height>20</height> </rect> @@ -137177,20 +137249,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 37 radius</string> + <string>Controls all actuators in 33 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>37</string> + <string>33</string> </property> </widget> - <widget class="QPushButton" name="R38ActuatorsButton"> + <widget class="QPushButton" name="R34ActuatorsButton"> <property name="geometry"> <rect> - <x>50</x> - <y>410</y> + <x>80</x> + <y>630</y> <width>20</width> <height>20</height> </rect> @@ -137641,20 +137713,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 38 radius</string> + <string>Controls all actuators in 34 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>38</string> + <string>34</string> </property> </widget> - <widget class="QPushButton" name="R39ActuatorsButton"> + <widget class="QPushButton" name="R35ActuatorsButton"> <property name="geometry"> <rect> <x>60</x> - <y>350</y> + <y>580</y> <width>20</width> <height>20</height> </rect> @@ -138105,20 +138177,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 39 radius</string> + <string>Controls all actuators in 35 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>39</string> + <string>35</string> </property> </widget> - <widget class="QPushButton" name="R40ActuatorsButton"> + <widget class="QPushButton" name="R36ActuatorsButton"> <property name="geometry"> <rect> - <x>70</x> - <y>300</y> + <x>50</x> + <y>520</y> <width>20</width> <height>20</height> </rect> @@ -138569,20 +138641,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 40 radius</string> + <string>Controls all actuators in 36 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>40</string> + <string>36</string> </property> </widget> - <widget class="QPushButton" name="R41ActuatorsButton"> + <widget class="QPushButton" name="R37ActuatorsButton"> <property name="geometry"> <rect> - <x>100</x> - <y>250</y> + <x>50</x> + <y>470</y> <width>20</width> <height>20</height> </rect> @@ -139033,20 +139105,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 41 radius</string> + <string>Controls all actuators in 37 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>41</string> + <string>37</string> </property> </widget> - <widget class="QPushButton" name="R42ActuatorsButton"> + <widget class="QPushButton" name="R38ActuatorsButton"> <property name="geometry"> <rect> - <x>130</x> - <y>210</y> + <x>50</x> + <y>410</y> <width>20</width> <height>20</height> </rect> @@ -139497,20 +139569,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 42 radius</string> + <string>Controls all actuators in 38 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>42</string> + <string>38</string> </property> </widget> - <widget class="QPushButton" name="R43ActuatorsButton"> + <widget class="QPushButton" name="R39ActuatorsButton"> <property name="geometry"> <rect> - <x>160</x> - <y>160</y> + <x>60</x> + <y>350</y> <width>20</width> <height>20</height> </rect> @@ -139961,20 +140033,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 43 radius</string> + <string>Controls all actuators in 39 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>43</string> + <string>39</string> </property> </widget> - <widget class="QPushButton" name="R44ActuatorsButton"> + <widget class="QPushButton" name="R40ActuatorsButton"> <property name="geometry"> <rect> - <x>210</x> - <y>130</y> + <x>70</x> + <y>300</y> <width>20</width> <height>20</height> </rect> @@ -140425,20 +140497,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 44 radius</string> + <string>Controls all actuators in 40 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>44</string> + <string>40</string> </property> </widget> - <widget class="QPushButton" name="R45ActuatorsButton"> + <widget class="QPushButton" name="R41ActuatorsButton"> <property name="geometry"> <rect> - <x>250</x> - <y>100</y> + <x>100</x> + <y>250</y> <width>20</width> <height>20</height> </rect> @@ -140889,20 +140961,20 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 45 radius</string> + <string>Controls all actuators in 41 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>45</string> + <string>41</string> </property> </widget> - <widget class="QPushButton" name="R46ActuatorsButton"> + <widget class="QPushButton" name="R42ActuatorsButton"> <property name="geometry"> <rect> - <x>300</x> - <y>80</y> + <x>130</x> + <y>210</y> <width>20</width> <height>20</height> </rect> @@ -141353,22 +141425,22 @@ <font/> </property> <property name="toolTip"> - <string>Controls all actuators in 46 radius</string> + <string>Controls all actuators in 42 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>46</string> + <string>42</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_01"> + <widget class="QPushButton" name="R43ActuatorsButton"> <property name="geometry"> <rect> - <x>471</x> - <y>181</y> - <width>10</width> - <height>10</height> + <x>160</x> + <y>160</y> + <width>20</width> + <height>20</height> </rect> </property> <property name="palette"> @@ -141813,484 +141885,26 @@ </disabled> </palette> </property> - <property name="toolTip"> - <string>09_01</string> - </property> - <property name="styleSheet"> - <string>background-color: rgb(0, 85, 255);</string> - </property> - <property name="text"> - <string/> - </property> - </widget> - <widget class="QPushButton" name="ActuatorButton04_06"> - <property name="geometry"> - <rect> - <x>648</x> - <y>240</y> - <width>10</width> - <height>10</height> - </rect> - </property> - <property name="palette"> - <palette> - <active> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>63</red> - <green>127</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - </active> - <inactive> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </inactive> - <disabled> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </disabled> - </palette> + <property name="font"> + <font/> </property> <property name="toolTip"> - <string>04_06</string> + <string>Controls all actuators in 43 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>43</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_08"> + <widget class="QPushButton" name="R44ActuatorsButton"> <property name="geometry"> <rect> - <x>702</x> - <y>294</y> - <width>10</width> - <height>10</height> + <x>210</x> + <y>130</y> + <width>20</width> + <height>20</height> </rect> </property> <property name="palette"> @@ -142735,23 +142349,26 @@ </disabled> </palette> </property> + <property name="font"> + <font/> + </property> <property name="toolTip"> - <string>04_08</string> + <string>Controls all actuators in 44 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>44</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_18"> + <widget class="QPushButton" name="R45ActuatorsButton"> <property name="geometry"> <rect> - <x>702</x> - <y>649</y> - <width>10</width> - <height>10</height> + <x>250</x> + <y>100</y> + <width>20</width> + <height>20</height> </rect> </property> <property name="palette"> @@ -143196,21 +142813,488 @@ </disabled> </palette> </property> + <property name="font"> + <font/> + </property> <property name="toolTip"> - <string>04_18</string> + <string>Controls all actuators in 45 radius</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string/> + <string>45</string> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_20"> + <widget class="QPushButton" name="R46ActuatorsButton"> <property name="geometry"> <rect> - <x>648</x> - <y>702</y> + <x>300</x> + <y>80</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 46 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>46</string> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>181</y> <width>10</width> <height>10</height> </rect> @@ -143658,7 +143742,7 @@ </palette> </property> <property name="toolTip"> - <string>04_20</string> + <string>09_01</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -143667,11 +143751,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_30"> + <widget class="QPushButton" name="ActuatorButton04_06"> <property name="geometry"> <rect> - <x>293</x> - <y>702</y> + <x>648</x> + <y>240</y> <width>10</width> <height>10</height> </rect> @@ -144119,468 +144203,7 @@ </palette> </property> <property name="toolTip"> - <string>04_30</string> - </property> - <property name="styleSheet"> - <string>background-color: rgb(0, 85, 255);</string> - </property> - <property name="text"> - <string/> - </property> - </widget> - <widget class="QPushButton" name="ActuatorButton04_32"> - <property name="geometry"> - <rect> - <x>240</x> - <y>648</y> - <width>10</width> - <height>10</height> - </rect> - </property> - <property name="palette"> - <palette> - <active> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>63</red> - <green>127</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - </active> - <inactive> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </inactive> - <disabled> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </disabled> - </palette> - </property> - <property name="toolTip"> - <string>04_32</string> + <string>04_06</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -144589,10 +144212,10 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_42"> + <widget class="QPushButton" name="ActuatorButton04_08"> <property name="geometry"> <rect> - <x>240</x> + <x>702</x> <y>294</y> <width>10</width> <height>10</height> @@ -145041,7 +144664,7 @@ </palette> </property> <property name="toolTip"> - <string>04_42</string> + <string>04_08</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -145050,11 +144673,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton04_44"> + <widget class="QPushButton" name="ActuatorButton04_18"> <property name="geometry"> <rect> - <x>293</x> - <y>240</y> + <x>702</x> + <y>649</y> <width>10</width> <height>10</height> </rect> @@ -145502,7 +145125,7 @@ </palette> </property> <property name="toolTip"> - <string>04_44</string> + <string>04_18</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -145511,11 +145134,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_07"> + <widget class="QPushButton" name="ActuatorButton04_20"> <property name="geometry"> <rect> - <x>713</x> - <y>229</y> + <x>648</x> + <y>702</y> <width>10</width> <height>10</height> </rect> @@ -145963,7 +145586,7 @@ </palette> </property> <property name="toolTip"> - <string>05_07</string> + <string>04_20</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -145972,11 +145595,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_19"> + <widget class="QPushButton" name="ActuatorButton04_30"> <property name="geometry"> <rect> - <x>712</x> - <y>713</y> + <x>293</x> + <y>702</y> <width>10</width> <height>10</height> </rect> @@ -146424,7 +146047,7 @@ </palette> </property> <property name="toolTip"> - <string>05_19</string> + <string>04_30</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -146433,11 +146056,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_31"> + <widget class="QPushButton" name="ActuatorButton04_32"> <property name="geometry"> <rect> - <x>229</x> - <y>713</y> + <x>240</x> + <y>648</y> <width>10</width> <height>10</height> </rect> @@ -146885,7 +146508,7 @@ </palette> </property> <property name="toolTip"> - <string>05_31</string> + <string>04_32</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -146894,11 +146517,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="ActuatorButton05_43"> + <widget class="QPushButton" name="ActuatorButton04_42"> <property name="geometry"> <rect> - <x>229</x> - <y>229</y> + <x>240</x> + <y>294</y> <width>10</width> <height>10</height> </rect> @@ -147346,7 +146969,7 @@ </palette> </property> <property name="toolTip"> - <string>05_43</string> + <string>04_42</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -147355,472 +146978,11 @@ <string/> </property> </widget> - <widget class="QPushButton" name="AllActuatorsButton"> - <property name="geometry"> - <rect> - <x>450</x> - <y>443</y> - <width>50</width> - <height>50</height> - </rect> - </property> - <property name="palette"> - <palette> - <active> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>63</red> - <green>127</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - </active> - <inactive> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </inactive> - <disabled> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </disabled> - </palette> - </property> - <property name="toolTip"> - <string>Controls all actuators</string> - </property> - <property name="styleSheet"> - <string>background-color: rgb(0, 85, 255);</string> - </property> - <property name="text"> - <string>ALL</string> - </property> - </widget> - <widget class="QPushButton" name="ActuatorButton06_11"> + <widget class="QPushButton" name="ActuatorButton04_44"> <property name="geometry"> <rect> - <x>851</x> - <y>370</y> + <x>293</x> + <y>240</y> <width>10</width> <height>10</height> </rect> @@ -148268,7 +147430,7 @@ </palette> </property> <property name="toolTip"> - <string>06_11</string> + <string>04_44</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> @@ -148277,487 +147439,13 @@ <string/> </property> </widget> - </widget> - <widget class="QPushButton" name="QuitButton"> - <property name="geometry"> - <rect> - <x>1070</x> - <y>880</y> - <width>91</width> - <height>31</height> - </rect> - </property> - <property name="palette"> - <palette> - <active> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>63</red> - <green>127</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - </active> - <inactive> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </inactive> - <disabled> - <colorrole role="WindowText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Button"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Light"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>127</red> - <green>170</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Midlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>38</red> - <green>110</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Dark"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>42</green> - <blue>127</blue> - </color> - </brush> - </colorrole> - <colorrole role="Mid"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>57</green> - <blue>170</blue> - </color> - </brush> - </colorrole> - <colorrole role="Text"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="BrightText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="ButtonText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>85</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Shadow"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - </brush> - </colorrole> - <colorrole role="Highlight"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>128</blue> - </color> - </brush> - </colorrole> - <colorrole role="HighlightedText"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Link"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>0</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="LinkVisited"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>0</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - </disabled> - </palette> - </property> - <property name="styleSheet"> - <string>background-color: rgb(0, 85, 255);</string> - </property> - <property name="text"> - <string>QUIT</string> - </property> - </widget> - <widget class="Q3ButtonGroup" name="buttonGroup1"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>970</x> - <y>448</y> - <width>288</width> - <height>291</height> - </rect> - </property> - <property name="title"> - <string/> - </property> - <widget class="QPushButton" name="CalibrateButton"> + <widget class="QPushButton" name="ActuatorButton05_07"> <property name="geometry"> <rect> - <x>192</x> - <y>45</y> - <width>90</width> - <height>35</height> + <x>713</x> + <y>229</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -149203,22 +147891,22 @@ </palette> </property> <property name="toolTip"> - <string>calibration</string> + <string>05_07</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Calibration</string> + <string/> </property> </widget> - <widget class="QPushButton" name="StopButton"> + <widget class="QPushButton" name="ActuatorButton05_19"> <property name="geometry"> <rect> - <x>4</x> - <y>5</y> - <width>90</width> - <height>35</height> + <x>712</x> + <y>713</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -149664,22 +148352,22 @@ </palette> </property> <property name="toolTip"> - <string>Stop actuator</string> + <string>05_19</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Stop</string> + <string/> </property> </widget> - <widget class="QPushButton" name="ResetButton"> + <widget class="QPushButton" name="ActuatorButton05_31"> <property name="geometry"> <rect> - <x>98</x> - <y>5</y> - <width>90</width> - <height>35</height> + <x>229</x> + <y>713</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -150125,22 +148813,22 @@ </palette> </property> <property name="toolTip"> - <string>Reset software</string> + <string>05_31</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Reset</string> + <string/> </property> </widget> - <widget class="QPushButton" name="RefPosButton"> + <widget class="QPushButton" name="ActuatorButton05_43"> <property name="geometry"> <rect> - <x>4</x> - <y>45</y> - <width>90</width> - <height>35</height> + <x>229</x> + <y>229</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -150586,22 +149274,22 @@ </palette> </property> <property name="toolTip"> - <string>Reference Position</string> + <string>05_43</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>RefPos</string> + <string/> </property> </widget> - <widget class="QPushButton" name="TopButton"> + <widget class="QPushButton" name="AllActuatorsButton"> <property name="geometry"> <rect> - <x>5</x> - <y>125</y> - <width>90</width> - <height>35</height> + <x>450</x> + <y>443</y> + <width>50</width> + <height>50</height> </rect> </property> <property name="palette"> @@ -151047,22 +149735,22 @@ </palette> </property> <property name="toolTip"> - <string>Move actuator to most top position</string> + <string>Controls all actuators</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Top</string> + <string>ALL</string> </property> </widget> - <widget class="QPushButton" name="StowButton"> + <widget class="QPushButton" name="ActuatorButton06_11"> <property name="geometry"> <rect> - <x>98</x> - <y>45</y> - <width>90</width> - <height>35</height> + <x>851</x> + <y>370</y> + <width>10</width> + <height>10</height> </rect> </property> <property name="palette"> @@ -151508,20 +150196,494 @@ </palette> </property> <property name="toolTip"> - <string>Stop the USD position loop control and bring it to bottom most position</string> + <string>06_11</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Stow</string> + <string/> </property> </widget> - <widget class="QPushButton" name="BottomButton"> + </widget> + <widget class="QPushButton" name="QuitButton"> + <property name="geometry"> + <rect> + <x>1070</x> + <y>880</y> + <width>91</width> + <height>31</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>QUIT</string> + </property> + </widget> + <widget class="Q3ButtonGroup" name="buttonGroup1"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="geometry"> + <rect> + <x>970</x> + <y>448</y> + <width>288</width> + <height>291</height> + </rect> + </property> + <property name="title"> + <string/> + </property> + <widget class="QPushButton" name="CalibrateButton"> <property name="geometry"> <rect> - <x>98</x> - <y>125</y> + <x>192</x> + <y>45</y> <width>90</width> <height>35</height> </rect> @@ -151969,19 +151131,19 @@ </palette> </property> <property name="toolTip"> - <string>Move actuator to most bottom position</string> + <string>calibration</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Bottom</string> + <string>Calibration</string> </property> </widget> - <widget class="QPushButton" name="SetupButton"> + <widget class="QPushButton" name="StopButton"> <property name="geometry"> <rect> - <x>192</x> + <x>4</x> <y>5</y> <width>90</width> <height>35</height> @@ -152430,20 +151592,20 @@ </palette> </property> <property name="toolTip"> - <string>bring the usd to zeroRef position and starts the pos. control loop</string> + <string>Stop actuator</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Setup</string> + <string>Stop</string> </property> </widget> - <widget class="QPushButton" name="DownButton"> + <widget class="QPushButton" name="ResetButton"> <property name="geometry"> <rect> <x>98</x> - <y>85</y> + <y>5</y> <width>90</width> <height>35</height> </rect> @@ -152891,20 +152053,20 @@ </palette> </property> <property name="toolTip"> - <string>Move actuator down</string> + <string>Reset software</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Down</string> + <string>Reset</string> </property> </widget> - <widget class="QPushButton" name="UpButton"> + <widget class="QPushButton" name="RefPosButton"> <property name="geometry"> <rect> <x>4</x> - <y>85</y> + <y>45</y> <width>90</width> <height>35</height> </rect> @@ -153352,20 +152514,20 @@ </palette> </property> <property name="toolTip"> - <string>Move actuator up</string> + <string>Reference Position</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Up</string> + <string>RefPos</string> </property> </widget> - <widget class="QPushButton" name="MoveButton"> + <widget class="QPushButton" name="TopButton"> <property name="geometry"> <rect> <x>5</x> - <y>165</y> + <y>125</y> <width>90</width> <height>35</height> </rect> @@ -153813,41 +152975,2807 @@ </palette> </property> <property name="toolTip"> - <string>Moves the actuator of incr amount relative to actual position (mm)</string> + <string>Move actuator to most top position</string> </property> <property name="styleSheet"> <string>background-color: rgb(0, 85, 255);</string> </property> <property name="text"> - <string>Move</string> + <string>Top</string> </property> </widget> - <widget class="QLineEdit" name="ActuatorMovelineEdit"> + <widget class="QPushButton" name="StowButton"> <property name="geometry"> <rect> - <x>140</x> - <y>165</y> - <width>100</width> + <x>98</x> + <y>45</y> + <width>90</width> <height>35</height> </rect> </property> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> </property> - <property name="alignment"> - <set>Qt::AlignRight</set> + <property name="toolTip"> + <string>Stop the USD position loop control and bring it to bottom most position</string> </property> - <property name="readOnly"> - <bool>false</bool> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Stow</string> </property> </widget> - <widget class="QPushButton" name="CorrectionButton"> + <widget class="QPushButton" name="BottomButton"> <property name="geometry"> <rect> - <x>5</x> - <y>205</y> + <x>98</x> + <y>125</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Move actuator to most bottom position</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Bottom</string> + </property> + </widget> + <widget class="QPushButton" name="SetupButton"> + <property name="geometry"> + <rect> + <x>192</x> + <y>5</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>bring the usd to zeroRef position and starts the pos. control loop</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Setup</string> + </property> + </widget> + <widget class="QPushButton" name="DownButton"> + <property name="geometry"> + <rect> + <x>98</x> + <y>85</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Move actuator down</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Down</string> + </property> + </widget> + <widget class="QPushButton" name="UpButton"> + <property name="geometry"> + <rect> + <x>4</x> + <y>85</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Move actuator up</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Up</string> + </property> + </widget> + <widget class="QPushButton" name="MoveButton"> + <property name="geometry"> + <rect> + <x>5</x> + <y>165</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Moves the actuator of incr amount relative to actual position (mm)</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>Move</string> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorMovelineEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>165</y> + <width>100</width> + <height>35</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>false</bool> + </property> + </widget> + <widget class="QPushButton" name="CorrectionButton"> + <property name="geometry"> + <rect> + <x>5</x> + <y>205</y> <width>90</width> <height>35</height> </rect> @@ -156759,6 +158687,70 @@ </hint> </hints> </connection> + <connection> + <sender>ActuatorButton07_01</sender> + <signal>clicked()</signal> + <receiver>NotoActiveSurfaceGUI</receiver> + <slot>setactuator()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> + <connection> + <sender>ActuatorButton07_02</sender> + <signal>clicked()</signal> + <receiver>NotoActiveSurfaceGUI</receiver> + <slot>setactuator()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> + <connection> + <sender>ActuatorButton07_03</sender> + <signal>clicked()</signal> + <receiver>NotoActiveSurfaceGUI</receiver> + <slot>setactuator()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> + <connection> + <sender>ActuatorButton07_04</sender> + <signal>clicked()</signal> + <receiver>NotoActiveSurfaceGUI</receiver> + <slot>setactuator()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> <connection> <sender>ActuatorButton01_02</sender> <signal>clicked()</signal> diff --git a/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui.17012024 b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui.17012024 new file mode 100755 index 000000000..43ba300a6 --- /dev/null +++ b/Noto/Clients/NotoActiveSurfaceGUIClient/src/NotoActiveSurfaceGUI.ui.17012024 @@ -0,0 +1,161729 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>NotoActiveSurfaceGUI</class> + <widget class="QWidget" name="NotoActiveSurfaceGUI"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1270</width> + <height>960</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="baseSize"> + <size> + <width>1100</width> + <height>950</height> + </size> + </property> + <property name="windowTitle"> + <string>Noto Active Surface</string> + </property> + <widget class="QPushButton" name="ManagerButton"> + <property name="geometry"> + <rect> + <x>975</x> + <y>408</y> + <width>130</width> + <height>35</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>MANAGER</string> + </property> + </widget> + <widget class="QLabel" name="ActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>15</y> + <width>130</width> + <height>30</height> + </rect> + </property> + <property name="text"> + <string>ACTUATOR</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="DelayActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>152</y> + <width>130</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Delay</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="AccelerationActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>225</y> + <width>130</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Acceleration</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActuatorStatusCammLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>970</x> + <y>305</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="toolTip"> + <string>Zero Calibration</string> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActuatorStatusLoopLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>1065</x> + <y>305</y> + <width>95</width> + <height>35</height> + </rect> + </property> + <property name="toolTip"> + <string>Auto/Manual Resolution</string> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActuatorStatusCalLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>1115</x> + <y>265</y> + <width>140</width> + <height>35</height> + </rect> + </property> + <property name="toolTip"> + <string>Ready</string> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActuatorStatusEnblLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>970</x> + <y>265</y> + <width>140</width> + <height>35</height> + </rect> + </property> + <property name="toolTip"> + <string>Standby Status</string> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActuatorStatusRunLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>1165</x> + <y>305</y> + <width>90</width> + <height>35</height> + </rect> + </property> + <property name="toolTip"> + <string>Run/Stop Status</string> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="CommandedPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>105</y> + <width>130</width> + <height>42</height> + </rect> + </property> + <property name="text"> + <string>Commanded Pos</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ActualPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>60</y> + <width>130</width> + <height>42</height> + </rect> + </property> + <property name="text"> + <string>Actual Pos</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="MinFreqActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>176</y> + <width>130</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Min Frequency</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="MaxfreqActuatorLabel"> + <property name="geometry"> + <rect> + <x>970</x> + <y>200</y> + <width>130</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Max Frequency</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorNumberlineEdit"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>15</y> + <width>135</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <family>DejaVu LGC Sans</family> + <pointsize>14</pointsize> + </font> + </property> + <property name="maxLength"> + <number>32767</number> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="mmActualPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>60</y> + <width>30</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>mm</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="stepActualPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>82</y> + <width>30</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>step</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="mmCommandedPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>106</y> + <width>30</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>mm</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="stepCommandedPositionActuatorLabel"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>127</y> + <width>30</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>step</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QLineEdit" name="mmActuatorActualPositionlineEdit"> + <property name="geometry"> + <rect> + <x>1153</x> + <y>60</y> + <width>100</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="stepActuatorActualPositionlineEdit"> + <property name="geometry"> + <rect> + <x>1153</x> + <y>82</y> + <width>100</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="mmActuatorCommandedPositionlineEdit"> + <property name="geometry"> + <rect> + <x>1154</x> + <y>106</y> + <width>100</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="stepActuatorCommandedPositionlineEdit"> + <property name="geometry"> + <rect> + <x>1154</x> + <y>127</y> + <width>100</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorDelaylineEdit"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>152</y> + <width>135</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorFminlineEdit"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>176</y> + <width>135</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorFmaxlineEdit"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>200</y> + <width>135</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="ActuatorAccelerationlineEdit"> + <property name="geometry"> + <rect> + <x>1120</x> + <y>225</y> + <width>135</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font/> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="ManagerPasswordlineEdit"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="geometry"> + <rect> + <x>1115</x> + <y>408</y> + <width>135</width> + <height>35</height> + </rect> + </property> + <property name="font"> + <font> + <family>DejaVu LGC Sans</family> + <pointsize>12</pointsize> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="maxLength"> + <number>32767</number> + </property> + <property name="echoMode"> + <enum>QLineEdit::Password</enum> + </property> + <property name="cursorPosition"> + <number>0</number> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter</set> + </property> + <property name="dragEnabled"> + <bool>true</bool> + </property> + <property name="readOnly"> + <bool>false</bool> + </property> + </widget> + <widget class="QLabel" name="ManagerLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>970</x> + <y>362</y> + <width>287</width> + <height>32</height> + </rect> + </property> + <property name="font"> + <font> + <family>DejaVu LGC Sans</family> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="Q3Frame" name="frame"> + <property name="geometry"> + <rect> + <x>5</x> + <y>5</y> + <width>950</width> + <height>950</height> + </rect> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLabel" name="BussolatextLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>120</width> + <height>120</height> + </rect> + </property> + <property name="pixmap"> + <pixmap>../../../../../../.designer/backup/bussola.120x120.jpg</pixmap> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>358</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_01</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_02"> + <property name="geometry"> + <rect> + <x>501</x> + <y>361</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_03"> + <property name="geometry"> + <rect> + <x>528</x> + <y>372</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_04"> + <property name="geometry"> + <rect> + <x>552</x> + <y>390</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_05"> + <property name="geometry"> + <rect> + <x>569</x> + <y>414</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_06"> + <property name="geometry"> + <rect> + <x>580</x> + <y>442</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_06</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_07"> + <property name="geometry"> + <rect> + <x>584</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_07</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_08"> + <property name="geometry"> + <rect> + <x>581</x> + <y>500</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_08</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_09"> + <property name="geometry"> + <rect> + <x>571</x> + <y>528</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_10"> + <property name="geometry"> + <rect> + <x>552</x> + <y>552</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_11"> + <property name="geometry"> + <rect> + <x>528</x> + <y>570</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_12"> + <property name="geometry"> + <rect> + <x>500</x> + <y>581</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_13"> + <property name="geometry"> + <rect> + <x>470</x> + <y>585</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_14"> + <property name="geometry"> + <rect> + <x>441</x> + <y>581</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_15"> + <property name="geometry"> + <rect> + <x>413</x> + <y>570</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_16"> + <property name="geometry"> + <rect> + <x>390</x> + <y>552</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_17"> + <property name="geometry"> + <rect> + <x>372</x> + <y>528</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_18"> + <property name="geometry"> + <rect> + <x>362</x> + <y>500</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_18</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_19"> + <property name="geometry"> + <rect> + <x>357</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_19</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_20"> + <property name="geometry"> + <rect> + <x>361</x> + <y>442</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_20</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_21"> + <property name="geometry"> + <rect> + <x>371</x> + <y>413</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_22"> + <property name="geometry"> + <rect> + <x>390</x> + <y>391</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_23"> + <property name="geometry"> + <rect> + <x>414</x> + <y>373</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton01_24"> + <property name="geometry"> + <rect> + <x>442</x> + <y>361</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>01_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>298</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_01</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_02"> + <property name="geometry"> + <rect> + <x>494</x> + <y>300</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_03"> + <property name="geometry"> + <rect> + <x>516</x> + <y>304</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_04"> + <property name="geometry"> + <rect> + <x>537</x> + <y>312</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_05"> + <property name="geometry"> + <rect> + <x>557</x> + <y>321</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_06"> + <property name="geometry"> + <rect> + <x>576</x> + <y>334</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_06</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_07"> + <property name="geometry"> + <rect> + <x>594</x> + <y>349</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_07</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_08"> + <property name="geometry"> + <rect> + <x>607</x> + <y>365</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_08</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_09"> + <property name="geometry"> + <rect> + <x>620</x> + <y>385</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_10"> + <property name="geometry"> + <rect> + <x>630</x> + <y>405</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_11"> + <property name="geometry"> + <rect> + <x>637</x> + <y>426</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_12"> + <property name="geometry"> + <rect> + <x>642</x> + <y>448</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_13"> + <property name="geometry"> + <rect> + <x>643</x> + <y>472</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_14"> + <property name="geometry"> + <rect> + <x>642</x> + <y>494</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_15"> + <property name="geometry"> + <rect> + <x>638</x> + <y>516</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_16"> + <property name="geometry"> + <rect> + <x>630</x> + <y>537</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_17"> + <property name="geometry"> + <rect> + <x>620</x> + <y>557</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_18"> + <property name="geometry"> + <rect> + <x>608</x> + <y>576</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_18</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_19"> + <property name="geometry"> + <rect> + <x>593</x> + <y>593</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_19</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_20"> + <property name="geometry"> + <rect> + <x>576</x> + <y>607</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_20</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_21"> + <property name="geometry"> + <rect> + <x>557</x> + <y>620</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_22"> + <property name="geometry"> + <rect> + <x>536</x> + <y>630</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_23"> + <property name="geometry"> + <rect> + <x>515</x> + <y>637</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_24"> + <property name="geometry"> + <rect> + <x>493</x> + <y>642</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_25"> + <property name="geometry"> + <rect> + <x>471</x> + <y>644</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_25</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_26"> + <property name="geometry"> + <rect> + <x>449</x> + <y>642</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_26</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_27"> + <property name="geometry"> + <rect> + <x>427</x> + <y>637</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_27</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_28"> + <property name="geometry"> + <rect> + <x>405</x> + <y>631</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_28</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_29"> + <property name="geometry"> + <rect> + <x>385</x> + <y>620</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_29</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_30"> + <property name="geometry"> + <rect> + <x>365</x> + <y>607</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_30</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_31"> + <property name="geometry"> + <rect> + <x>349</x> + <y>592</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_31</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_32"> + <property name="geometry"> + <rect> + <x>333</x> + <y>576</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_32</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_33"> + <property name="geometry"> + <rect> + <x>321</x> + <y>557</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_33</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_34"> + <property name="geometry"> + <rect> + <x>312</x> + <y>536</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_34</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_35"> + <property name="geometry"> + <rect> + <x>304</x> + <y>515</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_35</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_36"> + <property name="geometry"> + <rect> + <x>300</x> + <y>493</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_36</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_37"> + <property name="geometry"> + <rect> + <x>299</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_37</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_38"> + <property name="geometry"> + <rect> + <x>300</x> + <y>449</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_38</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_39"> + <property name="geometry"> + <rect> + <x>304</x> + <y>427</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_39</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_40"> + <property name="geometry"> + <rect> + <x>312</x> + <y>405</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_40</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_41"> + <property name="geometry"> + <rect> + <x>321</x> + <y>385</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_41</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_42"> + <property name="geometry"> + <rect> + <x>334</x> + <y>366</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_42</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_43"> + <property name="geometry"> + <rect> + <x>349</x> + <y>350</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_43</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_44"> + <property name="geometry"> + <rect> + <x>366</x> + <y>334</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_44</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_45"> + <property name="geometry"> + <rect> + <x>384</x> + <y>322</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_45</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_46"> + <property name="geometry"> + <rect> + <x>404</x> + <y>311</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_46</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_47"> + <property name="geometry"> + <rect> + <x>427</x> + <y>305</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_47</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton02_48"> + <property name="geometry"> + <rect> + <x>448</x> + <y>300</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>02_48</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>239</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_01</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_02"> + <property name="geometry"> + <rect> + <x>502</x> + <y>241</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_03"> + <property name="geometry"> + <rect> + <x>532</x> + <y>248</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_04"> + <property name="geometry"> + <rect> + <x>560</x> + <y>257</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_05"> + <property name="geometry"> + <rect> + <x>588</x> + <y>270</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_06"> + <property name="geometry"> + <rect> + <x>612</x> + <y>288</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_06</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_07"> + <property name="geometry"> + <rect> + <x>635</x> + <y>307</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_07</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_08"> + <property name="geometry"> + <rect> + <x>654</x> + <y>330</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_08</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_09"> + <property name="geometry"> + <rect> + <x>672</x> + <y>355</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_10"> + <property name="geometry"> + <rect> + <x>685</x> + <y>382</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_11"> + <property name="geometry"> + <rect> + <x>695</x> + <y>411</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_12"> + <property name="geometry"> + <rect> + <x>701</x> + <y>441</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_13"> + <property name="geometry"> + <rect> + <x>703</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_14"> + <property name="geometry"> + <rect> + <x>701</x> + <y>502</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_15"> + <property name="geometry"> + <rect> + <x>695</x> + <y>532</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_16"> + <property name="geometry"> + <rect> + <x>685</x> + <y>560</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_17"> + <property name="geometry"> + <rect> + <x>672</x> + <y>588</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_18"> + <property name="geometry"> + <rect> + <x>655</x> + <y>613</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_18</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_19"> + <property name="geometry"> + <rect> + <x>635</x> + <y>636</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_19</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_20"> + <property name="geometry"> + <rect> + <x>612</x> + <y>656</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_20</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_21"> + <property name="geometry"> + <rect> + <x>587</x> + <y>673</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_22"> + <property name="geometry"> + <rect> + <x>560</x> + <y>687</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_23"> + <property name="geometry"> + <rect> + <x>531</x> + <y>696</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_24"> + <property name="geometry"> + <rect> + <x>501</x> + <y>701</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_25"> + <property name="geometry"> + <rect> + <x>471</x> + <y>704</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_25</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_26"> + <property name="geometry"> + <rect> + <x>440</x> + <y>702</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_26</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_27"> + <property name="geometry"> + <rect> + <x>410</x> + <y>695</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_27</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_28"> + <property name="geometry"> + <rect> + <x>382</x> + <y>686</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_28</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_29"> + <property name="geometry"> + <rect> + <x>354</x> + <y>672</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_29</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_30"> + <property name="geometry"> + <rect> + <x>329</x> + <y>656</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_30</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_31"> + <property name="geometry"> + <rect> + <x>306</x> + <y>635</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_31</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_32"> + <property name="geometry"> + <rect> + <x>286</x> + <y>613</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_32</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_33"> + <property name="geometry"> + <rect> + <x>269</x> + <y>587</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_33</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_34"> + <property name="geometry"> + <rect> + <x>257</x> + <y>559</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_34</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_35"> + <property name="geometry"> + <rect> + <x>247</x> + <y>531</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_35</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_36"> + <property name="geometry"> + <rect> + <x>240</x> + <y>501</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_36</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_37"> + <property name="geometry"> + <rect> + <x>238</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_37</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_38"> + <property name="geometry"> + <rect> + <x>240</x> + <y>441</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_38</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_39"> + <property name="geometry"> + <rect> + <x>246</x> + <y>411</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_39</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_40"> + <property name="geometry"> + <rect> + <x>256</x> + <y>383</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_40</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_41"> + <property name="geometry"> + <rect> + <x>269</x> + <y>355</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_41</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_42"> + <property name="geometry"> + <rect> + <x>287</x> + <y>330</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_42</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_43"> + <property name="geometry"> + <rect> + <x>306</x> + <y>307</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_43</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_44"> + <property name="geometry"> + <rect> + <x>329</x> + <y>287</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_44</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_45"> + <property name="geometry"> + <rect> + <x>354</x> + <y>270</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_45</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_46"> + <property name="geometry"> + <rect> + <x>382</x> + <y>257</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_46</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_47"> + <property name="geometry"> + <rect> + <x>410</x> + <y>247</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_47</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton03_48"> + <property name="geometry"> + <rect> + <x>440</x> + <y>241</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>03_48</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_02"> + <property name="geometry"> + <rect> + <x>509</x> + <y>183</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_03"> + <property name="geometry"> + <rect> + <x>546</x> + <y>190</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_04"> + <property name="geometry"> + <rect> + <x>582</x> + <y>202</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_05"> + <property name="geometry"> + <rect> + <x>616</x> + <y>220</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_07"> + <property name="geometry"> + <rect> + <x>677</x> + <y>265</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_07</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_09"> + <property name="geometry"> + <rect> + <x>723</x> + <y>326</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_10"> + <property name="geometry"> + <rect> + <x>740</x> + <y>360</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_11"> + <property name="geometry"> + <rect> + <x>752</x> + <y>395</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_12"> + <property name="geometry"> + <rect> + <x>759</x> + <y>433</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_13"> + <property name="geometry"> + <rect> + <x>762</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_14"> + <property name="geometry"> + <rect> + <x>760</x> + <y>509</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_15"> + <property name="geometry"> + <rect> + <x>752</x> + <y>547</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_16"> + <property name="geometry"> + <rect> + <x>740</x> + <y>582</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_17"> + <property name="geometry"> + <rect> + <x>723</x> + <y>616</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_19"> + <property name="geometry"> + <rect> + <x>677</x> + <y>677</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_19</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_21"> + <property name="geometry"> + <rect> + <x>616</x> + <y>724</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_22"> + <property name="geometry"> + <rect> + <x>583</x> + <y>740</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_23"> + <property name="geometry"> + <rect> + <x>546</x> + <y>753</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_24"> + <property name="geometry"> + <rect> + <x>508</x> + <y>760</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_25"> + <property name="geometry"> + <rect> + <x>470</x> + <y>763</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_25</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_26"> + <property name="geometry"> + <rect> + <x>433</x> + <y>760</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_26</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_27"> + <property name="geometry"> + <rect> + <x>395</x> + <y>753</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_27</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_28"> + <property name="geometry"> + <rect> + <x>359</x> + <y>741</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_28</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_29"> + <property name="geometry"> + <rect> + <x>325</x> + <y>723</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_29</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_31"> + <property name="geometry"> + <rect> + <x>264</x> + <y>677</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_31</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_33"> + <property name="geometry"> + <rect> + <x>218</x> + <y>616</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_33</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_34"> + <property name="geometry"> + <rect> + <x>201</x> + <y>582</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_34</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_35"> + <property name="geometry"> + <rect> + <x>189</x> + <y>546</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_35</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_36"> + <property name="geometry"> + <rect> + <x>182</x> + <y>509</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_36</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_37"> + <property name="geometry"> + <rect> + <x>179</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_37</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_38"> + <property name="geometry"> + <rect> + <x>181</x> + <y>433</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_38</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_39"> + <property name="geometry"> + <rect> + <x>189</x> + <y>396</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_39</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_40"> + <property name="geometry"> + <rect> + <x>201</x> + <y>360</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_40</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_41"> + <property name="geometry"> + <rect> + <x>218</x> + <y>325</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_41</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_43"> + <property name="geometry"> + <rect> + <x>264</x> + <y>265</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_43</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_45"> + <property name="geometry"> + <rect> + <x>325</x> + <y>219</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_45</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_46"> + <property name="geometry"> + <rect> + <x>359</x> + <y>202</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_46</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_47"> + <property name="geometry"> + <rect> + <x>395</x> + <y>189</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_47</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton04_48"> + <property name="geometry"> + <rect> + <x>433</x> + <y>182</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>04_48</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="C1ActuatorsButton"> + <property name="geometry"> + <rect> + <x>468</x> + <y>370</y> + <width>20</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 1 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C1</string> + </property> + </widget> + <widget class="QPushButton" name="C2ActuatorsButton"> + <property name="geometry"> + <rect> + <x>470</x> + <y>310</y> + <width>20</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 2 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C2</string> + </property> + </widget> + <widget class="QPushButton" name="C3ActuatorsButton"> + <property name="geometry"> + <rect> + <x>470</x> + <y>252</y> + <width>20</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 3 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C3</string> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>129</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_01</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_02"> + <property name="geometry"> + <rect> + <x>516</x> + <y>132</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_03"> + <property name="geometry"> + <rect> + <x>559</x> + <y>142</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_04"> + <property name="geometry"> + <rect> + <x>602</x> + <y>155</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_05"> + <property name="geometry"> + <rect> + <x>642</x> + <y>175</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_06"> + <property name="geometry"> + <rect> + <x>680</x> + <y>200</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>11_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_08"> + <property name="geometry"> + <rect> + <x>743</x> + <y>264</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_08</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_09"> + <property name="geometry"> + <rect> + <x>767</x> + <y>300</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_10"> + <property name="geometry"> + <rect> + <x>787</x> + <y>340</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_11"> + <property name="geometry"> + <rect> + <x>801</x> + <y>383</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_11</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_12"> + <property name="geometry"> + <rect> + <x>810</x> + <y>426</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_13"> + <property name="geometry"> + <rect> + <x>813</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_14"> + <property name="geometry"> + <rect> + <x>810</x> + <y>516</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_15"> + <property name="geometry"> + <rect> + <x>801</x> + <y>560</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_16"> + <property name="geometry"> + <rect> + <x>787</x> + <y>602</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_17"> + <property name="geometry"> + <rect> + <x>767</x> + <y>642</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_18"> + <property name="geometry"> + <rect> + <x>742</x> + <y>679</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_18</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_20"> + <property name="geometry"> + <rect> + <x>679</x> + <y>743</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_20</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_21"> + <property name="geometry"> + <rect> + <x>642</x> + <y>768</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_22"> + <property name="geometry"> + <rect> + <x>602</x> + <y>788</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_23"> + <property name="geometry"> + <rect> + <x>559</x> + <y>801</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_24"> + <property name="geometry"> + <rect> + <x>516</x> + <y>811</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_25"> + <property name="geometry"> + <rect> + <x>471</x> + <y>813</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_25</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_26"> + <property name="geometry"> + <rect> + <x>426</x> + <y>811</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_26</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_27"> + <property name="geometry"> + <rect> + <x>382</x> + <y>802</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_27</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_28"> + <property name="geometry"> + <rect> + <x>339</x> + <y>787</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_28</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_29"> + <property name="geometry"> + <rect> + <x>299</x> + <y>767</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_29</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_30"> + <property name="geometry"> + <rect> + <x>262</x> + <y>743</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_30</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_32"> + <property name="geometry"> + <rect> + <x>198</x> + <y>679</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_32</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_33"> + <property name="geometry"> + <rect> + <x>173</x> + <y>642</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_33</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_34"> + <property name="geometry"> + <rect> + <x>154</x> + <y>602</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_34</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_35"> + <property name="geometry"> + <rect> + <x>140</x> + <y>559</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_35</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_36"> + <property name="geometry"> + <rect> + <x>131</x> + <y>516</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_36</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_37"> + <property name="geometry"> + <rect> + <x>128</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_37</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_38"> + <property name="geometry"> + <rect> + <x>131</x> + <y>427</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_38</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_39"> + <property name="geometry"> + <rect> + <x>140</x> + <y>383</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_39</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_40"> + <property name="geometry"> + <rect> + <x>154</x> + <y>341</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_40</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_41"> + <property name="geometry"> + <rect> + <x>174</x> + <y>300</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_41</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_42"> + <property name="geometry"> + <rect> + <x>199</x> + <y>263</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_42</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_44"> + <property name="geometry"> + <rect> + <x>262</x> + <y>199</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_44</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_45"> + <property name="geometry"> + <rect> + <x>299</x> + <y>175</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_45</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_46"> + <property name="geometry"> + <rect> + <x>339</x> + <y>155</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_46</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_47"> + <property name="geometry"> + <rect> + <x>382</x> + <y>140</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_47</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton05_48"> + <property name="geometry"> + <rect> + <x>426</x> + <y>131</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>05_48</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="C5ActuatorsButton"> + <property name="geometry"> + <rect> + <x>470</x> + <y>140</y> + <width>25</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 5 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C5</string> + </property> + </widget> + <widget class="QPushButton" name="C4ActuatorsButton"> + <property name="geometry"> + <rect> + <x>471</x> + <y>192</y> + <width>20</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 4 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C4</string> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_01"> + <property name="geometry"> + <rect> + <x>471</x> + <y>77</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_01</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_02"> + <property name="geometry"> + <rect> + <x>522</x> + <y>81</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_02</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_03"> + <property name="geometry"> + <rect> + <x>573</x> + <y>92</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_03</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_04"> + <property name="geometry"> + <rect> + <x>621</x> + <y>108</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_04</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_05"> + <property name="geometry"> + <rect> + <x>667</x> + <y>131</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_05</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_06"> + <property name="geometry"> + <rect> + <x>711</x> + <y>159</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_06</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_07"> + <property name="geometry"> + <rect> + <x>749</x> + <y>193</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_07</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_08"> + <property name="geometry"> + <rect> + <x>783</x> + <y>232</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_08</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_09"> + <property name="geometry"> + <rect> + <x>811</x> + <y>275</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_09</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_10"> + <property name="geometry"> + <rect> + <x>834</x> + <y>320</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_10</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_12"> + <property name="geometry"> + <rect> + <x>861</x> + <y>420</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_12</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_13"> + <property name="geometry"> + <rect> + <x>865</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_13</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_14"> + <property name="geometry"> + <rect> + <x>862</x> + <y>522</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_14</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_15"> + <property name="geometry"> + <rect> + <x>850</x> + <y>573</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_15</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_16"> + <property name="geometry"> + <rect> + <x>834</x> + <y>622</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_16</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_17"> + <property name="geometry"> + <rect> + <x>811</x> + <y>668</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_17</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_18"> + <property name="geometry"> + <rect> + <x>783</x> + <y>710</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_18</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_19"> + <property name="geometry"> + <rect> + <x>749</x> + <y>749</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_19</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_20"> + <property name="geometry"> + <rect> + <x>709</x> + <y>783</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_20</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_21"> + <property name="geometry"> + <rect> + <x>668</x> + <y>812</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_21</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_22"> + <property name="geometry"> + <rect> + <x>621</x> + <y>835</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_22</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_23"> + <property name="geometry"> + <rect> + <x>572</x> + <y>851</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_23</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_24"> + <property name="geometry"> + <rect> + <x>522</x> + <y>861</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_24</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_25"> + <property name="geometry"> + <rect> + <x>471</x> + <y>864</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_25</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_26"> + <property name="geometry"> + <rect> + <x>419</x> + <y>861</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_26</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_27"> + <property name="geometry"> + <rect> + <x>369</x> + <y>851</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_27</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_28"> + <property name="geometry"> + <rect> + <x>320</x> + <y>835</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_28</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_29"> + <property name="geometry"> + <rect> + <x>274</x> + <y>812</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_29</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_30"> + <property name="geometry"> + <rect> + <x>231</x> + <y>783</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_30</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_31"> + <property name="geometry"> + <rect> + <x>192</x> + <y>750</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_31</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_32"> + <property name="geometry"> + <rect> + <x>158</x> + <y>711</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_32</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_33"> + <property name="geometry"> + <rect> + <x>129</x> + <y>668</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_33</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_34"> + <property name="geometry"> + <rect> + <x>107</x> + <y>622</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_34</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_35"> + <property name="geometry"> + <rect> + <x>90</x> + <y>573</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_35</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_36"> + <property name="geometry"> + <rect> + <x>80</x> + <y>523</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_36</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_37"> + <property name="geometry"> + <rect> + <x>77</x> + <y>471</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_37</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_38"> + <property name="geometry"> + <rect> + <x>80</x> + <y>420</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_38</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_39"> + <property name="geometry"> + <rect> + <x>90</x> + <y>370</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_39</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_40"> + <property name="geometry"> + <rect> + <x>107</x> + <y>321</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_40</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_41"> + <property name="geometry"> + <rect> + <x>130</x> + <y>275</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_41</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_42"> + <property name="geometry"> + <rect> + <x>159</x> + <y>232</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_42</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_43"> + <property name="geometry"> + <rect> + <x>192</x> + <y>193</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_43</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_44"> + <property name="geometry"> + <rect> + <x>231</x> + <y>159</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_44</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_45"> + <property name="geometry"> + <rect> + <x>273</x> + <y>131</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_45</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_46"> + <property name="geometry"> + <rect> + <x>320</x> + <y>107</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_46</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_47"> + <property name="geometry"> + <rect> + <x>368</x> + <y>91</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_47</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="ActuatorButton06_48"> + <property name="geometry"> + <rect> + <x>420</x> + <y>81</y> + <width>10</width> + <height>10</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>06_48</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + <widget class="QPushButton" name="C6ActuatorsButton"> + <property name="geometry"> + <rect> + <x>470</x> + <y>88</y> + <width>25</width> + <height>15</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="toolTip"> + <string>Controls actuators in 6 circle</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>C6</string> + </property> + </widget> + <widget class="QPushButton" name="R1ActuatorsButton"> + <property name="geometry"> + <rect> + <x>465</x> + <y>40</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 1 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>1</string> + </property> + </widget> + <widget class="QPushButton" name="R2ActuatorsButton"> + <property name="geometry"> + <rect> + <x>520</x> + <y>50</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 2 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>2</string> + </property> + </widget> + <widget class="QPushButton" name="R3ActuatorsButton"> + <property name="geometry"> + <rect> + <x>570</x> + <y>60</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 3 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>3</string> + </property> + </widget> + <widget class="QPushButton" name="R4ActuatorsButton"> + <property name="geometry"> + <rect> + <x>620</x> + <y>80</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 4 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>4</string> + </property> + </widget> + <widget class="QPushButton" name="R5ActuatorsButton"> + <property name="geometry"> + <rect> + <x>680</x> + <y>100</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 5 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>5</string> + </property> + </widget> + <widget class="QPushButton" name="R6ActuatorsButton"> + <property name="geometry"> + <rect> + <x>730</x> + <y>130</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 6 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>6</string> + </property> + </widget> + <widget class="QPushButton" name="R7ActuatorsButton"> + <property name="geometry"> + <rect> + <x>770</x> + <y>160</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 7 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>7</string> + </property> + </widget> + <widget class="QPushButton" name="R8ActuatorsButton"> + <property name="geometry"> + <rect> + <x>800</x> + <y>210</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 8 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>8</string> + </property> + </widget> + <widget class="QPushButton" name="R9ActuatorsButton"> + <property name="geometry"> + <rect> + <x>830</x> + <y>250</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 9 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>9</string> + </property> + </widget> + <widget class="QPushButton" name="R10ActuatorsButton"> + <property name="geometry"> + <rect> + <x>860</x> + <y>300</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 10 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>10</string> + </property> + </widget> + <widget class="QPushButton" name="R11ActuatorsButton"> + <property name="geometry"> + <rect> + <x>870</x> + <y>360</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 11 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>11</string> + </property> + </widget> + <widget class="QPushButton" name="R12ActuatorsButton"> + <property name="geometry"> + <rect> + <x>880</x> + <y>410</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 12 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>12</string> + </property> + </widget> + <widget class="QPushButton" name="R13ActuatorsButton"> + <property name="geometry"> + <rect> + <x>890</x> + <y>470</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 13 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>13</string> + </property> + </widget> + <widget class="QPushButton" name="R14ActuatorsButton"> + <property name="geometry"> + <rect> + <x>890</x> + <y>520</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 14 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>14</string> + </property> + </widget> + <widget class="QPushButton" name="R15ActuatorsButton"> + <property name="geometry"> + <rect> + <x>870</x> + <y>580</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 15 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>15</string> + </property> + </widget> + <widget class="QPushButton" name="R16ActuatorsButton"> + <property name="geometry"> + <rect> + <x>855</x> + <y>630</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 16 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>16</string> + </property> + </widget> + <widget class="QPushButton" name="R17ActuatorsButton"> + <property name="geometry"> + <rect> + <x>830</x> + <y>680</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="toolTip"> + <string>Controls all actuators in 17 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>17</string> + </property> + </widget> + <widget class="QPushButton" name="R24ActuatorsButton"> + <property name="geometry"> + <rect> + <x>520</x> + <y>880</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 24 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>24</string> + </property> + </widget> + <widget class="QPushButton" name="R25ActuatorsButton"> + <property name="geometry"> + <rect> + <x>470</x> + <y>890</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 25 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>25</string> + </property> + </widget> + <widget class="QPushButton" name="R26ActuatorsButton"> + <property name="geometry"> + <rect> + <x>410</x> + <y>880</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 26 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>26</string> + </property> + </widget> + <widget class="QPushButton" name="R27ActuatorsButton"> + <property name="geometry"> + <rect> + <x>350</x> + <y>870</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 27 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>27</string> + </property> + </widget> + <widget class="QPushButton" name="R47ActuatorsButton"> + <property name="geometry"> + <rect> + <x>350</x> + <y>60</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 47 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>47</string> + </property> + </widget> + <widget class="QPushButton" name="R48ActuatorsButton"> + <property name="geometry"> + <rect> + <x>410</x> + <y>50</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 48 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>48</string> + </property> + </widget> + <widget class="QPushButton" name="R18ActuatorsButton"> + <property name="geometry"> + <rect> + <x>800</x> + <y>730</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 18 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>18</string> + </property> + </widget> + <widget class="QPushButton" name="R19ActuatorsButton"> + <property name="geometry"> + <rect> + <x>770</x> + <y>770</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font/> + </property> + <property name="toolTip"> + <string>Controls all actuators in 19 radius</string> + </property> + <property name="styleSheet"> + <string>background-color: rgb(0, 85, 255);</string> + </property> + <property name="text"> + <string>19</string> + </property> + </widget> + <widget class="QPushButton" name="R23ActuatorsButton"> + <property name="geometry"> + <rect> + <x>580</x> + <y>870</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>63</red> + <green>127</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>85</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>127</red> + <green>170</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>38</red> + <green>110</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>42</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>57</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0<